MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DevicePath.h File Reference

Data Structures

struct  EFI_DEVICE_PATH_PROTOCOL
 
struct  PCI_DEVICE_PATH
 
struct  PCCARD_DEVICE_PATH
 
struct  MEMMAP_DEVICE_PATH
 
struct  VENDOR_DEVICE_PATH
 
struct  CONTROLLER_DEVICE_PATH
 
struct  BMC_DEVICE_PATH
 
struct  ACPI_HID_DEVICE_PATH
 
struct  ACPI_EXTENDED_HID_DEVICE_PATH
 
struct  ACPI_ADR_DEVICE_PATH
 
struct  ACPI_NVDIMM_DEVICE_PATH
 
struct  ATAPI_DEVICE_PATH
 
struct  SCSI_DEVICE_PATH
 
struct  FIBRECHANNEL_DEVICE_PATH
 
struct  FIBRECHANNELEX_DEVICE_PATH
 
struct  F1394_DEVICE_PATH
 
struct  USB_DEVICE_PATH
 
struct  USB_CLASS_DEVICE_PATH
 
struct  USB_WWID_DEVICE_PATH
 
struct  DEVICE_LOGICAL_UNIT_DEVICE_PATH
 
struct  SATA_DEVICE_PATH
 
struct  I2O_DEVICE_PATH
 
struct  MAC_ADDR_DEVICE_PATH
 
struct  IPv4_DEVICE_PATH
 
struct  IPv6_DEVICE_PATH
 
struct  INFINIBAND_DEVICE_PATH
 
struct  UART_DEVICE_PATH
 
struct  NVDIMM_NAMESPACE_DEVICE_PATH
 
struct  UART_FLOW_CONTROL_DEVICE_PATH
 
struct  SAS_DEVICE_PATH
 
struct  SASEX_DEVICE_PATH
 
struct  NVME_NAMESPACE_DEVICE_PATH
 
struct  DNS_DEVICE_PATH
 
struct  URI_DEVICE_PATH
 
struct  UFS_DEVICE_PATH
 
struct  SD_DEVICE_PATH
 
struct  EMMC_DEVICE_PATH
 
struct  ISCSI_DEVICE_PATH
 
struct  VLAN_DEVICE_PATH
 
struct  BLUETOOTH_DEVICE_PATH
 
struct  WIFI_DEVICE_PATH
 
struct  BLUETOOTH_LE_DEVICE_PATH
 
struct  HARDDRIVE_DEVICE_PATH
 
struct  CDROM_DEVICE_PATH
 
struct  FILEPATH_DEVICE_PATH
 
struct  MEDIA_PROTOCOL_DEVICE_PATH
 
struct  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH
 
struct  MEDIA_FW_VOL_DEVICE_PATH
 
struct  MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH
 
struct  MEDIA_RAM_DISK_DEVICE_PATH
 
struct  BBS_BBS_DEVICE_PATH
 
union  EFI_DEV_PATH
 
union  EFI_DEV_PATH_PTR
 

Macros

#define EFI_DEVICE_PATH_PROTOCOL_GUID
 
#define DEVICE_PATH_PROTOCOL   EFI_DEVICE_PATH_PROTOCOL_GUID
 
#define HARDWARE_DEVICE_PATH   0x01
 
#define HW_PCI_DP   0x01
 
#define HW_PCCARD_DP   0x02
 
#define HW_MEMMAP_DP   0x03
 
#define HW_VENDOR_DP   0x04
 
#define HW_CONTROLLER_DP   0x05
 
#define HW_BMC_DP   0x06
 
#define ACPI_DEVICE_PATH   0x02
 
#define ACPI_DP   0x01
 
#define ACPI_EXTENDED_DP   0x02
 
#define PNP_EISA_ID_CONST   0x41d0
 
#define EISA_ID(_Name, _Num)   ((UINT32)((_Name) | (_Num) << 16))
 
#define EISA_PNP_ID(_PNPId)   (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
 
#define EFI_PNP_ID(_PNPId)   (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
 
