diff --git a/BOOT/ENVIRON/INC/efidevp.h b/BOOT/ENVIRON/INC/efidevp.h index ea1ed34..0b76fee 100644 --- a/BOOT/ENVIRON/INC/efidevp.h +++ b/BOOT/ENVIRON/INC/efidevp.h @@ -24,8 +24,40 @@ typedef struct _EFI_DEVICE_PATH_PROTOCOL { typedef struct _EFI_DEVICE_PATH_PROTOCOL _EFI_DEVICE_PATH; typedef EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH; +#define END_DEVICE_PATH_TYPE 0x7f + +#define HARDWARE_DEVICE_PATH 0x01 + +#define HW_MEMMAP_DP 0x03 + +typedef struct { + EFI_DEVICE_PATH Header; + UINT32 MemoryType; + EFI_PHYSICAL_ADDRESS StartingAddress; + EFI_PHYSICAL_ADDRESS EndingAddress; +} MEMMAP_DEVICE_PATH; + #define MEDIA_DEVICE_PATH 0x04 +#define MEDIA_HARDDRIVE_DP 0x01 + +typedef struct { + EFI_DEVICE_PATH Header; + UINT32 PartitionNumber; + UINT64 PartitionStart; + UINT64 PartitionSize; + UINT8 Signature[16]; + UINT8 MBRType; + UINT8 SignatureType; +} HARDDRIVE_DEVICE_PATH; + +#define MBR_TYPE_PCAT 0x01 +#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02 + +#define NO_DISK_SIGNATURE 0x00 +#define SIGNATURE_TYPE_MBR 0x01 +#define SIGNATURE_TYPE_GUID 0x02 + #define MEDIA_CDROM_DP 0x02 typedef struct { @@ -35,6 +67,13 @@ typedef struct { UINT64 PartitionSize; } CDROM_DEVICE_PATH; +#define MEDIA_FILEPATH_DP 0x04 + +typedef struct { + EFI_DEVICE_PATH Header; + CHAR16 PathName[1]; +} FILEPATH_DEVICE_PATH; + FORCEINLINE UINT8 DevicePathType (