LCOV - code coverage report
Current view: top level - zephyr - types.h Hit Total Coverage
Test: new.info Lines: 0 1 0.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2017 Linaro Limited
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_ZEPHYR_TYPES_H_
       8             : #define ZEPHYR_INCLUDE_ZEPHYR_TYPES_H_
       9             : 
      10             : #include <stddef.h>
      11             : #include <stdint.h>
      12             : 
      13             : #ifdef __cplusplus
      14             : extern "C" {
      15             : #endif
      16             : 
      17             : /*
      18             :  * A type with strong alignment requirements, similar to C11 max_align_t. It can
      19             :  * be used to force alignment of data structures allocated on the stack or as
      20             :  * return * type for heap allocators.
      21             :  */
      22             : typedef union {
      23             :         long long       thelonglong;
      24             :         long double     thelongdouble;
      25             :         uintmax_t       theuintmax_t;
      26             :         size_t          thesize_t;
      27             :         uintptr_t       theuintptr_t;
      28             :         void            *thepvoid;
      29             :         void            (*thepfunc)(void);
      30             : } z_max_align_t;
      31             : 
      32             : /*
      33             :  * Thread local variables are declared with different keywords depending on
      34             :  * which C/C++ standard that is used. C++11 and C23 uses "thread_local" whilst
      35             :  * C11 uses "_Thread_local". Previously the GNU "__thread" keyword was used
      36             :  * which is the same in both gcc and g++.
      37             :  */
      38             : #ifndef Z_THREAD_LOCAL
      39             : #if defined(__cplusplus) && (__cplusplus) >= 201103L /* C++11 */
      40             : #define Z_THREAD_LOCAL thread_local
      41             : #elif defined(__STDC_VERSION__) && (__STDC_VERSION__) >= 202311L /* C23 */
      42             : #define Z_THREAD_LOCAL thread_local
      43             : #elif defined(__STDC_VERSION__) && (__STDC_VERSION__) >= 201112L /* C11 */
      44             : #define Z_THREAD_LOCAL _Thread_local
      45             : #else /* Default back to old behavior which used the GNU keyword. */
      46             : #define Z_THREAD_LOCAL __thread
      47             : #endif
      48             : #endif /* Z_THREAD_LOCAL */
      49             : 
      50             : #ifdef __cplusplus
      51             : /* Zephyr requires an int main(void) signature with C linkage for the application main if present */
      52             : extern int main(void);
      53             : #endif
      54             : 
      55             : #ifdef __cplusplus
      56             : }
      57             : #endif
      58             : 
      59             : #endif /* ZEPHYR_INCLUDE_ZEPHYR_TYPES_H_ */

Generated by: LCOV version 1.14