arch/x86/boot/compressed/misc.h
Source file repositories/reference/linux-study-clean/arch/x86/boot/compressed/misc.h
File Facts
- System
- Linux kernel
- Corpus path
arch/x86/boot/compressed/misc.h- Extension
.h- Size
- 6721 bytes
- Lines
- 260
- Domain
- Architecture Layer
- Bucket
- arch/x86
- 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/linkage.hlinux/screen_info.hlinux/elf.hasm/page.hasm/boot.hasm/bootparam.hasm/desc_defs.htdx.hlinux/acpi.h../ctype.h../io.hefi.h
Detected Declarations
struct mem_vectorstruct es_em_ctxtstruct insnenum efi_typefunction debug_putstrfunction choose_random_locationfunction console_initfunction snp_check_featuresfunction snp_set_page_privatefunction get_rsdp_addrfunction count_immovable_mem_regionsfunction cleanup_exception_handlingfunction efi_get_typefunction efi_get_system_tablefunction efi_get_conf_tablefunction efi_find_vendor_tablefunction init_unaccepted_memory
Annotated Snippet
struct mem_vector {
u64 start;
u64 size;
};
#ifdef CONFIG_RANDOMIZE_BASE
/* kaslr.c */
void choose_random_location(unsigned long input,
unsigned long input_size,
unsigned long *output,
unsigned long output_size,
unsigned long *virt_addr);
#else
static inline void choose_random_location(unsigned long input,
unsigned long input_size,
unsigned long *output,
unsigned long output_size,
unsigned long *virt_addr)
{
}
#endif
/* cpuflags.c */
bool has_cpuflag(int flag);
#ifdef CONFIG_X86_64
extern int set_page_decrypted(unsigned long address);
extern int set_page_encrypted(unsigned long address);
extern int set_page_non_present(unsigned long address);
extern unsigned char _pgtable[];
#endif
#ifdef CONFIG_EARLY_PRINTK
/* early_serial_console.c */
extern int early_serial_base;
void console_init(void);
#else
static const int early_serial_base;
static inline void console_init(void)
{ }
#endif
#ifdef CONFIG_AMD_MEM_ENCRYPT
struct es_em_ctxt;
struct insn;
void sev_enable(struct boot_params *bp);
void snp_check_features(void);
void sev_es_shutdown_ghcb(void);
extern bool sev_es_check_ghcb_fault(unsigned long address);
void snp_set_page_private(unsigned long paddr);
void snp_set_page_shared(unsigned long paddr);
void sev_prep_identity_maps(unsigned long top_level_pgt);
enum es_result vc_decode_insn(struct es_em_ctxt *ctxt);
bool insn_has_rep_prefix(struct insn *insn);
void sev_insn_decode_init(void);
bool early_setup_ghcb(void);
#else
static inline void snp_check_features(void) { }
static inline void sev_es_shutdown_ghcb(void) { }
static inline bool sev_es_check_ghcb_fault(unsigned long address)
{
return false;
}
static inline void snp_set_page_private(unsigned long paddr) { }
static inline void snp_set_page_shared(unsigned long paddr) { }
static inline void sev_prep_identity_maps(unsigned long top_level_pgt) { }
#endif
/* acpi.c */
#ifdef CONFIG_ACPI
acpi_physical_address get_rsdp_addr(void);
#else
static inline acpi_physical_address get_rsdp_addr(void) { return 0; }
#endif
#if defined(CONFIG_RANDOMIZE_BASE) && defined(CONFIG_MEMORY_HOTREMOVE) && defined(CONFIG_ACPI)
extern struct mem_vector immovable_mem[MAX_NUMNODES*2];
int count_immovable_mem_regions(void);
#else
static inline int count_immovable_mem_regions(void) { return 0; }
#endif
/* ident_map_64.c */
extern unsigned int __pgtable_l5_enabled, pgdir_shift, ptrs_per_p4d;
extern void kernel_add_identity_map(unsigned long start, unsigned long end);
/* Used by PAGE_KERN* macros: */
extern pteval_t __default_kernel_pte_mask;
Annotation
- Immediate include surface: `linux/linkage.h`, `linux/screen_info.h`, `linux/elf.h`, `asm/page.h`, `asm/boot.h`, `asm/bootparam.h`, `asm/desc_defs.h`, `tdx.h`.
- Detected declarations: `struct mem_vector`, `struct es_em_ctxt`, `struct insn`, `enum efi_type`, `function debug_putstr`, `function choose_random_location`, `function console_init`, `function snp_check_features`, `function snp_set_page_private`, `function get_rsdp_addr`.
- Atlas domain: Architecture Layer / arch/x86.
- 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.