kernel_arch_data.h 1.4 KB

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