#define PNP_EISA_ID_MASK   0xffff
 
#define EISA_ID_TO_NUM(_Id)   ((_Id) >> 16)
 
#define ACPI_ADR_DP   0x03
 
#define ACPI_NVDIMM_DP   0x04
 
#define ACPI_ADR_DISPLAY_TYPE_OTHER   0
 
#define ACPI_ADR_DISPLAY_TYPE_VGA   1
 
#define ACPI_ADR_DISPLAY_TYPE_TV   2
 
#define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL   3
 
#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL   4
 
#define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index)
 
#define MESSAGING_DEVICE_PATH   0x03
 
#define MSG_ATAPI_DP   0x01
 
#define MSG_SCSI_DP   0x02
 
#define MSG_FIBRECHANNEL_DP   0x03
 
#define MSG_FIBRECHANNELEX_DP   0x15
 
#define MSG_1394_DP   0x04
 
#define MSG_USB_DP   0x05
 
#define MSG_USB_CLASS_DP   0x0f
 
#define MSG_USB_WWID_DP   0x10
 
#define MSG_DEVICE_LOGICAL_UNIT_DP   0x11
 
#define MSG_SATA_DP   0x12
 
#define SATA_HBA_DIRECT_CONNECT_FLAG   0x8000
 
#define MSG_I2O_DP   0x06
 
#define MSG_MAC_ADDR_DP   0x0b
 
#define MSG_IPv4_DP   0x0c
 
#define MSG_IPv6_DP   0x0d
 
#define MSG_INFINIBAND_DP   0x09
 
#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE   0x01
 
#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT   0x02
 
#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL   0x04
 
#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL   0x08
 
#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL   0x10
 
#define MSG_UART_DP   0x0e
 
#define NVDIMM_NAMESPACE_DP   0x20
 
#define MSG_VENDOR_DP   0x0a
 
#define DEVICE_PATH_MESSAGING_PC_ANSI   EFI_PC_ANSI_GUID
 
#define DEVICE_PATH_MESSAGING_VT_100   EFI_VT_100_GUID
 
#define DEVICE_PATH_MESSAGING_VT_100_PLUS   EFI_VT_100_PLUS_GUID
 
#define DEVICE_PATH_MESSAGING_VT_UTF8   EFI_VT_UTF8_GUID
 
#define UART_FLOW_CONTROL_HARDWARE   0x00000001
 
#define UART_FLOW_CONTROL_XON_XOFF   0x00000010
 
#define DEVICE_PATH_MESSAGING_SAS   EFI_SAS_DEVICE_PATH_GUID
 
#define MSG_SASEX_DP   0x16
 
#define MSG_NVME_NAMESPACE_DP   0x17
 
#define MSG_DNS_DP   0x1F
 
#define MSG_URI_DP   0x18
 
#define MSG_UFS_DP   0x19
 
#define MSG_SD_DP   0x1A
 
#define MSG_EMMC_DP   0x1D
 
#define MSG_ISCSI_DP   0x13
 
#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST   0x0000
 
#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C   0x0002
 
#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST   0x0000
 
#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C   0x0008
 
#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP   0x0000
 
#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON   0x1000
 
#define ISCSI_LOGIN_OPTION_CHAP_BI   0x0000
 
#define ISCSI_LOGIN_OPTION_CHAP_UNI   0x2000
 
#define MSG_VLAN_DP   0x14
 
#define MSG_BLUETOOTH_DP   0x1b
 
#define MSG_WIFI_DP   0x1C
 
#define MSG_BLUETOOTH_LE_DP   0x1E
 
#define MEDIA_DEVICE_PATH   0x04
 
#define MEDIA_HARDDRIVE_DP   0x01
 
#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
 
#define MEDIA_VENDOR_DP   0x03
 Media vendor device path subtype. More...
 
#define MEDIA_FILEPATH_DP   0x04
 
#define SIZE_OF_FILEPATH_DEVICE_PATH   OFFSET_OF(FILEPATH_DEVICE_PATH,PathName)
 
