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

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) BayLibre SAS
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /*
       8              :  * The purpose of this file is to provide essential/minimal architecture-
       9              :  * specific structure definitions to be included in generic kernel
      10              :  * structures.
      11              :  *
      12              :  * The following rules must be observed:
      13              :  *  1. arch/structs.h shall not depend on kernel.h both directly and
      14              :  *     indirectly (i.e. it shall not include any header files that include
      15              :  *     kernel.h in their dependency chain).
      16              :  *  2. kernel.h shall imply arch/structs.h via kernel_structs.h , such that
      17              :  *     it shall not be necessary to include arch/structs.h explicitly when
      18              :  *     kernel.h is included.
      19              :  */
      20              : 
      21              : #ifndef ZEPHYR_INCLUDE_ARCH_STRUCTS_H_
      22              : #define ZEPHYR_INCLUDE_ARCH_STRUCTS_H_
      23              : 
      24              : #if !defined(_ASMLANGUAGE)
      25              : 
      26              : #if defined(CONFIG_ARM64)
      27              : #include <zephyr/arch/arm64/structs.h>
      28              : #elif defined(CONFIG_RISCV)
      29              : #include <zephyr/arch/riscv/structs.h>
      30              : #elif defined(CONFIG_ARM)
      31              : #include <zephyr/arch/arm/structs.h>
      32              : #elif defined(CONFIG_X86) && !defined(CONFIG_X86_64)
      33              : #include <zephyr/arch/x86/ia32/structs.h>
      34              : #elif defined(CONFIG_XTENSA)
      35              : #include <zephyr/arch/xtensa/structs.h>
      36              : #else
      37              : 
      38              : /* Default definitions when no architecture specific definitions exist. */
      39              : 
      40              : /* Per CPU architecture specifics (empty) */
      41              : struct _cpu_arch {
      42              : #ifdef __cplusplus
      43              :         /* This struct will have a size 0 in C which is not allowed in C++ (it'll have a size 1). To
      44              :          * prevent this, we add a 1 byte dummy variable.
      45              :          */
      46              :         uint8_t dummy;
      47              : #endif
      48              : };
      49              : 
      50              : #endif
      51              : 
      52              : /* typedefs to be used with GEN_OFFSET_SYM(), etc. */
      53              : typedef struct _cpu_arch _cpu_arch_t;
      54              : 
      55              : #endif /* _ASMLANGUAGE */
      56              : 
      57              : #endif /* ZEPHYR_INCLUDE_ARCH_STRUCTS_H_ */
        

Generated by: LCOV version 2.0-1