diff options
Diffstat (limited to 'include/linux/efi.h')
| -rw-r--r-- | include/linux/efi.h | 46 | 
1 files changed, 46 insertions, 0 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h index 2d089487d2da..a07a476178cd 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -443,6 +443,22 @@ typedef struct {  #define EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO_16 0x20000  #define EFI_PCI_IO_ATTRIBUTE_VGA_IO_16 0x40000 +typedef struct { +	u32 version; +	u32 get; +	u32 set; +	u32 del; +	u32 get_all; +} apple_properties_protocol_32_t; + +typedef struct { +	u64 version; +	u64 get; +	u64 set; +	u64 del; +	u64 get_all; +} apple_properties_protocol_64_t; +  /*   * Types and defines for EFI ResetSystem   */ @@ -589,8 +605,10 @@ void efi_native_runtime_setup(void);  #define DEVICE_TREE_GUID			EFI_GUID(0xb1b621d5, 0xf19c, 0x41a5,  0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0)  #define EFI_PROPERTIES_TABLE_GUID		EFI_GUID(0x880aaca3, 0x4adc, 0x4a04,  0x90, 0x79, 0xb7, 0x47, 0x34, 0x08, 0x25, 0xe5)  #define EFI_RNG_PROTOCOL_GUID			EFI_GUID(0x3152bca5, 0xeade, 0x433d,  0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44) +#define EFI_RNG_ALGORITHM_RAW			EFI_GUID(0xe43176d7, 0xb6e8, 0x4827,  0xb7, 0x84, 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61)  #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID	EFI_GUID(0xdcfa911d, 0x26eb, 0x469f,  0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)  #define EFI_CONSOLE_OUT_DEVICE_GUID		EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4,  0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d) +#define APPLE_PROPERTIES_PROTOCOL_GUID		EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb,  0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)  /*   * This GUID is used to pass to the kernel proper the struct screen_info @@ -599,6 +617,7 @@ void efi_native_runtime_setup(void);   */  #define LINUX_EFI_ARM_SCREEN_INFO_TABLE_GUID	EFI_GUID(0xe03fc20a, 0x85dc, 0x406e,  0xb9, 0x0e, 0x4a, 0xb5, 0x02, 0x37, 0x1d, 0x95)  #define LINUX_EFI_LOADER_ENTRY_GUID		EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf,  0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f) +#define LINUX_EFI_RANDOM_SEED_TABLE_GUID	EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2,  0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b)  typedef struct {  	efi_guid_t guid; @@ -872,6 +891,7 @@ extern struct efi {  	unsigned long esrt;		/* ESRT table */  	unsigned long properties_table;	/* properties table */  	unsigned long mem_attr_table;	/* memory attributes table */ +	unsigned long rng_seed;		/* UEFI firmware random seed */  	efi_get_time_t *get_time;  	efi_set_time_t *set_time;  	efi_get_wakeup_time_t *get_wakeup_time; @@ -1145,6 +1165,26 @@ struct efi_generic_dev_path {  	u16 length;  } __attribute ((packed)); +struct efi_dev_path { +	u8 type;	/* can be replaced with unnamed */ +	u8 sub_type;	/* struct efi_generic_dev_path; */ +	u16 length;	/* once we've moved to -std=c11 */ +	union { +		struct { +			u32 hid; +			u32 uid; +		} acpi; +		struct { +			u8 fn; +			u8 dev; +		} pci; +	}; +} __attribute ((packed)); + +#if IS_ENABLED(CONFIG_EFI_DEV_PATH_PARSER) +struct device *efi_get_device_by_path(struct efi_dev_path **node, size_t *len); +#endif +  static inline void memrange_efi_to_native(u64 *addr, u64 *npages)  {  	*npages = PFN_UP(*addr + (*npages<<EFI_PAGE_SHIFT)) - PFN_DOWN(*addr); @@ -1493,4 +1533,10 @@ efi_status_t efi_exit_boot_services(efi_system_table_t *sys_table,  				    struct efi_boot_memmap *map,  				    void *priv,  				    efi_exit_boot_map_processing priv_func); + +struct linux_efi_random_seed { +	u32	size; +	u8	bits[]; +}; +  #endif /* _LINUX_EFI_H */  |