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