Home | History | Annotate | Line # | Download | only in ppc
inline.h revision 1.7
      1 /*  This file is part of the program psim.
      2 
      3     Copyright (C) 1994-1995, Andrew Cagney <cagney (at) highland.com.au>
      4 
      5     This program is free software; you can redistribute it and/or modify
      6     it under the terms of the GNU General Public License as published by
      7     the Free Software Foundation; either version 3 of the License, or
      8     (at your option) any later version.
      9 
     10     This program is distributed in the hope that it will be useful,
     11     but WITHOUT ANY WARRANTY; without even the implied warranty of
     12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13     GNU General Public License for more details.
     14 
     15     You should have received a copy of the GNU General Public License
     16     along with this program; if not, see <http://www.gnu.org/licenses/>.
     17 
     18     */
     19 
     20 
     21 #ifndef _INLINE_H_
     22 #define _INLINE_H_
     23 
     24 #include "ansidecl.h"
     25 
     26 #define STATIC(TYPE) static TYPE
     27 
     28 
     29 /* sim_endian is always inlined */
     30 
     31 #if !defined(_SIM_ENDIAN_C_) && (SIM_ENDIAN_INLINE & INCLUDE_MODULE)
     32 # if (SIM_ENDIAN_INLINE & INLINE_MODULE)
     33 #  define INLINE_PSIM_ENDIAN(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
     34 #  define EXTERN_PSIM_ENDIAN(TYPE) ATTRIBUTE_UNUSED static TYPE
     35 # else
     36 #  define INLINE_PSIM_ENDIAN(TYPE) ATTRIBUTE_UNUSED static TYPE
     37 #  define EXTERN_PSIM_ENDIAN(TYPE) ATTRIBUTE_UNUSED static TYPE
     38 # endif
     39 #else
     40 # define INLINE_PSIM_ENDIAN(TYPE) TYPE
     41 # define EXTERN_PSIM_ENDIAN(TYPE) TYPE
     42 #endif
     43 
     44 #if (SIM_ENDIAN_INLINE & INLINE_LOCALS)
     45 # define STATIC_INLINE_PSIM_ENDIAN(TYPE) static INLINE TYPE
     46 #else
     47 # define STATIC_INLINE_PSIM_ENDIAN(TYPE) static TYPE
     48 #endif
     49 
     50 
     51 /* bits is always inlined */
     52 
     53 #if !defined(_BITS_C_) && (BITS_INLINE & INCLUDE_MODULE)
     54 # if (BITS_INLINE & INLINE_MODULE)
     55 #  define INLINE_BITS(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
     56 #  define EXTERN_BITS(TYPE) ATTRIBUTE_UNUSED static TYPE
     57 # else
     58 #  define INLINE_BITS(TYPE) ATTRIBUTE_UNUSED static TYPE
     59 #  define EXTERN_BITS(TYPE) ATTRIBUTE_UNUSED static TYPE
     60 # endif
     61 #else
     62 # define INLINE_BITS(TYPE) TYPE
     63 # define EXTERN_BITS(TYPE) TYPE
     64 #endif
     65 
     66 #if (BITS_INLINE & INLINE_LOCALS)
     67 # define STATIC_INLINE_BITS(TYPE) static INLINE TYPE
     68 #else
     69 # define STATIC_INLINE_BITS(TYPE) static TYPE
     70 #endif
     71 
     72 
     73 /* core is inlined with inline.c */
     74 
     75 #if defined(_INLINE_C_) && !defined(_CORE_C_) && (CORE_INLINE & INCLUDE_MODULE)
     76 # if (CORE_INLINE & INLINE_MODULE)
     77 #  define INLINE_CORE(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
     78 #  define EXTERN_CORE(TYPE) ATTRIBUTE_UNUSED static TYPE
     79 #else
     80 #  define INLINE_CORE(TYPE) ATTRIBUTE_UNUSED static TYPE
     81 #  define EXTERN_CORE(TYPE) ATTRIBUTE_UNUSED static TYPE
     82 #endif
     83 #else
     84 # define INLINE_CORE(TYPE) TYPE
     85 # define EXTERN_CORE(TYPE) TYPE
     86 #endif
     87 
     88 #if (CORE_INLINE & INLINE_LOCALS)
     89 # define STATIC_INLINE_CORE(TYPE) static INLINE TYPE
     90 #else
     91 # define STATIC_INLINE_CORE(TYPE) static TYPE
     92 #endif
     93 
     94 
     95 /* vm is inlined with inline.c */
     96 
     97 #if defined(_INLINE_C_) && !defined(_VM_C_) && (VM_INLINE & INCLUDE_MODULE)
     98 # if (VM_INLINE & INLINE_MODULE)
     99 #  define INLINE_VM(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    100 #  define EXTERN_VM(TYPE) ATTRIBUTE_UNUSED static TYPE
    101 #else
    102 #  define INLINE_VM(TYPE) ATTRIBUTE_UNUSED static TYPE
    103 #  define EXTERN_VM(TYPE) ATTRIBUTE_UNUSED static TYPE
    104 #endif
    105 #else
    106 # define INLINE_VM(TYPE) TYPE
    107 # define EXTERN_VM(TYPE) TYPE
    108 #endif
    109 
    110 #if (VM_INLINE & INLINE_LOCALS)
    111 # define STATIC_INLINE_VM(TYPE) static INLINE TYPE
    112 #else
    113 # define STATIC_INLINE_VM(TYPE) static TYPE
    114 #endif
    115 
    116 
    117 /* cpu is always inlined */
    118 
    119 #if !defined(_CPU_C_) && (CPU_INLINE & INCLUDE_MODULE)
    120 # if (CPU_INLINE & INLINE_MODULE)
    121 #  define INLINE_CPU(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    122 #  define EXTERN_CPU(TYPE) ATTRIBUTE_UNUSED static TYPE
    123 #else
    124 #  define INLINE_CPU(TYPE) ATTRIBUTE_UNUSED static TYPE
    125 #  define EXTERN_CPU(TYPE) ATTRIBUTE_UNUSED static TYPE
    126 #endif
    127 #else
    128 # define INLINE_CPU(TYPE) TYPE
    129 # define EXTERN_CPU(TYPE) TYPE
    130 #endif
    131 
    132 #if (CPU_INLINE & INLINE_LOCALS)
    133 # define STATIC_INLINE_CPU(TYPE) static INLINE TYPE
    134 #else
    135 # define STATIC_INLINE_CPU(TYPE) static TYPE
    136 #endif
    137 
    138 
    139 /* model is inlined with inline.c */
    140 
    141 #if defined(_INLINE_C_) && !defined(_MODEL_C_) && (MODEL_INLINE & INCLUDE_MODULE)
    142 # if (MODEL_INLINE & INLINE_MODULE)
    143 #  define INLINE_MODEL(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    144 #  define EXTERN_MODEL(TYPE) ATTRIBUTE_UNUSED static TYPE
    145 #else
    146 #  define INLINE_MODEL(TYPE) ATTRIBUTE_UNUSED static TYPE
    147 #  define EXTERN_MODEL(TYPE) ATTRIBUTE_UNUSED static TYPE
    148 #endif
    149 #else
    150 # define INLINE_MODEL(TYPE) TYPE
    151 # define EXTERN_MODEL(TYPE) TYPE
    152 #endif
    153 
    154 #if (MODEL_INLINE & INLINE_LOCALS)
    155 # define STATIC_INLINE_MODEL(TYPE) static INLINE TYPE
    156 #else
    157 # define STATIC_INLINE_MODEL(TYPE) static TYPE
    158 #endif
    159 
    160 
    161 /* events is inlined with inline.c */
    162 
    163 #if defined(_INLINE_C_) && !defined(_EVENTS_C_) && (EVENTS_INLINE & INCLUDE_MODULE)
    164 # if (EVENTS_INLINE & INLINE_MODULE)
    165 #  define INLINE_EVENTS(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    166 #  define EXTERN_EVENTS(TYPE) ATTRIBUTE_UNUSED static TYPE
    167 #else
    168 #  define INLINE_EVENTS(TYPE) ATTRIBUTE_UNUSED static TYPE
    169 #  define EXTERN_EVENTS(TYPE) ATTRIBUTE_UNUSED static TYPE
    170 #endif
    171 #else
    172 # define INLINE_EVENTS(TYPE) TYPE
    173 # define EXTERN_EVENTS(TYPE) TYPE
    174 #endif
    175 
    176 #if (EVENTS_INLINE & INLINE_LOCALS)
    177 # define STATIC_INLINE_EVENTS(TYPE) static INLINE TYPE
    178 #else
    179 # define STATIC_INLINE_EVENTS(TYPE) static TYPE
    180 #endif
    181 
    182 
    183 /* mon is inlined with inline.c */
    184 
    185 #if defined(_INLINE_C_) && !defined(_MON_C_) && (MON_INLINE & INCLUDE_MODULE)
    186 # if (MON_INLINE & INLINE_MODULE)
    187 #  define INLINE_MON(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    188 #  define EXTERN_MON(TYPE) ATTRIBUTE_UNUSED static TYPE
    189 #else
    190 #  define INLINE_MON(TYPE) ATTRIBUTE_UNUSED static TYPE
    191 #  define EXTERN_MON(TYPE) ATTRIBUTE_UNUSED static TYPE
    192 #endif
    193 #else
    194 # define INLINE_MON(TYPE) TYPE
    195 # define EXTERN_MON(TYPE) TYPE
    196 #endif
    197 
    198 #if (MON_INLINE & INLINE_LOCALS)
    199 # define STATIC_INLINE_MON(TYPE) static INLINE TYPE
    200 #else
    201 # define STATIC_INLINE_MON(TYPE) static TYPE
    202 #endif
    203 
    204 
    205 /* registers is inlined with inline.c */
    206 
    207 #if defined(_INLINE_C_) && !defined(_REGISTERS_C_) && (REGISTERS_INLINE & INCLUDE_MODULE)
    208 # if (REGISTERS_INLINE & INLINE_MODULE)
    209 #  define INLINE_REGISTERS(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    210 #  define EXTERN_REGISTERS(TYPE) ATTRIBUTE_UNUSED static TYPE
    211 #else
    212 #  define INLINE_REGISTERS(TYPE) ATTRIBUTE_UNUSED static TYPE
    213 #  define EXTERN_REGISTERS(TYPE) ATTRIBUTE_UNUSED static TYPE
    214 #endif
    215 #else
    216 # define INLINE_REGISTERS(TYPE) TYPE
    217 # define EXTERN_REGISTERS(TYPE) TYPE
    218 #endif
    219 
    220 #if (REGISTERS_INLINE & INLINE_LOCALS)
    221 # define STATIC_INLINE_REGISTERS(TYPE) static INLINE TYPE
    222 #else
    223 # define STATIC_INLINE_REGISTERS(TYPE) static TYPE
    224 #endif
    225 
    226 
    227 /* interrupts is inlined with inline.c */
    228 
    229 #if defined(_INLINE_C_) && !defined(_INTERRUPTS_C_) && (INTERRUPTS_INLINE & INCLUDE_MODULE)
    230 # if (INTERRUPTS_INLINE & INLINE_MODULE)
    231 #  define INLINE_INTERRUPTS(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    232 #  define EXTERN_INTERRUPTS(TYPE) ATTRIBUTE_UNUSED static TYPE
    233 #else
    234 #  define INLINE_INTERRUPTS(TYPE) ATTRIBUTE_UNUSED static TYPE
    235 #  define EXTERN_INTERRUPTS(TYPE) ATTRIBUTE_UNUSED static TYPE
    236 #endif
    237 #else
    238 # define INLINE_INTERRUPTS(TYPE) TYPE
    239 # define EXTERN_INTERRUPTS(TYPE) TYPE
    240 #endif
    241 
    242 #if (INTERRUPTS_INLINE & INLINE_LOCALS)
    243 # define STATIC_INLINE_INTERRUPTS(TYPE) static INLINE TYPE
    244 #else
    245 # define STATIC_INLINE_INTERRUPTS(TYPE) static TYPE
    246 #endif
    247 
    248 
    249 /* device is inlined with inline.c */
    250 
    251 #if defined(_INLINE_C_) && !defined(_DEVICE_C_) && (DEVICE_INLINE & INCLUDE_MODULE)
    252 # if (DEVICE_INLINE & INLINE_MODULE)
    253 #  define INLINE_DEVICE(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    254 #  define EXTERN_DEVICE(TYPE) ATTRIBUTE_UNUSED static TYPE
    255 #else
    256 #  define INLINE_DEVICE(TYPE) ATTRIBUTE_UNUSED static TYPE
    257 #  define EXTERN_DEVICE(TYPE) ATTRIBUTE_UNUSED static TYPE
    258 #endif
    259 #else
    260 # define INLINE_DEVICE(TYPE) TYPE
    261 # define EXTERN_DEVICE(TYPE) TYPE
    262 #endif
    263 
    264 #if (DEVICE_INLINE & INLINE_LOCALS)
    265 # define STATIC_INLINE_DEVICE(TYPE) static INLINE TYPE
    266 #else
    267 # define STATIC_INLINE_DEVICE(TYPE) static TYPE
    268 #endif
    269 
    270 
    271 /* tree is inlined with inline.c */
    272 
    273 #if defined(_INLINE_C_) && !defined(_TREE_C_) && (TREE_INLINE & INCLUDE_MODULE)
    274 # if (TREE_INLINE & INLINE_MODULE)
    275 #  define INLINE_TREE(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    276 #  define EXTERN_TREE(TYPE) ATTRIBUTE_UNUSED static TYPE
    277 #else
    278 #  define INLINE_TREE(TYPE) ATTRIBUTE_UNUSED static TYPE
    279 #  define EXTERN_TREE(TYPE) ATTRIBUTE_UNUSED static TYPE
    280 #endif
    281 #else
    282 # define INLINE_TREE(TYPE) TYPE
    283 # define EXTERN_TREE(TYPE) TYPE
    284 #endif
    285 
    286 #if (TREE_INLINE & INLINE_LOCALS)
    287 # define STATIC_INLINE_TREE(TYPE) static INLINE TYPE
    288 #else
    289 # define STATIC_INLINE_TREE(TYPE) static TYPE
    290 #endif
    291 
    292 
    293 /* spreg is inlined with inline.c */
    294 
    295 #if defined(_INLINE_C_) && !defined(_SPREG_C_) && (SPREG_INLINE & INCLUDE_MODULE)
    296 # if (SPREG_INLINE & INLINE_MODULE)
    297 #  define INLINE_SPREG(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    298 #  define EXTERN_SPREG(TYPE) ATTRIBUTE_UNUSED static TYPE
    299 #else
    300 #  define INLINE_SPREG(TYPE) ATTRIBUTE_UNUSED static TYPE
    301 #  define EXTERN_SPREG(TYPE) ATTRIBUTE_UNUSED static TYPE
    302 #endif
    303 #else
    304 # define INLINE_SPREG(TYPE) TYPE
    305 # define EXTERN_SPREG(TYPE) TYPE
    306 #endif
    307 
    308 #if (SPREG_INLINE & INLINE_LOCALS)
    309 # define STATIC_INLINE_SPREG(TYPE) static INLINE TYPE
    310 #else
    311 # define STATIC_INLINE_SPREG(TYPE) static TYPE
    312 #endif
    313 
    314 
    315 /* semantics is inlined with inline.c */
    316 
    317 #if defined(_INLINE_C_) && !defined(_SEMANTICS_C_) && (SEMANTICS_INLINE & INCLUDE_MODULE)
    318 # if (SEMANTICS_INLINE & INLINE_MODULE)
    319 #  define PSIM_INLINE_SEMANTICS(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    320 #  define PSIM_EXTERN_SEMANTICS(TYPE) ATTRIBUTE_UNUSED static TYPE
    321 #else
    322 #  define PSIM_INLINE_SEMANTICS(TYPE) ATTRIBUTE_UNUSED static TYPE
    323 #  define PSIM_EXTERN_SEMANTICS(TYPE) ATTRIBUTE_UNUSED static TYPE
    324 #endif
    325 #else
    326 # define PSIM_INLINE_SEMANTICS(TYPE) TYPE
    327 # define PSIM_EXTERN_SEMANTICS(TYPE) TYPE
    328 #endif
    329 
    330 #if 0 /* this isn't used */
    331 #if (SEMANTICS_INLINE & INLINE_LOCALS)
    332 # define STATIC_INLINE_SEMANTICS(TYPE) static INLINE TYPE
    333 #else
    334 # define STATIC_INLINE_SEMANTICS(TYPE) static TYPE
    335 #endif
    336 #endif
    337 
    338 
    339 /* idecode is actually not inlined */
    340 
    341 #if defined(_INLINE_C_) && !defined(_IDECODE_C_) && (IDECODE_INLINE & INCLUDE_MODULE)
    342 # if (IDECODE_INLINE & INLINE_MODULE)
    343 #  define PSIM_INLINE_IDECODE(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    344 #  define EXTERN_IDECODE(TYPE) ATTRIBUTE_UNUSED static TYPE
    345 #else
    346 #  define PSIM_INLINE_IDECODE(TYPE) ATTRIBUTE_UNUSED static TYPE
    347 #  define EXTERN_IDECODE(TYPE) ATTRIBUTE_UNUSED static TYPE
    348 #endif
    349 #else
    350 # define PSIM_INLINE_IDECODE(TYPE) TYPE
    351 # define EXTERN_IDECODE(TYPE) TYPE
    352 #endif
    353 
    354 #if 0 /* this isn't used */
    355 #if (IDECODE_INLINE & INLINE_LOCALS)
    356 # define STATIC_INLINE_IDECODE(TYPE) static INLINE TYPE
    357 #else
    358 # define STATIC_INLINE_IDECODE(TYPE) static TYPE
    359 #endif
    360 #endif
    361 
    362 
    363 /* icache is inlined with inline.c */
    364 
    365 #if defined(_INLINE_C_) && !defined(_ICACHE_C_) && (ICACHE_INLINE & INCLUDE_MODULE)
    366 # if (ICACHE_INLINE & INLINE_MODULE)
    367 #  define PSIM_INLINE_ICACHE(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    368 #  define EXTERN_ICACHE(TYPE) ATTRIBUTE_UNUSED static TYPE
    369 #else
    370 #  define PSIM_INLINE_ICACHE(TYPE) ATTRIBUTE_UNUSED static TYPE
    371 #  define EXTERN_ICACHE(TYPE) ATTRIBUTE_UNUSED static TYPE
    372 #endif
    373 #else
    374 # define PSIM_INLINE_ICACHE(TYPE) TYPE
    375 # define EXTERN_ICACHE(TYPE) TYPE
    376 #endif
    377 
    378 #if 0 /* this isn't used */
    379 #if (ICACHE_INLINE & INLINE_LOCALS)
    380 # define STATIC_INLINE_ICACHE(TYPE) static INLINE TYPE
    381 #else
    382 # define STATIC_INLINE_ICACHE(TYPE) static TYPE
    383 #endif
    384 #endif
    385 
    386 
    387 /* support is always inlined */
    388 
    389 #if !defined(_SUPPORT_C_) && (SUPPORT_INLINE & INCLUDE_MODULE)
    390 # if (SUPPORT_INLINE & INLINE_MODULE)
    391 #  define PSIM_INLINE_SUPPORT(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    392 #  define EXTERN_SUPPORT(TYPE) ATTRIBUTE_UNUSED static TYPE
    393 #else
    394 #  define PSIM_INLINE_SUPPORT(TYPE) ATTRIBUTE_UNUSED static TYPE
    395 #  define EXTERN_SUPPORT(TYPE) ATTRIBUTE_UNUSED static TYPE
    396 #endif
    397 #else
    398 # define PSIM_INLINE_SUPPORT(TYPE) TYPE
    399 # define EXTERN_SUPPORT(TYPE) TYPE
    400 #endif
    401 
    402 #if 0 /* this isn't used */
    403 #if (SUPPORT_INLINE & INLINE_LOCALS)
    404 # define STATIC_INLINE_SUPPORT(TYPE) static INLINE TYPE
    405 #else
    406 # define STATIC_INLINE_SUPPORT(TYPE) static TYPE
    407 #endif
    408 #endif
    409 
    410 
    411 /* options is inlined with inline.c */
    412 
    413 #if defined(_INLINE_C_) && !defined(_OPTIONS_C_) && (OPTIONS_INLINE & INCLUDE_MODULE)
    414 # if (OPTIONS_INLINE & INLINE_MODULE)
    415 #  define INLINE_OPTIONS(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    416 #  define EXTERN_OPTIONS(TYPE) ATTRIBUTE_UNUSED static TYPE
    417 #else
    418 #  define INLINE_OPTIONS(TYPE) ATTRIBUTE_UNUSED static TYPE
    419 #  define EXTERN_OPTIONS(TYPE) ATTRIBUTE_UNUSED static TYPE
    420 #endif
    421 #else
    422 # define INLINE_OPTIONS(TYPE) TYPE
    423 # define EXTERN_OPTIONS(TYPE) TYPE
    424 #endif
    425 
    426 #if (OPTIONS_INLINE & INLINE_LOCALS)
    427 # define STATIC_INLINE_OPTIONS(TYPE) static INLINE TYPE
    428 #else
    429 # define STATIC_INLINE_OPTIONS(TYPE) static TYPE
    430 #endif
    431 
    432 
    433 /* os_emul is inlined with inline.c */
    434 
    435 #if defined(_INLINE_C_) && !defined(_OS_EMUL_C_) && (OS_EMUL_INLINE & INCLUDE_MODULE)
    436 # if (OS_EMUL_INLINE & INLINE_MODULE)
    437 #  define INLINE_OS_EMUL(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    438 #  define EXTERN_OS_EMUL(TYPE) ATTRIBUTE_UNUSED static TYPE
    439 #else
    440 #  define INLINE_OS_EMUL(TYPE) ATTRIBUTE_UNUSED static TYPE
    441 #  define EXTERN_OS_EMUL(TYPE) ATTRIBUTE_UNUSED static TYPE
    442 #endif
    443 #else
    444 # define INLINE_OS_EMUL(TYPE) TYPE
    445 # define EXTERN_OS_EMUL(TYPE) TYPE
    446 #endif
    447 
    448 #if (OS_EMUL_INLINE & INLINE_LOCALS)
    449 # define STATIC_INLINE_OS_EMUL(TYPE) static INLINE TYPE
    450 #else
    451 # define STATIC_INLINE_OS_EMUL(TYPE) static TYPE
    452 #endif
    453 
    454 
    455 /* psim is actually not inlined */
    456 
    457 #if defined(_INLINE_C_) && !defined(_PSIM_C_) && (PSIM_INLINE & INCLUDE_MODULE)
    458 # if (PSIM_INLINE & INLINE_MODULE)
    459 #  define INLINE_PSIM(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    460 #  define EXTERN_PSIM(TYPE) ATTRIBUTE_UNUSED static TYPE
    461 #else
    462 #  define INLINE_PSIM(TYPE) ATTRIBUTE_UNUSED static TYPE
    463 #  define EXTERN_PSIM(TYPE) ATTRIBUTE_UNUSED static TYPE
    464 #endif
    465 #else
    466 # define INLINE_PSIM(TYPE) TYPE
    467 # define EXTERN_PSIM(TYPE) TYPE
    468 #endif
    469 
    470 #if (PSIM_INLINE & INLINE_LOCALS)
    471 # define STATIC_INLINE_PSIM(TYPE) static INLINE TYPE
    472 #else
    473 # define STATIC_INLINE_PSIM(TYPE) static TYPE
    474 #endif
    475 
    476 
    477 /* cap is inlined with inline.c */
    478 
    479 #if defined(_INLINE_C_) && !defined(_CAP_C_) && (CAP_INLINE & INCLUDE_MODULE)
    480 # if (CAP_INLINE & INLINE_MODULE)
    481 #  define INLINE_CAP(TYPE) ATTRIBUTE_UNUSED static INLINE TYPE
    482 #  define EXTERN_CAP(TYPE) ATTRIBUTE_UNUSED static TYPE
    483 #else
    484 #  define INLINE_CAP(TYPE) ATTRIBUTE_UNUSED static TYPE
    485 #  define EXTERN_CAP(TYPE) ATTRIBUTE_UNUSED static TYPE
    486 #endif
    487 #else
    488 # define INLINE_CAP(TYPE) TYPE
    489 # define EXTERN_CAP(TYPE) TYPE
    490 #endif
    491 
    492 #if (CAP_INLINE & INLINE_LOCALS)
    493 # define STATIC_INLINE_CAP(TYPE) static INLINE TYPE
    494 #else
    495 # define STATIC_INLINE_CAP(TYPE) static TYPE
    496 #endif
    497 
    498 #endif
    499