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 <zephyr/toolchain.h> 24 #include <zephyr/linker/sections.h> 25 #include <zephyr/arch/cpu.h> 26 27 #if defined(CONFIG_CPU_CORTEX_M) 28 #include <cortex_m/stack.h> 29 #include <cortex_m/exception.h> 30 #elif defined(CONFIG_CPU_AARCH32_CORTEX_R) || defined(CONFIG_CPU_AARCH32_CORTEX_A) 31 #include <cortex_a_r/stack.h> 32 #include <cortex_a_r/exception.h> 33 #endif 34 35 #ifndef _ASMLANGUAGE 36 #include <zephyr/kernel.h> 37 #include <zephyr/types.h> 38 #include <zephyr/sys/dlist.h> 39 #include <zephyr/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 #if defined(CONFIG_FPU) && defined(CONFIG_FPU_SHARING) 48 typedef struct __fpu_sf _fpu_sf_t; 49 #endif 50 51 #ifdef CONFIG_ARM_MPU 52 struct z_arm_mpu_partition { 53 uintptr_t start; 54 size_t size; 55 k_mem_partition_attr_t attr; 56 }; 57 #endif 58 59 #ifdef __cplusplus 60 } 61 #endif 62 63 #endif /* _ASMLANGUAGE */ 64 65 #endif /* ZEPHYR_ARCH_ARM_INCLUDE_KERNEL_ARCH_DATA_H_ */ 66