1 /*
2  * Copyright (c) 2013-2016 Wind River Systems, Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @file
9  * @brief Private kernel definitions (ARM)
10  *
11  * This file contains private kernel structures definitions and various
12  * other definitions for the ARM Cortex-A/R/M processor architecture family.
13  *
14  * This file is also included by assembly language files which must #define
15  * _ASMLANGUAGE before including this header file.  Note that kernel
16  * assembly source files obtains structure offset values via "absolute symbols"
17  * in the offsets.o module.
18  */
19 
20 #ifndef ZEPHYR_ARCH_ARM_INCLUDE_KERNEL_ARCH_DATA_H_
21 #define ZEPHYR_ARCH_ARM_INCLUDE_KERNEL_ARCH_DATA_H_
22 
23 #include <toolchain.h>
24 #include <linker/sections.h>
25 #include <arch/cpu.h>
26 
27 #if defined(CONFIG_CPU_CORTEX_M)
28 #include <aarch32/cortex_m/stack.h>
29 #include <aarch32/cortex_m/exc.h>
30 #elif defined(CONFIG_CPU_CORTEX_R)
31 #include <aarch32/cortex_a_r/stack.h>
32 #include <aarch32/cortex_a_r/exc.h>
33 #endif
34 
35 #ifndef _ASMLANGUAGE
36 #include <kernel.h>
37 #include <zephyr/types.h>
38 #include <sys/dlist.h>
39 #include <sys/atomic.h>
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 typedef struct __esf _esf_t;
46 typedef struct __basic_sf _basic_sf_t;
47 
48 #ifdef CONFIG_ARM_MPU
49 struct z_arm_mpu_partition {
50 	uintptr_t start;
51 	size_t size;
52 	k_mem_partition_attr_t attr;
53 };
54 #endif
55 
56 #ifdef __cplusplus
57 }
58 #endif
59 
60 #endif /* _ASMLANGUAGE */
61 
62 #endif /* ZEPHYR_ARCH_ARM_INCLUDE_KERNEL_ARCH_DATA_H_ */
63