#define MEDIA_PROTOCOL_DP   0x05
 
#define MEDIA_PIWG_FW_FILE_DP   0x06
 
#define MEDIA_PIWG_FW_VOL_DP   0x07
 
#define MEDIA_RELATIVE_OFFSET_RANGE_DP   0x08
 
#define EFI_VIRTUAL_DISK_GUID   EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE
 
#define EFI_VIRTUAL_CD_GUID   EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE
 
#define EFI_PERSISTENT_VIRTUAL_DISK_GUID   EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT
 
#define EFI_PERSISTENT_VIRTUAL_CD_GUID   EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT
 
#define MEDIA_RAM_DISK_DP   0x09
 
#define BBS_DEVICE_PATH   0x05
 
#define BBS_BBS_DP   0x01
 
#define BBS_TYPE_FLOPPY   0x01
 
#define BBS_TYPE_HARDDRIVE   0x02
 
#define BBS_TYPE_CDROM   0x03
 
#define BBS_TYPE_PCMCIA   0x04
 
#define BBS_TYPE_USB   0x05
 
#define BBS_TYPE_EMBEDDED_NETWORK   0x06
 
#define BBS_TYPE_BEV   0x80
 
#define BBS_TYPE_UNKNOWN   0xFF
 
#define END_DEVICE_PATH_TYPE   0x7f
 
#define END_ENTIRE_DEVICE_PATH_SUBTYPE   0xFF
 
#define END_INSTANCE_DEVICE_PATH_SUBTYPE   0x01
 

Typedefs

typedef EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH
 
typedef VENDOR_DEVICE_PATH VENDOR_DEFINED_DEVICE_PATH
 

Variables

EFI_GUID gEfiVirtualDiskGuid
 
EFI_GUID gEfiVirtualCdGuid
 
EFI_GUID gEfiPersistentVirtualDiskGuid
 
EFI_GUID gEfiPersistentVirtualCdGuid
 
EFI_GUID gEfiDevicePathProtocolGuid
 

Detailed Description

The device path protocol as defined in UEFI 2.0.

The device path represents a programmatic path to a device, from a software point of view. The path must persist from boot to boot, so it can not contain things like PCI bus numbers that change from boot to boot.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL   3
#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL   4
#define ACPI_ADR_DISPLAY_TYPE_OTHER   0
#define ACPI_ADR_DISPLAY_TYPE_TV   2
#define ACPI_ADR_DISPLAY_TYPE_VGA   1
#define ACPI_ADR_DP   0x03

ACPI _ADR Device Path SubType.

#define ACPI_DEVICE_PATH   0x02

ACPI Device Paths.

#define ACPI_DISPLAY_ADR (   _DeviceIdScheme,
  _HeadId,
  _NonVgaOutput,
  _BiosCanDetect,
  _VendorInfo,
  _Type,
  _Port,
  _Index 
)
Value:
((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \
(((_HeadId) & 0x7) << 18) | \
(((_NonVgaOutput) & 0x1) << 17) | \
(((_BiosCanDetect) & 0x1) << 16) | \
(((_VendorInfo) & 0xf) << 12) | \
(((_Type) & 0xf) << 8) | \
(((_Port) & 0xf) << 4) | \
((_Index) & 0xf) ))
unsigned __int32 UINT32
Definition: ProcessorBind.h:130
#define ACPI_DP   0x01

ACPI Device Path SubType.

#define ACPI_EXTENDED_DP   0x02

Expanded ACPI Device Path SubType.

#define ACPI_NVDIMM_DP   0x04

ACPI NVDIMM Device Path SubType.

#define BBS_BBS_DP   0x01

BIOS Boot Specification Device Path SubType.

#define BBS_DEVICE_PATH   0x05

BIOS Boot Specification Device Path.

