19#ifndef ZEPHYR_INCLUDE_ARCH_ARM64_THREAD_H_
20#define ZEPHYR_INCLUDE_ARCH_ARM64_THREAD_H_
25#ifdef CONFIG_ARM_PAC_PER_THREAD
46typedef struct _callee_saved _callee_saved_t;
48struct z_arm64_fp_context {
54#ifdef CONFIG_ARM64_SVE
56 uint8_t z_regs[32 * CONFIG_ARM64_SVE_VL_MAX] __aligned(8);
57 uint8_t p_regs[16 * (CONFIG_ARM64_SVE_VL_MAX / 8)];
58 uint8_t ffr[CONFIG_ARM64_SVE_VL_MAX / 8];
59 enum { SIMD_NONE = 0, SIMD_NEON, SIMD_SVE } simd_mode;
65typedef struct z_arm64_fp_context z_arm64_fp_context;
68#if defined(CONFIG_USERSPACE) || defined(CONFIG_ARM64_STACK_PROTECTION)
69#if defined(CONFIG_ARM_MMU)
70 struct arm_mmu_ptables *ptables;
72#if defined(CONFIG_ARM_MPU)
78#ifdef CONFIG_ARM64_SAFE_EXCEPTION_STACK
83#ifdef CONFIG_FPU_SHARING
84 struct z_arm64_fp_context saved_fp_context;
86#ifdef CONFIG_ARM_PAC_PER_THREAD
87 struct pac_keys pac_keys;
91typedef struct _thread_arch _thread_arch_t;
#define ARM64_MPU_MAX_DYNAMIC_REGIONS
Definition arm_mpu.h:256
long atomic_t
Definition atomic_types.h:15
ARM64 Pointer Authentication (PAC) internal APIs.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88