Line data Source code
1 0 : /* 2 : * Copyright (c) 2023 Arm Limited (or its affiliates). All rights reserved. 3 : * SPDX-License-Identifier: Apache-2.0 4 : */ 5 : 6 : #ifndef ZEPHYR_INCLUDE_ARM_STRUCTS_H_ 7 : #define ZEPHYR_INCLUDE_ARM_STRUCTS_H_ 8 : 9 : #include <zephyr/types.h> 10 : 11 : #if defined(CONFIG_CPU_AARCH32_CORTEX_A) || defined(CONFIG_CPU_AARCH32_CORTEX_R) 12 : /* Per CPU architecture specifics */ 13 : struct _cpu_arch { 14 : int8_t exc_depth; 15 : }; 16 : 17 : #else 18 : 19 : /* Default definitions when no architecture specific definitions exist. */ 20 : 21 : /* Per CPU architecture specifics (empty) */ 22 : struct _cpu_arch { 23 : #ifdef __cplusplus 24 : /* This struct will have a size 0 in C which is not allowed in C++ (it'll have a size 1). To 25 : * prevent this, we add a 1 byte dummy variable. 26 : */ 27 : uint8_t dummy; 28 : #endif 29 : }; 30 : 31 : #endif 32 : 33 : #endif /* ZEPHYR_INCLUDE_ARM_STRUCTS_H_ */