EFI file system structures

This commit is contained in:
Rafal Kupiec 2022-08-01 08:57:58 +02:00
parent 66e0f0cba4
commit 4afc8e1cbf
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4

View File

@ -314,10 +314,14 @@ typedef struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL EFI_PLATFORM_DRIVER_OVERRI
typedef struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL, *PEFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL;
typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL, *PEFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL;
typedef struct _EFI_EBC_PROTOCOL EFI_EBC_PROTOCOL, *PEFI_EBC_PROTOCOL;
typedef struct _EFI_PARTITION_HEADER EFI_PARTITION_HEADER, *PEFI_PARTITION_HEADER;
typedef struct _EFI_MBR_PARTITION_RECORD EFI_MBR_PARTITION_RECORD, *PEFI_MBR_PARTITION_RECORD;
typedef struct _EFI_MASTER_BOOT_RECORD EFI_MASTER_BOOT_RECORD, *PEFI_MASTER_BOOT_RECORD;
typedef struct _EFI_GPT_PARTITION_TABLE_HEADER EFI_GPT_PARTITION_TABLE_HEADER, *PEFI_GPT_PARTITION_TABLE_HEADER;
typedef struct _EFI_GPT_PARTITION_ENTRY EFI_GPT_PARTITION_ENTRY, *PEFI_GPT_PARTITION_ENTRY;
typedef struct _EFI_FILE_HEADER EFI_FILE_HEADER, *PEFI_FILE_HEADER;
typedef struct _EFI_LBAL EFI_LBAL, *PEFI_LBAL;
typedef struct _EFI_RL EFI_RL, *PEFI_RL;
typedef struct _EFI_UART_IO_MODE EFI_UART_IO_MODE, *PEFI_UART_IO_MODE;
typedef struct _EFI_UART_IO_PROTOCOL EFI_UART_IO_PROTOCOL, *PEFI_UART_IO_PROTOCOL;
@ -1625,6 +1629,20 @@ typedef struct _EFI_EBC_PROTOCOL
PEFI_EBC_GET_VERSION GetVersion;
} EFI_EBC_PROTOCOL, *PEFI_EBC_PROTOCOL;
/* EFI partition header */
typedef struct _EFI_PARTITION_HEADER
{
EFI_TABLE_HEADER Hdr;
UINT32 DirectoryAllocationNumber;
UINT32 BlockSize;
EFI_LBA FirstUsableLba;
EFI_LBA LastUsableLba;
EFI_LBA UnusableSpace;
EFI_LBA FreeSpace;
EFI_LBA RootFile;
EFI_LBA SecutiryFile;
} EFI_PARTITION_HEADER, *PEFI_PARTITION_HEADER;
/* MBR partition information */
typedef struct _EFI_MBR_PARTITION_RECORD
{
@ -1676,6 +1694,39 @@ typedef struct _EFI_GPT_PARTITION_ENTRY
UINT16 PartitionName[36];
} EFI_GPT_PARTITION_ENTRY, *PEFI_GPT_PARTITION_ENTRY;
/* EFI file header */
typedef struct _EFI_FILE_HEADER
{
EFI_TABLE_HEADER Hdr;
UINT32 Class;
UINT32 LBALOffset;
EFI_LBA Parent;
UINT64 FileSize;
UINT64 FileAttributes;
EFI_TIME FileCreateTime;
EFI_TIME FileModificationTime;
EFI_GUID VendorGuid;
UINT16 FileString[260];
} EFI_FILE_HEADER, *PEFI_FILE_HEADER;
/* Logical Block Address List (LBA List) */
typedef struct _EFI_LBAL
{
EFI_TABLE_HEADER Hdr;
UINT32 Class;
EFI_LBA Parent;
EFI_LBA Next;
UINT32 ArraySize;
UINT32 ArrayCount;
} EFI_LBAL, *PEFI_LBAL;
/* Logical Block run-length */
typedef struct _EFI_RL
{
EFI_LBA Start;
UINT64 Length;
} EFI_RL, *PEFI_RL;
/* EFI UART I/O mode */
typedef struct _EFI_UART_IO_MODE
{