0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \\r
}\r
\r
-//\r
-// Protocol GUID defined in EFI1.1.\r
-// \r
-\r
///\r
-/// Device Path information\r
+/// Device Path guid definition for backward-compatible with EFI1.1.\r
///\r
#define DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL_GUID\r
\r
} EFI_DEVICE_PATH_PROTOCOL;\r
\r
///\r
-/// For backward-compatible with EFI1.1.\r
+/// Device Path protocol definition for backward-compatible with EFI1.1.\r
/// \r
typedef EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH;\r
\r
#define HARDWARE_DEVICE_PATH 0x01\r
\r
///\r
-/// PCI Device Path\r
+/// PCI Device Path SubType\r
///\r
#define HW_PCI_DP 0x01\r
+\r
+///\r
+/// PCI Device Path\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} PCI_DEVICE_PATH;\r
\r
///\r
-/// PCCARD Device Path\r
+/// PCCARD Device Path SubType\r
///\r
#define HW_PCCARD_DP 0x02\r
+\r
+///\r
+/// PCCARD Device Path\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} PCCARD_DEVICE_PATH;\r
\r
///\r
-/// Memory Mapped Device Path\r
+/// Memory Mapped Device Path SubType\r
///\r
#define HW_MEMMAP_DP 0x03\r
+\r
+///\r
+/// Memory Mapped Device Path\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
EFI_PHYSICAL_ADDRESS EndingAddress;\r
} MEMMAP_DEVICE_PATH;\r
\r
+///\r
+/// Hardware Vendor Device Path SubType\r
+///\r
+#define HW_VENDOR_DP 0x04\r
+\r
///\r
/// The Vendor Device Path allows the creation of vendor-defined Device Paths. A vendor must\r
/// allocate a Vendor GUID for a Device Path. The Vendor GUID can then be used to define the\r
/// contents on the n bytes that follow in the Vendor Device Path node.\r
///\r
-#define HW_VENDOR_DP 0x04\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} VENDOR_DEVICE_PATH;\r
\r
///\r
-/// Controller Device Path\r
+/// Controller Device Path SubType\r
///\r
#define HW_CONTROLLER_DP 0x05\r
+\r
+///\r
+/// Controller Device Path\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} CONTROLLER_DEVICE_PATH;\r
\r
///\r
-/// ACPI Device Paths\r
+/// ACPI Device Paths \r
///\r
#define ACPI_DEVICE_PATH 0x02\r
\r
///\r
-/// ACPI Device Path\r
+/// ACPI Device Path SubType\r
///\r
#define ACPI_DP 0x01\r
typedef struct {\r
} ACPI_HID_DEVICE_PATH;\r
\r
///\r
-/// Expanded ACPI Device Path.\r
+/// Expanded ACPI Device Path SubType\r
///\r
#define ACPI_EXTENDED_DP 0x02\r
typedef struct {\r
#define PNP_EISA_ID_MASK 0xffff\r
#define EISA_ID_TO_NUM(_Id) ((_Id) >> 16)\r
\r
+///\r
+/// ACPI _ADR Device Path SubType\r
+///\r
+#define ACPI_ADR_DP 0x03\r
\r
///\r
/// The _ADR device path is used to contain video output device attributes to support the Graphics\r
/// Output Protocol. The device path can contain multiple _ADR entries if multiple video output\r
/// devices are displaying the same output.\r
///\r
-#define ACPI_ADR_DP 0x03\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
/// least one _ADR value is required.\r
///\r
UINT32 ADR;\r
- ///\r
- /// This device path may optionally contain more than one _ADR entry.\r
- ///\r
+ //\r
+ // This device path may optionally contain more than one _ADR entry.\r
+ //\r
} ACPI_ADR_DEVICE_PATH;\r
\r
#define ACPI_ADR_DISPLAY_TYPE_OTHER 0\r
#define MESSAGING_DEVICE_PATH 0x03\r
\r
///\r
-/// ATAPI Device Path\r
+/// ATAPI Device Path SubType\r
///\r
#define MSG_ATAPI_DP 0x01\r
typedef struct {\r
} ATAPI_DEVICE_PATH;\r
\r
///\r
-/// SCSI Device Path\r
+/// SCSI Device Path SubType\r
///\r
#define MSG_SCSI_DP 0x02\r
typedef struct {\r
} SCSI_DEVICE_PATH;\r
\r
///\r
-/// Fibre Channel\r
+/// Fibre Channel SubType\r
///\r
#define MSG_FIBRECHANNEL_DP 0x03\r
typedef struct {\r
} FIBRECHANNEL_DEVICE_PATH;\r
\r
///\r
-/// 1394 Device Path\r
+/// 1394 Device Path SubType\r
///\r
#define MSG_1394_DP 0x04\r
typedef struct {\r
} F1394_DEVICE_PATH;\r
\r
///\r
-/// USB Device Path\r
+/// USB Device Path SubType\r
///\r
#define MSG_USB_DP 0x05\r
typedef struct {\r
} USB_DEVICE_PATH;\r
\r
///\r
-/// USB Class Device Path\r
+/// USB Class Device Path SubType\r
///\r
#define MSG_USB_CLASS_DP 0x0f\r
typedef struct {\r
} USB_CLASS_DEVICE_PATH;\r
\r
///\r
-/// This device path describes a USB device using its serial number.\r
-/// USB WWID Device Path\r
+/// USB WWID Device Path SubType\r
///\r
#define MSG_USB_WWID_DP 0x10\r
+\r
+///\r
+/// This device path describes a USB device using its serial number.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} USB_WWID_DEVICE_PATH;\r
\r
///\r
-/// Device Logical Unit\r
+/// Device Logical Unit SubType\r
///\r
#define MSG_DEVICE_LOGICAL_UNIT_DP 0x11\r
typedef struct {\r
} DEVICE_LOGICAL_UNIT_DEVICE_PATH;\r
\r
///\r
-/// SATA Device Path\r
+/// SATA Device Path SubType\r
///\r
#define MSG_SATA_DP 0x12\r
typedef struct {\r
} SATA_DEVICE_PATH;\r
\r
///\r
-/// I2O Device Path \r
+/// I2O Device Path SubType\r
///\r
#define MSG_I2O_DP 0x06\r
typedef struct {\r
} I2O_DEVICE_PATH;\r
\r
///\r
-/// MAC Address Device Path\r
+/// MAC Address Device Path SubType\r
///\r
#define MSG_MAC_ADDR_DP 0x0b\r
typedef struct {\r
} MAC_ADDR_DEVICE_PATH;\r
\r
///\r
-/// IPv4 Device Path\r
+/// IPv4 Device Path SubType\r
///\r
#define MSG_IPv4_DP 0x0c\r
typedef struct {\r
} IPv4_DEVICE_PATH;\r
\r
///\r
-/// IPv6 Device Path\r
+/// IPv6 Device Path SubType\r
///\r
#define MSG_IPv6_DP 0x0d\r
typedef struct {\r
} IPv6_DEVICE_PATH;\r
\r
///\r
-/// InfiniBand Device Path\r
+/// InfiniBand Device Path SubType\r
///\r
#define MSG_INFINIBAND_DP 0x09\r
typedef struct {\r
#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10\r
\r
///\r
-/// UART Device Path\r
+/// UART Device Path SubType\r
///\r
#define MSG_UART_DP 0x0e\r
typedef struct {\r
#define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID\r
#define DEVICE_PATH_MESSAGING_VT_UTF8 EFI_VT_UTF8_GUID\r
\r
+#define DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL EFI_UART_DEVICE_PATH_GUID\r
+\r
///\r
/// A new device path node is defined to declare flow control characteristics.\r
/// UART Flow Control Messaging Device Path\r
///\r
-#define DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL EFI_UART_DEVICE_PATH_GUID\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
- /// DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL\r
+ /// DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL GUID\r
///\r
EFI_GUID Guid;\r
///\r
UINT32 FlowControlMap;\r
} UART_FLOW_CONTROL_DEVICE_PATH;\r
\r
+#define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID\r
///\r
/// Serial Attached SCSI (SAS) devices.\r
///\r
-#define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
- /// DEVICE_PATH_MESSAGING_SAS\r
+ /// DEVICE_PATH_MESSAGING_SAS GUID\r
///\r
EFI_GUID Guid;\r
///\r
} SAS_DEVICE_PATH;\r
\r
///\r
-/// iSCSI Device Path Node (Base Information)\r
+/// iSCSI Device Path SubType\r
///\r
#define MSG_ISCSI_DP 0x13\r
typedef struct {\r
#define MEDIA_DEVICE_PATH 0x04\r
\r
///\r
-/// The Hard Drive Media Device Path is used to represent a partition on a hard drive.\r
-/// Hard Drive Media Device Path\r
+/// Hard Drive Media Device Path SubType\r
///\r
#define MEDIA_HARDDRIVE_DP 0x01\r
+\r
+///\r
+/// The Hard Drive Media Device Path is used to represent a partition on a hard drive.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
#define SIGNATURE_TYPE_GUID 0x02\r
\r
///\r
-/// The CD-ROM Media Device Path is used to define a system partition that exists on a CD-ROM.\r
-/// CD-ROM Media Device Path\r
+/// CD-ROM Media Device Path SubType\r
///\r
#define MEDIA_CDROM_DP 0x02\r
+\r
+///\r
+/// The CD-ROM Media Device Path is used to define a system partition that exists on a CD-ROM.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
UINT64 PartitionSize;\r
} CDROM_DEVICE_PATH;\r
\r
-///\r
-/// Use VENDOR_DEVICE_PATH struct\r
-///\r
-#define MEDIA_VENDOR_DP 0x03\r
+//\r
+// Use VENDOR_DEVICE_PATH struct\r
+//\r
+#define MEDIA_VENDOR_DP 0x03 ///< Media vendor device path subtype\r
\r
///\r
-/// File Path Media Device Path\r
+/// File Path Media Device Path SubType\r
///\r
#define MEDIA_FILEPATH_DP 0x04\r
typedef struct {\r
\r
#define SIZE_OF_FILEPATH_DEVICE_PATH EFI_FIELD_OFFSET(FILEPATH_DEVICE_PATH,PathName)\r
\r
+///\r
+/// Media Protocol Device Path SubType\r
+///\r
+#define MEDIA_PROTOCOL_DP 0x05\r
+\r
///\r
/// The Media Protocol Device Path is used to denote the protocol that is being \r
/// used in a device path at the location of the path specified. \r
/// Many protocols are inherent to the style of device path.\r
///\r
-#define MEDIA_PROTOCOL_DP 0x05\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} MEDIA_PROTOCOL_DEVICE_PATH;\r
\r
///\r
-/// This type is used by systems implementing the UEFI PI Specification 1.0 to describe a firmware volume.\r
-/// PIWG Firmware Volume Device Path.\r
+/// PIWG Firmware Volume Device Path SubType\r
///\r
#define MEDIA_PIWG_FW_VOL_DP 0x7\r
+\r
+///\r
+/// This device path is used by systems implementing the UEFI PI Specification 1.0 to describe a firmware volume.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} MEDIA_FW_VOL_DEVICE_PATH;\r
\r
///\r
-/// This type is used by systems implementing the UEFI PI Specification 1.0 to describe a firmware file.\r
-/// PIWG Firmware Volume Device Path\r
+/// PIWG Firmware Volume Device Path SubType\r
///\r
#define MEDIA_PIWG_FW_FILE_DP 0x6\r
+\r
+///\r
+/// This device path is used by systems implementing the UEFI PI Specification 1.0 to describe a firmware file.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
\r
///\r
-/// This Device Path is used to describe the booting of non-EFI-aware operating systems.\r
/// BIOS Boot Specification Device Path\r
///\r
#define BBS_DEVICE_PATH 0x05\r
+\r
+///\r
+/// BIOS Boot Specification Device Path SubType\r
+///\r
#define BBS_BBS_DP 0x01\r
+\r
+///\r
+/// This Device Path is used to describe the booting of non-EFI-aware operating systems.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
///\r
///\r
/// Union of all possible Device Paths and pointers to Device Paths\r
///\r
-\r
typedef union {\r
EFI_DEVICE_PATH_PROTOCOL DevPath;\r
PCI_DEVICE_PATH Pci;\r