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