arch/arm64/include/asm/processor.h
Source file repositories/reference/linux-study-clean/arch/arm64/include/asm/processor.h
File Facts
- System
- Linux kernel
- Corpus path
arch/arm64/include/asm/processor.h- Extension
.h- Size
- 12862 bytes
- Lines
- 450
- Domain
- Architecture Layer
- Bucket
- arch/arm64
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/build_bug.hlinux/cache.hlinux/init.hlinux/stddef.hlinux/string.hlinux/thread_info.hvdso/processor.hasm/alternative.hasm/cpufeature.hasm/hw_breakpoint.hasm/kasan.hasm/lse.hasm/pgtable-hwdef.hasm/pointer_auth.hasm/ptrace.hasm/spectre.hasm/types.hasm/fpsimd.h
Detected Declarations
struct debug_infostruct arm64_sve_statestruct arm64_sme_statestruct cpu_contextstruct thread_structstruct task_structenum vec_typeenum fp_typefunction thread_get_vlfunction thread_get_sve_vlfunction thread_get_sme_vlfunction thread_get_cur_vlfunction task_get_sve_vlfunction task_get_sme_vlfunction task_set_sve_vlfunction task_get_sve_vl_onexecfunction task_set_sve_vl_onexecfunction arch_thread_struct_whitelistfunction start_thread_commonfunction start_threadfunction compat_start_threadfunction is_ttbr0_addrfunction is_ttbr1_addrfunction prefetchfunction prefetchw
Annotated Snippet
struct debug_info {
#ifdef CONFIG_HAVE_HW_BREAKPOINT
/* Have we suspended stepping by a debugger? */
int suspended_step;
/* Allow breakpoints and watchpoints to be disabled for this thread. */
int bps_disabled;
int wps_disabled;
/* Hardware breakpoints pinned to this task. */
struct perf_event *hbp_break[ARM_MAX_BRP];
struct perf_event *hbp_watch[ARM_MAX_WRP];
#endif
};
enum vec_type {
ARM64_VEC_SVE = 0,
ARM64_VEC_SME,
ARM64_VEC_MAX,
};
enum fp_type {
FP_STATE_CURRENT, /* Save based on current task state. */
FP_STATE_FPSIMD,
FP_STATE_SVE,
};
struct arm64_sve_state; /* Opaque type */
struct arm64_sme_state; /* Opaque type */
struct cpu_context {
unsigned long x19;
unsigned long x20;
unsigned long x21;
unsigned long x22;
unsigned long x23;
unsigned long x24;
unsigned long x25;
unsigned long x26;
unsigned long x27;
unsigned long x28;
unsigned long fp;
unsigned long sp;
unsigned long pc;
};
struct thread_struct {
struct cpu_context cpu_context; /* cpu context */
/*
* Whitelisted fields for hardened usercopy:
* Maintainers must ensure manually that this contains no
* implicit padding.
*/
struct {
unsigned long tp_value; /* TLS register */
unsigned long tp2_value;
u64 fpmr;
unsigned long pad;
struct user_fpsimd_state fpsimd_state;
} uw;
enum fp_type fp_type; /* registers FPSIMD or SVE? */
unsigned int fpsimd_cpu;
struct arm64_sve_state *sve_state; /* SVE registers, if any */
struct arm64_sme_state *sme_state; /* ZA and ZT state, if any */
unsigned int vl[ARM64_VEC_MAX]; /* vector length */
unsigned int vl_onexec[ARM64_VEC_MAX]; /* vl after next exec */
unsigned long fault_address; /* fault info */
unsigned long fault_code; /* ESR_EL1 value */
struct debug_info debug; /* debugging */
/*
* Set [cleared] by kernel_neon_begin() [kernel_neon_end()] to the
* address of a caller provided buffer that will be used to preserve a
* task's kernel mode FPSIMD state while it is scheduled out.
*/
struct user_fpsimd_state *kernel_fpsimd_state;
unsigned int kernel_fpsimd_cpu;
#ifdef CONFIG_ARM64_PTR_AUTH
struct ptrauth_keys_user keys_user;
#ifdef CONFIG_ARM64_PTR_AUTH_KERNEL
struct ptrauth_keys_kernel keys_kernel;
#endif
#endif
#ifdef CONFIG_ARM64_MTE
u64 mte_ctrl;
#endif
u64 sctlr_user;
u64 svcr;
u64 tpidr2_el0;
u64 por_el0;
Annotation
- Immediate include surface: `linux/build_bug.h`, `linux/cache.h`, `linux/init.h`, `linux/stddef.h`, `linux/string.h`, `linux/thread_info.h`, `vdso/processor.h`, `asm/alternative.h`.
- Detected declarations: `struct debug_info`, `struct arm64_sve_state`, `struct arm64_sme_state`, `struct cpu_context`, `struct thread_struct`, `struct task_struct`, `enum vec_type`, `enum fp_type`, `function thread_get_vl`, `function thread_get_sve_vl`.
- Atlas domain: Architecture Layer / arch/arm64.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.