include/linux/cper.h
Source file repositories/reference/linux-study-clean/include/linux/cper.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/cper.h- Extension
.h- Size
- 18466 bytes
- Lines
- 616
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/uuid.hlinux/trace_seq.h
Detected Declarations
struct cper_record_headerstruct cper_section_descriptorstruct cper_sec_proc_genericstruct cper_sec_proc_iastruct cper_ia_err_infostruct cper_ia_proc_ctxstruct cper_sec_proc_armstruct cper_arm_err_infostruct cper_arm_ctx_infostruct cper_sec_mem_err_oldstruct cper_sec_mem_errstruct cper_mem_err_compactstruct cper_sec_pciestruct cper_sec_fw_err_rec_refstruct acpi_hest_generic_statusstruct cxl_cper_sec_prot_errfunction cper_get_mem_extension
Annotated Snippet
struct cper_record_header {
char signature[CPER_SIG_SIZE]; /* must be CPER_SIG_RECORD */
u16 revision; /* must be CPER_RECORD_REV */
u32 signature_end; /* must be CPER_SIG_END */
u16 section_count;
u32 error_severity;
u32 validation_bits;
u32 record_length;
u64 timestamp;
guid_t platform_id;
guid_t partition_id;
guid_t creator_id;
guid_t notification_type;
u64 record_id;
u32 flags;
u64 persistence_information;
u8 reserved[12]; /* must be zero */
};
/* Section Descriptor, UEFI v2.7 sec N.2.2 */
struct cper_section_descriptor {
u32 section_offset; /* Offset in bytes of the
* section body from the base
* of the record header */
u32 section_length;
u16 revision; /* must be CPER_RECORD_REV */
u8 validation_bits;
u8 reserved; /* must be zero */
u32 flags;
guid_t section_type;
guid_t fru_id;
u32 section_severity;
u8 fru_text[20];
};
/* Generic Processor Error Section, UEFI v2.7 sec N.2.4.1 */
struct cper_sec_proc_generic {
u64 validation_bits;
u8 proc_type;
u8 proc_isa;
u8 proc_error_type;
u8 operation;
u8 flags;
u8 level;
u16 reserved;
u64 cpu_version;
char cpu_brand[128];
u64 proc_id;
u64 target_addr;
u64 requestor_id;
u64 responder_id;
u64 ip;
};
/* IA32/X64 Processor Error Section, UEFI v2.7 sec N.2.4.2 */
struct cper_sec_proc_ia {
u64 validation_bits;
u64 lapic_id;
u8 cpuid[48];
};
/* IA32/X64 Processor Error Information Structure, UEFI v2.7 sec N.2.4.2.1 */
struct cper_ia_err_info {
guid_t err_type;
u64 validation_bits;
u64 check_info;
u64 target_id;
u64 requestor_id;
u64 responder_id;
u64 ip;
};
/* IA32/X64 Processor Context Information Structure, UEFI v2.7 sec N.2.4.2.2 */
struct cper_ia_proc_ctx {
u16 reg_ctx_type;
u16 reg_arr_size;
u32 msr_addr;
u64 mm_reg_addr;
};
/* ARM Processor Error Section, UEFI v2.7 sec N.2.4.4 */
struct cper_sec_proc_arm {
u32 validation_bits;
u16 err_info_num; /* Number of Processor Error Info */
u16 context_info_num; /* Number of Processor Context Info Records*/
u32 section_length;
u8 affinity_level;
u8 reserved[3]; /* must be zero */
u64 mpidr;
u64 midr;
Annotation
- Immediate include surface: `linux/uuid.h`, `linux/trace_seq.h`.
- Detected declarations: `struct cper_record_header`, `struct cper_section_descriptor`, `struct cper_sec_proc_generic`, `struct cper_sec_proc_ia`, `struct cper_ia_err_info`, `struct cper_ia_proc_ctx`, `struct cper_sec_proc_arm`, `struct cper_arm_err_info`, `struct cper_arm_ctx_info`, `struct cper_sec_mem_err_old`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.