diff --git a/sdk/xtdk/xtuefi.h b/sdk/xtdk/xtuefi.h index d3d7825..d5b9e6e 100644 --- a/sdk/xtdk/xtuefi.h +++ b/sdk/xtdk/xtuefi.h @@ -294,6 +294,10 @@ 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_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; /* EFI unions forward references */ typedef union _EFI_DEV_PATH EFI_DEV_PATH, *PEFI_DEV_PATH; @@ -1593,4 +1597,55 @@ typedef struct _EFI_EBC_PROTOCOL PEFI_EBC_GET_VERSION GetVersion; } EFI_EBC_PROTOCOL, *PEFI_EBC_PROTOCOL; +/* MBR partition information */ +typedef struct _EFI_MBR_PARTITION_RECORD +{ + UINT8 BootIndicator; + UINT8 StartHead; + UINT8 StartSector; + UINT8 StartTrack; + UINT8 OSIndicator; + UINT8 EndHead; + UINT8 EndSector; + UINT8 EndTrack; + UINT8 StartingLBA[4]; + UINT8 SizeInLBA[4]; +} EFI_MBR_PARTITION_RECORD, *PEFI_MBR_PARTITION_RECORD; + +/* Master Boot Record (MBR) information */ +typedef struct _EFI_MASTER_BOOT_RECORD +{ + UINT8 BootStrapCode[440]; + UINT8 UniqueMbrSignature[4]; + UINT8 Unknown[2]; + EFI_MBR_PARTITION_RECORD Partition[4]; + UINT16 Signature; +} EFI_MASTER_BOOT_RECORD, *PEFI_MASTER_BOOT_RECORD; + +/* GUID Partition Table (GPT) header */ +typedef struct _EFI_GPT_PARTITION_TABLE_HEADER +{ + EFI_TABLE_HEADER Header; + EFI_LBA MyLBA; + EFI_LBA AlternateLBA; + EFI_LBA FirstUsableLBA; + EFI_LBA LastUsableLBA; + EFI_GUID DiskGUID; + EFI_LBA PartitionEntryLBA; + UINT32 NumberOfPartitionEntries; + UINT32 SizeOfPartitionEntry; + UINT32 PartitionEntryArrayCRC32; +} EFI_GPT_PARTITION_TABLE_HEADER, *PEFI_GPT_PARTITION_TABLE_HEADER; + +/* GUID Partition Table (GPT) partition entry */ +typedef struct _EFI_GPT_PARTITION_ENTRY +{ + EFI_GUID PartitionTypeGUID; + EFI_GUID UniquePartitionGUID; + EFI_LBA StartingLBA; + EFI_LBA EndingLBA; + UINT64 Attributes; + UINT16 PartitionName[36]; +} EFI_GPT_PARTITION_ENTRY, *PEFI_GPT_PARTITION_ENTRY; + #endif /* __XTDK_XTUEFI_H */