94 lines · 1.9 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */#ifndef _UAPI_ASM_X86_SETUP_DATA_H#define _UAPI_ASM_X86_SETUP_DATA_H /* setup_data/setup_indirect types */#define SETUP_NONE			0#define SETUP_E820_EXT			1#define SETUP_DTB			2#define SETUP_PCI			3#define SETUP_EFI			4#define SETUP_APPLE_PROPERTIES		5#define SETUP_JAILHOUSE			6#define SETUP_CC_BLOB			7#define SETUP_IMA			8#define SETUP_RNG_SEED			9#define SETUP_KEXEC_KHO			10#define SETUP_ENUM_MAX			SETUP_KEXEC_KHO #define SETUP_INDIRECT			(1<<31)#define SETUP_TYPE_MAX			(SETUP_ENUM_MAX | SETUP_INDIRECT) #ifndef __ASSEMBLER__ #include <linux/types.h> /* extensible setup data list node */struct setup_data {	__u64 next;	__u32 type;	__u32 len;	__u8 data[];}; /* extensible setup indirect data node */struct setup_indirect {	__u32 type;	__u32 reserved;  /* Reserved, must be set to zero. */	__u64 len;	__u64 addr;}; /* * The E820 memory region entry of the boot protocol ABI: */struct boot_e820_entry {	__u64 addr;	__u64 size;	__u32 type;} __attribute__((packed)); /* * The boot loader is passing platform information via this Jailhouse-specific * setup data structure. */struct jailhouse_setup_data {	struct {		__u16	version;		__u16	compatible_version;	} __attribute__((packed)) hdr;	struct {		__u16	pm_timer_address;		__u16	num_cpus;		__u64	pci_mmconfig_base;		__u32	tsc_khz;		__u32	apic_khz;		__u8	standard_ioapic;		__u8	cpu_ids[255];	} __attribute__((packed)) v1;	struct {		__u32	flags;	} __attribute__((packed)) v2;} __attribute__((packed)); /* * IMA buffer setup data information from the previous kernel during kexec */struct ima_setup_data {	__u64 addr;	__u64 size;} __attribute__((packed)); /* * Locations of kexec handover metadata */struct kho_data {	__u64 fdt_addr;	__u64 fdt_size;	__u64 scratch_addr;	__u64 scratch_size;} __attribute__((packed)); #endif /* __ASSEMBLER__ */ #endif /* _UAPI_ASM_X86_SETUP_DATA_H */