#define BBS_TYPE_BEV   0x80
#define BBS_TYPE_CDROM   0x03
#define BBS_TYPE_EMBEDDED_NETWORK   0x06
#define BBS_TYPE_FLOPPY   0x01
#define BBS_TYPE_HARDDRIVE   0x02
#define BBS_TYPE_PCMCIA   0x04
#define BBS_TYPE_UNKNOWN   0xFF
#define BBS_TYPE_USB   0x05
#define DEVICE_PATH_MESSAGING_PC_ANSI   EFI_PC_ANSI_GUID
#define DEVICE_PATH_MESSAGING_SAS   EFI_SAS_DEVICE_PATH_GUID
#define DEVICE_PATH_MESSAGING_VT_100   EFI_VT_100_GUID
#define DEVICE_PATH_MESSAGING_VT_100_PLUS   EFI_VT_100_PLUS_GUID
#define DEVICE_PATH_MESSAGING_VT_UTF8   EFI_VT_UTF8_GUID
#define DEVICE_PATH_PROTOCOL   EFI_DEVICE_PATH_PROTOCOL_GUID

Device Path guid definition for backward-compatible with EFI1.1.

#define EFI_DEVICE_PATH_PROTOCOL_GUID
Value:
{ \
0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
}

Device Path protocol.

This GUID defines a RAM Disk supporting an ISO image in persistent memory.

This GUID defines a RAM Disk supporting a raw disk format in persistent memory.

#define EFI_PNP_ID (   _PNPId)    (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))

This GUID defines a RAM Disk supporting an ISO image in volatile memory.

This GUID defines a RAM Disk supporting a raw disk format in volatile memory.

#define EISA_ID (   _Name,
  _Num 
)    ((UINT32)((_Name) | (_Num) << 16))
#define EISA_ID_TO_NUM (   _Id)    ((_Id) >> 16)
#define EISA_PNP_ID (   _PNPId)    (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
#define END_DEVICE_PATH_TYPE   0x7f
#define END_ENTIRE_DEVICE_PATH_SUBTYPE   0xFF
#define END_INSTANCE_DEVICE_PATH_SUBTYPE   0x01
#define HARDWARE_DEVICE_PATH   0x01

Hardware Device Paths.

#define HW_BMC_DP   0x06

BMC Device Path SubType.

#define HW_CONTROLLER_DP   0x05

Controller Device Path SubType.

#define HW_MEMMAP_DP   0x03

Memory Mapped Device Path SubType.

#define HW_PCCARD_DP   0x02

PCCARD Device Path SubType.

#define HW_PCI_DP   0x01

PCI Device Path SubType.

#define HW_VENDOR_DP   0x04

Hardware Vendor Device Path SubType.

#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL   0x04
#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT   0x02
#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE   0x01
#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL   0x10
#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL   0x08
#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP   0x0000
#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON   0x1000
#define ISCSI_LOGIN_OPTION_CHAP_BI   0x0000
#define ISCSI_LOGIN_OPTION_CHAP_UNI   0x2000
#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C   0x0008
#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C   0x0002
#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST   0x0000
#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST   0x0000
#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER   0x02
#define MBR_TYPE_PCAT   0x01
#define MEDIA_CDROM_DP   0x02

CD-ROM Media Device Path SubType.

#define MEDIA_DEVICE_PATH   0x04
#define MEDIA_FILEPATH_DP   0x04

File Path Media Device Path SubType

#define MEDIA_HARDDRIVE_DP   0x01

Hard Drive Media Device Path SubType.

#define MEDIA_PIWG_FW_FILE_DP   0x06

PIWG Firmware File SubType.

#define MEDIA_PIWG_FW_VOL_DP   0x07

PIWG Firmware Volume Device Path SubType.

#define MEDIA_PROTOCOL_DP   0x05

Media Protocol Device Path SubType.

#define MEDIA_RAM_DISK_DP   0x09

Media ram disk device path.

#define MEDIA_RELATIVE_OFFSET_RANGE_DP   0x08

Media relative offset range device path.

#define MEDIA_VENDOR_DP   0x03

Media vendor device path subtype.

