LCOV - code coverage report
Current view: top level - zephyr/toolchain/iar - iar_missing_defs.h Coverage Total Hit
Test: new.info Lines: 0.0 % 2 0
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2025 IAR Systems AB
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /*
       8              :  * Basic macro definitions that gcc and clang provide on their own
       9              :  * but that iccarm lacks. Only those that Zephyr requires are provided here.
      10              :  */
      11              : 
      12              : #ifndef ZEPHYR_INCLUDE_TOOLCHAIN_ICCARM_MISSING_DEFS_H_
      13              : #define ZEPHYR_INCLUDE_TOOLCHAIN_ICCARM_MISSING_DEFS_H_
      14              : 
      15              :  /* We need to define NULL with a parenthesis around _NULL
      16              :   * otherwise the DEBRACE macros won't work correctly
      17              :   */
      18              : 
      19              : #undef NULL
      20            0 : #define NULL   (_NULL)
      21              : 
      22              : #if defined(__IAR_SYSTEMS_ICC__)
      23              : #ifndef __CHAR_BIT__
      24              : #define __CHAR_BIT__ __CHAR_BITS__
      25              : #endif
      26              : #define __SCHAR_MAX__ __SIGNED_CHAR_MAX__
      27              : 
      28              : #define __INT_MAX__    __SIGNED_INT_MAX__
      29              : #define __INT_WIDTH__ (__INT_SIZE__*8)
      30              : #define __SIZEOF_INT__ __INT_SIZE__
      31              : 
      32              : #define __SHRT_MAX__     __SIGNED_SHORT_MAX__
      33              : #define __SHRT_WIDTH__  (__SHORT_SIZE__*8)
      34              : #define __SIZEOF_SHORT__ __SHORT_SIZE__
      35              : 
      36              : #define __LONG_MAX__    __SIGNED_LONG_MAX__
      37              : #define __LONG_WIDTH__ (__LONG_SIZE__*8)
      38              : #define __SIZEOF_LONG__ __LONG_SIZE__
      39              : 
      40              : #define __LONG_LONG_MAX__    __SIGNED_LONG_LONG_MAX__
      41              : #define __LONG_LONG_WIDTH__ (__LONG_LONG_SIZE__*8)
      42              : #define __SIZEOF_LONG_LONG__ __LONG_LONG_SIZE__
      43              : 
      44              : #define __INTMAX_MAX__     __INTMAX_T_MAX__
      45              : #define __SIZEOF_INTMAX__  sizeof(__INTMAX_T_TYPE__)
      46              : #define __INTMAX_WIDTH__   (__SIZEOF_INTMAX__*8)
      47              : #define __UINTMAX_MAX__    __UINTMAX_T_MAX__
      48              : #define __SIZEOF_UINTMAX__ sizeof(__UINTMAX_T_TYPE__)
      49              : #define __UINTMAX_WIDTH__  (__SIZEOF_UINTMAX__*8)
      50              : 
      51              : #define __INTPTR_MAX__     __INTPTR_T_MAX__
      52              : #define __INTPTR_TYPE__    __INTPTR_T_TYPE__
      53              : #define __INTPTR_WIDTH__  (__INTPTR_T_SIZE__*8)
      54              : #define __SIZEOF_POINTER__ __INTPTR_T_SIZE__
      55              : 
      56              : #define __PTRDIFF_MAX__      __PTRDIFF_T_MAX__
      57              : #define __PTRDIFF_WIDTH__   (__PTRDIFF_T_SIZE__*8)
      58              : #define __SIZEOF_PTRDIFF_T__ __PTRDIFF_T_SIZE__
      59              : 
      60              : #define __UINTPTR_MAX__  __UINTPTR_T_MAX__
      61              : #define __UINTPTR_TYPE__ __UINTPTR_T_TYPE__
      62              : 
      63              : /*
      64              :  * ICCARM already defines __SIZE_T_MAX__ as "unsigned int" but there is no way
      65              :  * to safeguard that here with preprocessor equality.
      66              :  */
      67              : 
      68              : #define __SIZE_TYPE__   __SIZE_T_TYPE__
      69              : #define __SIZE_MAX__    __SIZE_T_MAX__
      70              : #define __SIZE_WIDTH__ ((__SIZEOF_SIZE_T__)*8)
      71              : /* #define __SIZEOF_SIZE_T__ 4 */
      72              : 
      73              : /*
      74              :  * The following defines are inferred from the ICCARM provided defines
      75              :  * already tested above.
      76              :  */
      77              : 
      78              : 
      79              : #define __INT8_MAX__  __INT8_T_MAX__
      80              : #define __INT8_TYPE__ __INT8_T_TYPE__
      81              : 
      82              : #define __UINT8_MAX__  __UINT8_T_MAX__
      83              : #define __UINT8_TYPE__ __UINT8_T_TYPE__
      84              : 
      85              : #define __INT16_MAX__  __INT16_T_MAX__
      86              : #define __INT16_TYPE__ __INT16_T_TYPE__
      87              : 
      88              : #define __UINT16_MAX__  __UINT16_T_MAX__
      89              : #define __UINT16_TYPE__ __UINT16_T_TYPE__
      90              : 
      91              : #define __INT32_MAX__  __INT32_T_MAX__
      92              : #define __INT32_TYPE__ __INT32_T_TYPE__
      93              : 
      94              : #define __UINT32_MAX__  __UINT32_T_MAX__
      95              : #define __UINT32_TYPE__ __UINT32_T_TYPE__
      96              : 
      97              : #define __INT64_MAX__  __INT64_T_MAX__
      98              : #define __INT64_TYPE__ __INT64_T_TYPE__
      99              : 
     100              : #define __UINT64_MAX__  __UINT64_T_MAX__
     101              : #define __UINT64_TYPE__ __UINT64_T_TYPE__
     102              : 
     103              : #define __INT_FAST8_MAX__    __INT_FAST8_T_MAX__
     104              : #define __INT_FAST8_TYPE__   __INT_FAST8_T_TYPE__
     105              : #define __INT_FAST8_WIDTH__ (__INT_FAST8_T_SIZE__*8)
     106              : 
     107              : #define __INT_FAST16_MAX__    __INT_FAST16_T_MAX__
     108              : #define __INT_FAST16_TYPE__   __INT_FAST16_T_TYPE__
     109              : #define __INT_FAST16_WIDTH__ (__INT_FAST16_T_SIZE__*8)
     110              : 
     111              : #define __INT_FAST32_MAX__    __INT_FAST32_T_MAX__
     112              : #define __INT_FAST32_TYPE__   __INT_FAST32_T_TYPE__
     113              : #define __INT_FAST32_WIDTH__ (__INT_FAST32_T_SIZE__*8)
     114              : 
     115              : #define __INT_FAST64_MAX__    __INT_FAST64_T_MAX__
     116              : #define __INT_FAST64_TYPE__   __INT_FAST64_T_TYPE__
     117              : #define __INT_FAST64_WIDTH__ (__INT_FAST64_T_SIZE__*8)
     118              : 
     119              : #define __INT_LEAST8_MAX__    __INT_LEAST8_T_MAX__
     120              : #define __INT_LEAST8_TYPE__   __INT_LEAST8_T_TYPE__
     121              : #define __INT_LEAST8_WIDTH__ (__INT_LEAST8_T_SIZE__*8)
     122              : 
     123              : #define __INT_LEAST16_MAX__    __INT_LEAST16_T_MAX__
     124              : #define __INT_LEAST16_TYPE__   __INT_LEAST16_T_TYPE__
     125              : #define __INT_LEAST16_WIDTH__ (__INT_LEAST16_T_SIZE__*8)
     126              : 
     127              : #define __INT_LEAST32_MAX__    __INT_LEAST32_T_MAX__
     128              : #define __INT_LEAST32_TYPE__   __INT_LEAST32_T_TYPE__
     129              : #define __INT_LEAST32_WIDTH__ (__INT_LEAST32_T_SIZE__*8)
     130              : 
     131              : #define __INT_LEAST64_MAX__    __INT_LEAST64_T_MAX__
     132              : #define __INT_LEAST64_TYPE__   __INT_LEAST64_T_TYPE__
     133              : #define __INT_LEAST64_WIDTH__ (__INT_LEAST64_T_SIZE__*8)
     134              : 
     135              : #define __UINT_FAST8_MAX__  __UINT_FAST8_T_MAX__
     136              : #define __UINT_FAST8_TYPE__ __UINT_FAST8_T_TYPE__
     137              : 
     138              : #define __UINT_FAST16_MAX__  __UINT_FAST16_T_MAX__
     139              : #define __UINT_FAST16_TYPE__ __UINT_FAST16_T_TYPE__
     140              : 
     141              : #define __UINT_FAST32_MAX__  __UINT_FAST32_T_MAX__
     142              : #define __UINT_FAST32_TYPE__ __UINT_FAST32_T_TYPE__
     143              : 
     144              : #define __UINT_FAST64_MAX__  __UINT_FAST64_T_MAX__
     145              : #define __UINT_FAST64_TYPE__ __UINT_FAST64_T_TYPE__
     146              : 
     147              : #define __UINT_LEAST8_MAX__  __UINT_LEAST8_T_MAX__
     148              : #define __UINT_LEAST8_TYPE__ __UINT_LEAST8_T_TYPE__
     149              : 
     150              : #define __UINT_LEAST16_MAX__  __UINT_LEAST16_T_MAX__
     151              : #define __UINT_LEAST16_TYPE__ __UINT_LEAST16_T_TYPE__
     152              : 
     153              : #define __UINT_LEAST32_MAX__  __UINT_LEAST32_T_MAX__
     154              : #define __UINT_LEAST32_TYPE__ __UINT_LEAST32_T_TYPE__
     155              : 
     156              : #define __UINT_LEAST64_MAX__  __UINT_LEAST64_T_MAX__
     157              : #define __UINT_LEAST64_TYPE__ __UINT_LEAST64_T_TYPE__
     158              : 
     159              : #endif /* __IAR_SYSTEMS_ICC__ */
     160              : 
     161              : #endif
        

Generated by: LCOV version 2.0-1