diff --git a/sdk/xtdk/xtuefi.h b/sdk/xtdk/xtuefi.h index aba4c71..5597127 100644 --- a/sdk/xtdk/xtuefi.h +++ b/sdk/xtdk/xtuefi.h @@ -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 {