#define MESSAGING_DEVICE_PATH   0x03

Messaging Device Paths. This Device Path is used to describe the connection of devices outside the resource domain of the system. This Device Path can describe physical messaging information like SCSI ID, or abstract information like networking protocol IP addresses.

#define MSG_1394_DP   0x04

1394 Device Path SubType

#define MSG_ATAPI_DP   0x01

ATAPI Device Path SubType

#define MSG_BLUETOOTH_DP   0x1b

Bluetooth Device Path SubType.

#define MSG_BLUETOOTH_LE_DP   0x1E

Bluetooth LE Device Path SubType.

#define MSG_DEVICE_LOGICAL_UNIT_DP   0x11

Device Logical Unit SubType.

#define MSG_DNS_DP   0x1F

DNS Device Path SubType

#define MSG_EMMC_DP   0x1D

EMMC (Embedded MMC) Device Path SubType.

#define MSG_FIBRECHANNEL_DP   0x03

Fibre Channel SubType.

#define MSG_FIBRECHANNELEX_DP   0x15

Fibre Channel Ex SubType.

#define MSG_I2O_DP   0x06

I2O Device Path SubType.

#define MSG_INFINIBAND_DP   0x09

InfiniBand Device Path SubType.

#define MSG_IPv4_DP   0x0c

IPv4 Device Path SubType

#define MSG_IPv6_DP   0x0d

IPv6 Device Path SubType.

#define MSG_ISCSI_DP   0x13

iSCSI Device Path SubType

#define MSG_MAC_ADDR_DP   0x0b

MAC Address Device Path SubType.

#define MSG_NVME_NAMESPACE_DP   0x17

NvmExpress Namespace Device Path SubType.

#define MSG_SASEX_DP   0x16

Serial Attached SCSI (SAS) Ex Device Path SubType

#define MSG_SATA_DP   0x12

SATA Device Path SubType.

#define MSG_SCSI_DP   0x02

SCSI Device Path SubType.

#define MSG_SD_DP   0x1A

SD (Secure Digital) Device Path SubType.

#define MSG_UART_DP   0x0e

UART Device Path SubType.

#define MSG_UFS_DP   0x19

Universal Flash Storage (UFS) Device Path SubType.

#define MSG_URI_DP   0x18

Uniform Resource Identifiers (URI) Device Path SubType

#define MSG_USB_CLASS_DP   0x0f

USB Class Device Path SubType.

#define MSG_USB_DP   0x05

USB Device Path SubType.

#define MSG_USB_WWID_DP   0x10

USB WWID Device Path SubType.

#define MSG_VENDOR_DP   0x0a
#define MSG_VLAN_DP   0x14

VLAN Device Path SubType.

#define MSG_WIFI_DP   0x1C

Wi-Fi Device Path SubType.

#define NO_DISK_SIGNATURE   0x00
#define NVDIMM_NAMESPACE_DP   0x20

NVDIMM Namespace Device Path SubType.

#define PNP_EISA_ID_CONST   0x41d0
#define PNP_EISA_ID_MASK   0xffff
#define SATA_HBA_DIRECT_CONNECT_FLAG   0x8000

Flag for if the device is directly connected to the HBA.

#define SIGNATURE_TYPE_GUID   0x02
#define SIGNATURE_TYPE_MBR   0x01
#define SIZE_OF_FILEPATH_DEVICE_PATH   OFFSET_OF(FILEPATH_DEVICE_PATH,PathName)
#define UART_FLOW_CONTROL_HARDWARE   0x00000001
#define UART_FLOW_CONTROL_XON_XOFF   0x00000010

Typedef Documentation

Device Path protocol definition for backward-compatible with EFI1.1.

Variable Documentation

EFI_GUID gEfiDevicePathProtocolGuid
EFI_GUID gEfiPersistentVirtualCdGuid
EFI_GUID gEfiPersistentVirtualDiskGuid
EFI_GUID gEfiVirtualCdGuid
EFI_GUID gEfiVirtualDiskGuid