1 /* 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_ */ 34