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