Add EFI device path structures
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
d1fff10c15
commit
dbded1e5e4
@ -9,11 +9,27 @@
|
||||
#ifndef __XTDK_XTUEFI_H
|
||||
#define __XTDK_XTUEFI_H
|
||||
|
||||
#include "xtdefs.h"
|
||||
#include "xttypes.h"
|
||||
#include "xtstruct.h"
|
||||
#include "xtcommon.h"
|
||||
|
||||
|
||||
/* EFI Pages related definitions */
|
||||
#define EFI_PAGE_SIZE 4096
|
||||
#define EFI_PAGE_MASK 0xFFF
|
||||
#define EFI_PAGE_SHIFT 12
|
||||
|
||||
/* DeviceType definitions according to BBS specification */
|
||||
#define EFI_BBS_TYPE_FLOPPY 0x01
|
||||
#define EFI_BBS_TYPE_HARDDRIVE 0x02
|
||||
#define EFI_BBS_TYPE_CDROM 0x03
|
||||
#define EFI_BBS_TYPE_PCMCIA 0x04
|
||||
#define EFI_BBS_TYPE_USB 0x05
|
||||
#define EFI_BBS_TYPE_EMBEDDED_NETWORK 0x06
|
||||
#define EFI_BBS_TYPE_DEV 0x80
|
||||
#define EFI_BBS_TYPE_UNKNOWN 0xFF
|
||||
|
||||
/* Basic UEFI types */
|
||||
typedef PVOID EFI_EVENT, *PEFI_EVENT;
|
||||
typedef PVOID EFI_HANDLE, *PEFI_HANDLE;
|
||||
@ -170,6 +186,18 @@ typedef EFI_STATUS (*PEFI_TEXT_SET_ATTRIBUTE)(PEFI_SIMPLE_TEXT_OUTPUT_PROTOCOL T
|
||||
typedef EFI_STATUS (*PEFI_TEXT_CLEAR_SCREEN)(PEFI_SIMPLE_TEXT_OUTPUT_PROTOCOL This);
|
||||
typedef EFI_STATUS (*PEFI_TEXT_SET_CURSOR_POSITION)(PEFI_SIMPLE_TEXT_OUTPUT_PROTOCOL This, UINT_PTR Column, UINT_PTR Row);
|
||||
typedef EFI_STATUS (*PEFI_TEXT_ENABLE_CURSOR)(PEFI_SIMPLE_TEXT_OUTPUT_PROTOCOL This, UCHAR Visible);
|
||||
typedef PUINT16(*PEFI_DEVICE_PATH_TO_TEXT_NODE)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DeviceNode, IN BOOLEAN DisplayOnly, IN BOOLEAN AllowShortcuts);
|
||||
typedef PUINT16(*PEFI_DEVICE_PATH_TO_TEXT_PATH)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePath, IN BOOLEAN DisplayOnly, IN BOOLEAN AllowShortcuts);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_FROM_TEXT_NODE)(IN CONST PUINT16 TextDeviceNode);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_FROM_TEXT_PATH)(IN CONST PUINT16 TextDevicePath);
|
||||
typedef UINT_PTR(*PEFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePath);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePath);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_UTILS_APPEND_PATH)(IN CONST PEFI_DEVICE_PATH_PROTOCOL Src1, IN CONST PEFI_DEVICE_PATH_PROTOCOL Src2);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_UTILS_APPEND_NODE)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePath, IN CONST PEFI_DEVICE_PATH_PROTOCOL DeviceNode);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_UTILS_APPEND_INSTANCE)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePath, IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePathInstance);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_UTILS_GET_NEXT_INSTANCE)(IN OUT PEFI_DEVICE_PATH_PROTOCOL *DevicePathInstance, OUT PUINT_PTR DevicePathInstanceSize);
|
||||
typedef PEFI_DEVICE_PATH_PROTOCOL(*PEFI_DEVICE_PATH_UTILS_CREATE_NODE)(IN UINT8 NodeType, IN UINT8 NodeSubType, IN UINT16 NodeLength);
|
||||
typedef BOOLEAN (*PEFI_DEVICE_PATH_UTILS_IS_MULTI_INSTANCE)(IN CONST PEFI_DEVICE_PATH_PROTOCOL DevicePath);
|
||||
|
||||
/* 128-bit buffer containing a unique identifier value */
|
||||
typedef struct _EFI_GUID
|
||||
@ -234,14 +262,6 @@ typedef struct _EFI_TIME_CAPABILITIES
|
||||
UCHAR SetsToZero;
|
||||
} EFI_TIME_CAPABILITIES, *PEFI_TIME_CAPABILITIES;
|
||||
|
||||
/* Describes the location of the device the handle is for */
|
||||
typedef struct _EFI_DEVICE_PATH_PROTOCOL
|
||||
{
|
||||
UINT8 Type;
|
||||
UINT8 SubType;
|
||||
UINT8 Length[2];
|
||||
} EFI_DEVICE_PATH_PROTOCOL, *PEFI_DEVICE_PATH_PROTOCOL;
|
||||
|
||||
/* EFI Open Protocol Information Entry */
|
||||
typedef struct _EFI_OPEN_PROTOCOL_INFORMATION_ENTRY
|
||||
{
|
||||
@ -387,4 +407,437 @@ typedef struct _EFI_SYSTEM_TABLE
|
||||
PEFI_CONFIGURATION_TABLE ConfigurationTable;
|
||||
} EFI_SYSTEM_TABLE, *PEFI_SYSTEM_TABLE;
|
||||
|
||||
/* EFI IPv4 network protocol */
|
||||
typedef struct _EFI_IPv4_ADDRESS
|
||||
{
|
||||
UINT8 Addr[4];
|
||||
} EFI_IPv4_ADDRESS, *PEFI_IPv4_ADDRESS;
|
||||
|
||||
/* EFI IPv6 network protocol */
|
||||
typedef struct _EFI_IPv6_ADDRESS
|
||||
{
|
||||
UINT8 Addr[16];
|
||||
} EFI_IPv6_ADDRESS, *PEFI_IPv6_ADDRESS;
|
||||
|
||||
/* EFI MAC address definition */
|
||||
typedef struct _EFI_MAC_ADDRESS
|
||||
{
|
||||
UINT8 Addr[32];
|
||||
} EFI_MAC_ADDRESS, *PEFI_MAC_ADDRESS;
|
||||
|
||||
/* EFI network configuration data structure */
|
||||
typedef struct _EFI_MANAGED_NETWORK_CONFIG_DATA
|
||||
{
|
||||
UINT32 ReceivedQueueTimeoutValue;
|
||||
UINT32 TransmitQueueTimeoutValue;
|
||||
UINT16 ProtocolTypeFilter;
|
||||
BOOLEAN EnableUnicastReceive;
|
||||
BOOLEAN EnableMulticastReceive;
|
||||
BOOLEAN EnableBroadcastReceive;
|
||||
BOOLEAN EnablePromiscuousReceive;
|
||||
BOOLEAN FlushQueuesOnReset;
|
||||
BOOLEAN EnableReceiveTimestamps;
|
||||
BOOLEAN DisableBackgroundPolling;
|
||||
} EFI_MANAGED_NETWORK_CONFIG_DATA, *PEFI_MANAGED_NETWORK_CONFIG_DATA;
|
||||
|
||||
/* Describes the location of the device the handle is for */
|
||||
typedef struct _EFI_DEVICE_PATH_PROTOCOL
|
||||
{
|
||||
UINT8 Type;
|
||||
UINT8 SubType;
|
||||
UINT8 Length[2];
|
||||
} EFI_DEVICE_PATH_PROTOCOL, *PEFI_DEVICE_PATH_PROTOCOL;
|
||||
|
||||
/* PCI device path node */
|
||||
typedef struct _EFI_PCI_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 Function;
|
||||
UINT8 Device;
|
||||
} EFI_PCI_DEVICE_PATH, *PEFI_PCI_DEVICE_PATH;
|
||||
|
||||
/* PCCARD device path node */
|
||||
typedef struct _EFI_PCCARD_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 FunctionNumber;
|
||||
} EFI_PCCARD_DEVICE_PATH, *PEFI_PCCARD_DEVICE_PATH;
|
||||
|
||||
/* MemMap device path node */
|
||||
typedef struct _EFI_MEMMAP_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 MemoryType;
|
||||
EFI_PHYSICAL_ADDRESS StartingAddress;
|
||||
EFI_PHYSICAL_ADDRESS EndingAddress;
|
||||
} EFI_MEMMAP_DEVICE_PATH, *PEFI_MEMMAP_DEVICE_PATH;
|
||||
|
||||
/* Vendor device path node */
|
||||
typedef struct _EFI_VENDOR_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_GUID Guid;
|
||||
} EFI_VENDOR_DEVICE_PATH, *PEFI_VENDOR_DEVICE_PATH;
|
||||
|
||||
/* Unknown Device Vendor device path node */
|
||||
typedef struct _EFI_UKNOWN_DEVICE_VENDOR_DEVICE_PATH
|
||||
{
|
||||
EFI_VENDOR_DEVICE_PATH DevicePath;
|
||||
UINT8 LegacyDriveLetter;
|
||||
} EFI_UNKNOWN_DEVICE_VENDOR_DEVICE_PATH, *PEFI_UNKNOWN_DEVICE_VENDOR_DEVICE_PATH;
|
||||
|
||||
/* Controller device path node */
|
||||
typedef struct _EFI_CONTROLLER_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 Controller;
|
||||
} EFI_CONTROLLER_DEVICE_PATH, *PEFI_CONTROLLER_DEVICE_PATH;
|
||||
|
||||
/* ACPI device path node */
|
||||
typedef struct _EFI_ACPI_HID_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 HID;
|
||||
UINT32 UID;
|
||||
} EFI_ACPI_HID_DEVICE_PATH, *PEFI_ACPI_HID_DEVICE_PATH;
|
||||
|
||||
/* Expanded ACPI device path node */
|
||||
typedef struct _EFI_EXPANDED_ACPI_HID_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 HID;
|
||||
UINT32 UID;
|
||||
UINT32 CID;
|
||||
UINT8 HidStr[1];
|
||||
} EFI_EXPANDED_ACPI_HID_DEVICE_PATH, *PEFI_EXPANDED_ACPI_HID_DEVICE_PATH;
|
||||
|
||||
/* ACPI ADR device path node */
|
||||
typedef struct _EFI_ACPI_ADR_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 ADR;
|
||||
} EFI_ACPI_ADR_DEVICE_PATH, *PEFI_ACPI_ADR_DEVICE_PATH;
|
||||
|
||||
/* ATAPI device path node */
|
||||
typedef struct _EFI_ATAPI_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 PrimarySecondary;
|
||||
UINT8 SlaveMaster;
|
||||
UINT16 Lun;
|
||||
} EFI_ATAPI_DEVICE_PATH, *PEFI_ATAPI_DEVICE_PATH;
|
||||
|
||||
/* SCSI device path node */
|
||||
typedef struct _EFI_SCSI_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 Pun;
|
||||
UINT16 Lun;
|
||||
} EFI_SCSI_DEVICE_PATH, *PEFI_SCSI_DEVICE_PATH;
|
||||
|
||||
/* Fibre Channel device path node */
|
||||
typedef struct _EFI_FIBRECHANNEL_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 Reserved;
|
||||
UINT64 WWN;
|
||||
UINT64 Lun;
|
||||
} EFI_FIBRECHANNEL_DEVICE_PATH, *PEFI_FIBRECHANNEL_DEVICE_PATH;
|
||||
|
||||
/* Fibre Channerl EX subtype device path node */
|
||||
typedef struct _EFI_FIBRECHANNELEX_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header ;
|
||||
UINT32 Reserved;
|
||||
UINT8 WWN[8];
|
||||
UINT8 Lun[8];
|
||||
} EFI_FIBRECHANNELEX_DEVICE_PATH, *PEFI_FIBRECHANNELEX_DEVICE_PATH;
|
||||
|
||||
/* 1394 device path node */
|
||||
typedef struct _EFI_1394_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 Reserved;
|
||||
UINT64 Guid;
|
||||
} EFI_1394_DEVICE_PATH, *PEFI_1394_DEVICE_PATH;
|
||||
|
||||
/* USB device path node */
|
||||
typedef struct _EFI_USB_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 Port;
|
||||
UINT8 Endpoint;
|
||||
} EFI_USB_DEVICE_PATH, *PEFI_USB_DEVICE_PATH;
|
||||
|
||||
/* USB WWID device path node */
|
||||
typedef struct _EFI_USB_WWID_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 InterfaceNumber;
|
||||
UINT16 VendorId;
|
||||
UINT16 ProductId;
|
||||
UINT16 SerialNumber[1];
|
||||
} EFI_USB_WWID_DEVICE_PATH, *PEFI_USB_WWID_DEVICE_PATH;
|
||||
|
||||
/* USB Class device path node */
|
||||
typedef struct _EFI_USB_CLASS_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 VendorId;
|
||||
UINT16 ProductId;
|
||||
UINT8 DeviceClass;
|
||||
UINT8 DeviceSubclass;
|
||||
UINT8 DeviceProtocol;
|
||||
} EFI_USB_CLASS_DEVICE_PATH, *PEFI_USB_CLASS_DEVICE_PATH;
|
||||
|
||||
/* SATA device path node */
|
||||
typedef struct _EFI_SATA_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 HBAPortNumber;
|
||||
UINT16 PortMultiplierPortNumber;
|
||||
UINT16 Lun;
|
||||
} EFI_SATA_DEVICE_PATH, *PEFI_SATA_DEVICE_PATH;
|
||||
|
||||
/* Device Logical Unit device path node */
|
||||
typedef struct _EFI_DEVICE_LOGICAL_UNIT_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 Lun;
|
||||
} EFI_DEVICE_LOGICAL_UNIT_DEVICE_PATH, *PEFI_DEVICE_LOGICAL_UNIT_DEVICE_PATH;
|
||||
|
||||
/* I2O device path node */
|
||||
typedef struct _EFI_I2O_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 Tid;
|
||||
} EFI_I2O_DEVICE_PATH, *PEFI_I2O_DEVICE_PATH;
|
||||
|
||||
/* MAC Address device path node */
|
||||
typedef struct _EFI_MAC_ADDR_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_MAC_ADDRESS MacAddress;
|
||||
UINT8 IfType;
|
||||
} EFI_MAC_ADDR_DEVICE_PATH, *PEFI_MAC_ADDR_DEVICE_PATH;
|
||||
|
||||
/* IPv4 device path node */
|
||||
typedef struct _EFI_IPv4_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_IPv4_ADDRESS LocalIpAddress;
|
||||
EFI_IPv4_ADDRESS RemoteIpAddress;
|
||||
UINT16 LocalPort;
|
||||
UINT16 RemotePort;
|
||||
UINT16 Protocol;
|
||||
BOOLEAN StaticIpAddress;
|
||||
EFI_IPv4_ADDRESS GatewayIpAddress ;
|
||||
EFI_IPv4_ADDRESS SubnetMask ;
|
||||
} EFI_IPv4_DEVICE_PATH, *PEFI_IPv4_DEVICE_PATH;
|
||||
|
||||
/* IPv6 device path node */
|
||||
typedef struct _EFI_IPv6_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_IPv6_ADDRESS LocalIpAddress;
|
||||
EFI_IPv6_ADDRESS RemoteIpAddress;
|
||||
UINT16 LocalPort;
|
||||
UINT16 RemotePort;
|
||||
UINT16 Protocol;
|
||||
BOOLEAN IPAddressOrigin ;
|
||||
UINT8 PrefixLength ;
|
||||
EFI_IPv6_ADDRESS GatewayIpAddress ;
|
||||
} EFI_IPv6_DEVICE_PATH, *PEFI_IPv6_DEVICE_PATH;
|
||||
|
||||
/* Uniform Resource Identifiers SubType device path node */
|
||||
typedef struct _EFI_URI_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 Uri[1];
|
||||
} EFI_URI_DEVICE_PATH, *PEFI_URI_DEVICE_PATH;
|
||||
|
||||
/* VLAN device path node */
|
||||
typedef struct _EFI_VLAN_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 VlanId;
|
||||
} EFI_VLAN_DEVICE_PATH, *PEFI_VLAN_DEVICE_PATH;
|
||||
|
||||
/* InfiniBand device path node */
|
||||
typedef struct _EFI_INFINIBAND_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 ResourceFlags;
|
||||
UINT8 PortGid[16];
|
||||
UINT64 ServiceId;
|
||||
UINT64 TargetPortId;
|
||||
UINT64 DeviceId;
|
||||
} EFI_INFINIBAND_DEVICE_PATH, *PEFI_INFINIBAND_DEVICE_PATH;
|
||||
|
||||
/* UART device path node */
|
||||
typedef struct _EFI_UART_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 Reserved;
|
||||
UINT64 BaudRate;
|
||||
UINT8 DataBits;
|
||||
UINT8 Parity;
|
||||
UINT8 StopBits;
|
||||
} EFI_UART_DEVICE_PATH, *PEFI_UART_DEVICE_PATH;
|
||||
|
||||
/* Hard Drive device path node */
|
||||
typedef struct _EFI_HARDDRIVE_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 PartitionNumber;
|
||||
UINT64 PartitionStart;
|
||||
UINT64 PartitionSize;
|
||||
UINT8 Signature[16];
|
||||
UINT8 MBRType;
|
||||
UINT8 SignatureType;
|
||||
} EFI_HARDDRIVE_DEVICE_PATH, *PEFI_HARDDRIVE_DEVICE_PATH;
|
||||
|
||||
/* CDROM device path node */
|
||||
typedef struct _EFI_CDROM_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 BootEntry;
|
||||
UINT64 PartitionStart;
|
||||
UINT64 PartitionSize;
|
||||
} EFI_CDROM_DEVICE_PATH, *PEFI_CDROM_DEVICE_PATH;
|
||||
|
||||
/* File Path device path node */
|
||||
typedef struct _EFI_FILEPATH_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 PathName[1];
|
||||
} EFI_FILEPATH_DEVICE_PATH, *PEFI_FILEPATH_DEVICE_PATH;
|
||||
|
||||
/* Media Protocol device path node */
|
||||
typedef struct _EFI_MEDIA_PROTOCOL_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_GUID Protocol;
|
||||
} EFI_MEDIA_PROTOCOL_DEVICE_PATH, *PEFI_MEDIA_PROTOCOL_DEVICE_PATH;
|
||||
|
||||
/* Media Firmware File SubType device path node */
|
||||
typedef struct _EFI_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_GUID FvFileName;
|
||||
} EFI_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH, *PEFI_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;
|
||||
|
||||
/* Media Firmware Volume SubType device path node */
|
||||
typedef struct _EFI_MEDIA_FW_VOL_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
EFI_GUID FvName;
|
||||
} EFI_MEDIA_FW_VOL_DEVICE_PATH, *PEFI_MEDIA_FW_VOL_DEVICE_PATH;
|
||||
|
||||
/* Media relative offset range device path node */
|
||||
typedef struct _EFI_MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 Reserved;
|
||||
UINT64 StartingOffset;
|
||||
UINT64 EndingOffset;
|
||||
} EFI_MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH, *PEFI_MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH;
|
||||
|
||||
/* BIOS Boot Specification (BBS) device path node */
|
||||
typedef struct _EFI_BBS_BBS_DEVICE_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT16 DeviceType;
|
||||
UINT16 StatusFlag;
|
||||
UINT8 String[1];
|
||||
} EFI_BBS_BBS_DEVICE_PATH, *PEFI_BBS_BBS_DEVICE_PATH;
|
||||
|
||||
/* EFI device path nodes union */
|
||||
typedef union _EFI_DEV_PATH
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL DevPath;
|
||||
EFI_PCI_DEVICE_PATH Pci;
|
||||
EFI_PCCARD_DEVICE_PATH PcCard;
|
||||
EFI_MEMMAP_DEVICE_PATH MemMap;
|
||||
EFI_VENDOR_DEVICE_PATH Vendor;
|
||||
EFI_UNKNOWN_DEVICE_VENDOR_DEVICE_PATH UnknownVendor;
|
||||
EFI_CONTROLLER_DEVICE_PATH Controller;
|
||||
EFI_ACPI_HID_DEVICE_PATH Acpi;
|
||||
EFI_ATAPI_DEVICE_PATH Atapi;
|
||||
EFI_SCSI_DEVICE_PATH Scsi;
|
||||
EFI_FIBRECHANNEL_DEVICE_PATH FibreChannel;
|
||||
EFI_1394_DEVICE_PATH F1394;
|
||||
EFI_USB_DEVICE_PATH Usb;
|
||||
EFI_USB_CLASS_DEVICE_PATH UsbClass;
|
||||
EFI_I2O_DEVICE_PATH I2O;
|
||||
EFI_MAC_ADDR_DEVICE_PATH MacAddr;
|
||||
EFI_IPv4_DEVICE_PATH Ipv4;
|
||||
EFI_IPv6_DEVICE_PATH Ipv6;
|
||||
EFI_URI_DEVICE_PATH Uri;
|
||||
EFI_INFINIBAND_DEVICE_PATH InfiniBand;
|
||||
EFI_UART_DEVICE_PATH Uart;
|
||||
EFI_HARDDRIVE_DEVICE_PATH HardDrive;
|
||||
EFI_CDROM_DEVICE_PATH CD;
|
||||
EFI_FILEPATH_DEVICE_PATH FilePath;
|
||||
EFI_MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol;
|
||||
EFI_BBS_BBS_DEVICE_PATH Bbs;
|
||||
} EFI_DEV_PATH, *PEFI_DEV_PATH;
|
||||
|
||||
/* EFI device path node pointers union */
|
||||
typedef union _EFI_DEV_PATH_PTR
|
||||
{
|
||||
PEFI_DEVICE_PATH_PROTOCOL DevPath;
|
||||
PEFI_PCI_DEVICE_PATH Pci;
|
||||
PEFI_PCCARD_DEVICE_PATH PcCard;
|
||||
PEFI_MEMMAP_DEVICE_PATH MemMap;
|
||||
PEFI_VENDOR_DEVICE_PATH Vendor;
|
||||
PEFI_UNKNOWN_DEVICE_VENDOR_DEVICE_PATH UnknownVendor;
|
||||
PEFI_CONTROLLER_DEVICE_PATH Controller;
|
||||
PEFI_ACPI_HID_DEVICE_PATH Acpi;
|
||||
PEFI_ATAPI_DEVICE_PATH Atapi;
|
||||
PEFI_SCSI_DEVICE_PATH Scsi;
|
||||
PEFI_FIBRECHANNEL_DEVICE_PATH FibreChannel;
|
||||
PEFI_1394_DEVICE_PATH F1394;
|
||||
PEFI_USB_DEVICE_PATH Usb;
|
||||
PEFI_USB_CLASS_DEVICE_PATH UsbClass;
|
||||
PEFI_I2O_DEVICE_PATH I2O;
|
||||
PEFI_MAC_ADDR_DEVICE_PATH MacAddr;
|
||||
PEFI_IPv4_DEVICE_PATH Ipv4;
|
||||
PEFI_IPv6_DEVICE_PATH Ipv6;
|
||||
PEFI_URI_DEVICE_PATH Uri;
|
||||
PEFI_INFINIBAND_DEVICE_PATH InfiniBand;
|
||||
PEFI_UART_DEVICE_PATH Uart;
|
||||
PEFI_HARDDRIVE_DEVICE_PATH HardDrive;
|
||||
PEFI_FILEPATH_DEVICE_PATH FilePath;
|
||||
PEFI_MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol;
|
||||
PEFI_CDROM_DEVICE_PATH CD;
|
||||
PEFI_BBS_BBS_DEVICE_PATH Bbs;
|
||||
} EFI_DEV_PATH_PTR, *PEFI_DEV_PATH_PTR;
|
||||
|
||||
/* EFI device path to text protocol */
|
||||
typedef struct _EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
|
||||
{
|
||||
PEFI_DEVICE_PATH_TO_TEXT_NODE ConvertDeviceNodeToText;
|
||||
PEFI_DEVICE_PATH_TO_TEXT_PATH ConvertDevicePathToText;
|
||||
} EFI_DEVICE_PATH_TO_TEXT_PROTOCOL, *PEFI_DEVICE_PATH_TO_TEXT_PROTOCOL;
|
||||
|
||||
/* EFI device path from text protocol */
|
||||
typedef struct _EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL
|
||||
{
|
||||
PEFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode;
|
||||
PEFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath;
|
||||
} EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL, *PEFI_DEVICE_PATH_FROM_TEXT_PROTOCOL;
|
||||
|
||||
/* EFI device path utility protocol */
|
||||
typedef struct _EFI_DEVICE_PATH_UTILITIES_PROTOCOL
|
||||
{
|
||||
PEFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE GetDevicePathSize;
|
||||
PEFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH DuplicateDevicePath;
|
||||
PEFI_DEVICE_PATH_UTILS_APPEND_PATH AppendDevicePath;
|
||||
PEFI_DEVICE_PATH_UTILS_APPEND_NODE AppendDeviceNode;
|
||||
PEFI_DEVICE_PATH_UTILS_APPEND_INSTANCE AppendDevicePathInstance;
|
||||
PEFI_DEVICE_PATH_UTILS_GET_NEXT_INSTANCE GetNextDevicePathInstance;
|
||||
PEFI_DEVICE_PATH_UTILS_IS_MULTI_INSTANCE IsDevicePathMultiInstance;
|
||||
PEFI_DEVICE_PATH_UTILS_CREATE_NODE CreateDeviceNode;
|
||||
} EFI_DEVICE_PATH_UTILITIES_PROTOCOL, *PEFI_DEVICE_PATH_UTILITIES_PROTOCOL;
|
||||
|
||||
#endif /* __XTDK_XTUEFI_H */
|
||||
|
Loading…
Reference in New Issue
Block a user