177943Sdfr/* $FreeBSD$ */ 277943Sdfr#ifndef _DEVPATH_H 377943Sdfr#define _DEVPATH_H 477943Sdfr 577943Sdfr/*++ 677943Sdfr 7163898SmarcelCopyright (c) 1999 - 2002 Intel Corporation. All rights reserved 8163898SmarcelThis software and associated documentation (if any) is furnished 9163898Smarcelunder a license and may only be used or copied in accordance 10163898Smarcelwith the terms of the license. Except as permitted by such 11163898Smarcellicense, no part of this software or documentation may be 12163898Smarcelreproduced, stored in a retrieval system, or transmitted in any 13163898Smarcelform or by any means without the express written consent of 14163898SmarcelIntel Corporation. 1577943Sdfr 1677943SdfrModule Name: 1777943Sdfr 1877943Sdfr devpath.h 1977943Sdfr 2077943SdfrAbstract: 2177943Sdfr 2277943Sdfr Defines for parsing the EFI Device Path structures 2377943Sdfr 2477943Sdfr 2577943Sdfr 2677943SdfrRevision History 2777943Sdfr 2877943Sdfr--*/ 2977943Sdfr 30163898Smarcel// 31163898Smarcel// Device Path structures - Section C 32163898Smarcel// 3377943Sdfr 3477943Sdfrtypedef struct _EFI_DEVICE_PATH { 3577943Sdfr UINT8 Type; 3677943Sdfr UINT8 SubType; 3777943Sdfr UINT8 Length[2]; 3877943Sdfr} EFI_DEVICE_PATH; 3977943Sdfr 4077943Sdfr#define EFI_DP_TYPE_MASK 0x7F 4177943Sdfr#define EFI_DP_TYPE_UNPACKED 0x80 4277943Sdfr 43163898Smarcel//#define END_DEVICE_PATH_TYPE 0xff 4477943Sdfr#define END_DEVICE_PATH_TYPE 0x7f 45163898Smarcel//#define END_DEVICE_PATH_TYPE_UNPACKED 0x7f 4677943Sdfr 4777943Sdfr#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xff 4877943Sdfr#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01 4977943Sdfr#define END_DEVICE_PATH_LENGTH (sizeof(EFI_DEVICE_PATH)) 5077943Sdfr 5177943Sdfr 5277943Sdfr#define DP_IS_END_TYPE(a) 5377943Sdfr#define DP_IS_END_SUBTYPE(a) ( ((a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE ) 5477943Sdfr 5577943Sdfr#define DevicePathType(a) ( ((a)->Type) & EFI_DP_TYPE_MASK ) 5677943Sdfr#define DevicePathSubType(a) ( (a)->SubType ) 5777943Sdfr#define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] << 8) ) 5877943Sdfr#define NextDevicePathNode(a) ( (EFI_DEVICE_PATH *) ( ((UINT8 *) (a)) + DevicePathNodeLength(a))) 59163898Smarcel//#define IsDevicePathEndType(a) ( DevicePathType(a) == END_DEVICE_PATH_TYPE_UNPACKED ) 6077943Sdfr#define IsDevicePathEndType(a) ( DevicePathType(a) == END_DEVICE_PATH_TYPE ) 6177943Sdfr#define IsDevicePathEndSubType(a) ( (a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE ) 6277943Sdfr#define IsDevicePathEnd(a) ( IsDevicePathEndType(a) && IsDevicePathEndSubType(a) ) 6377943Sdfr#define IsDevicePathUnpacked(a) ( (a)->Type & EFI_DP_TYPE_UNPACKED ) 6477943Sdfr 6577943Sdfr 6677943Sdfr#define SetDevicePathNodeLength(a,l) { \ 6777943Sdfr (a)->Length[0] = (UINT8) (l); \ 6877943Sdfr (a)->Length[1] = (UINT8) ((l) >> 8); \ 6977943Sdfr } 7077943Sdfr 7177943Sdfr#define SetDevicePathEndNode(a) { \ 7277943Sdfr (a)->Type = END_DEVICE_PATH_TYPE; \ 7377943Sdfr (a)->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE; \ 7477943Sdfr (a)->Length[0] = sizeof(EFI_DEVICE_PATH); \ 7577943Sdfr (a)->Length[1] = 0; \ 7677943Sdfr } 7777943Sdfr 7877943Sdfr 7977943Sdfr 8077943Sdfr/* 8177943Sdfr * 8277943Sdfr */ 8377943Sdfr#define HARDWARE_DEVICE_PATH 0x01 8477943Sdfr 8577943Sdfr#define HW_PCI_DP 0x01 8677943Sdfrtypedef struct _PCI_DEVICE_PATH { 8777943Sdfr EFI_DEVICE_PATH Header; 8877943Sdfr UINT8 Function; 8977943Sdfr UINT8 Device; 9077943Sdfr} PCI_DEVICE_PATH; 9177943Sdfr 9277943Sdfr#define HW_PCCARD_DP 0x02 9377943Sdfrtypedef struct _PCCARD_DEVICE_PATH { 9477943Sdfr EFI_DEVICE_PATH Header; 95163898Smarcel UINT8 FunctionNumber; 9677943Sdfr} PCCARD_DEVICE_PATH; 9777943Sdfr 9877943Sdfr#define HW_MEMMAP_DP 0x03 9977943Sdfrtypedef struct _MEMMAP_DEVICE_PATH { 10077943Sdfr EFI_DEVICE_PATH Header; 10177943Sdfr UINT32 MemoryType; 10277943Sdfr EFI_PHYSICAL_ADDRESS StartingAddress; 10377943Sdfr EFI_PHYSICAL_ADDRESS EndingAddress; 10477943Sdfr} MEMMAP_DEVICE_PATH; 10577943Sdfr 10677943Sdfr#define HW_VENDOR_DP 0x04 10777943Sdfrtypedef struct _VENDOR_DEVICE_PATH { 10877943Sdfr EFI_DEVICE_PATH Header; 10977943Sdfr EFI_GUID Guid; 11077943Sdfr} VENDOR_DEVICE_PATH; 11177943Sdfr 11277943Sdfr#define UNKNOWN_DEVICE_GUID \ 11377943Sdfr { 0xcf31fac5, 0xc24e, 0x11d2, 0x85, 0xf3, 0x0, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b } 11477943Sdfr 11577943Sdfrtypedef struct _UKNOWN_DEVICE_VENDOR_DP { 11677943Sdfr VENDOR_DEVICE_PATH DevicePath; 11777943Sdfr UINT8 LegacyDriveLetter; 11877943Sdfr} UNKNOWN_DEVICE_VENDOR_DEVICE_PATH; 11977943Sdfr 12077943Sdfr#define HW_CONTROLLER_DP 0x05 12177943Sdfrtypedef struct _CONTROLLER_DEVICE_PATH { 12277943Sdfr EFI_DEVICE_PATH Header; 12377943Sdfr UINT32 Controller; 12477943Sdfr} CONTROLLER_DEVICE_PATH; 12577943Sdfr 12677943Sdfr/* 12777943Sdfr * 12877943Sdfr */ 12977943Sdfr#define ACPI_DEVICE_PATH 0x02 13077943Sdfr 13177943Sdfr#define ACPI_DP 0x01 13277943Sdfrtypedef struct _ACPI_HID_DEVICE_PATH { 13377943Sdfr EFI_DEVICE_PATH Header; 13477943Sdfr UINT32 HID; 13577943Sdfr UINT32 UID; 13677943Sdfr} ACPI_HID_DEVICE_PATH; 13777943Sdfr 138163898Smarcel#define ACPI_EXTENDED_DP 0x02 139163898Smarceltypedef struct _ACPI_EXTENDED_HID_DEVICE_PATH { 140163898Smarcel EFI_DEVICE_PATH Header; 141163898Smarcel UINT32 HID; 142163898Smarcel UINT32 UID; 143163898Smarcel UINT32 CID; 144163898Smarcel} ACPI_EXTENDED_HID_DEVICE_PATH; 145163898Smarcel 146163898Smarcel// 147163898Smarcel// EISA ID Macro 148163898Smarcel// EISA ID Definition 32-bits 149163898Smarcel// bits[15:0] - three character compressed ASCII EISA ID. 150163898Smarcel// bits[31:16] - binary number 151163898Smarcel// Compressed ASCII is 5 bits per character 0b00001 = 'A' 0b11010 = 'Z' 152163898Smarcel// 15377943Sdfr#define PNP_EISA_ID_CONST 0x41d0 15477943Sdfr#define EISA_ID(_Name, _Num) ((UINT32) ((_Name) | (_Num) << 16)) 15577943Sdfr#define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId))) 156163898Smarcel#define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId))) 15777943Sdfr 15877943Sdfr#define PNP_EISA_ID_MASK 0xffff 15977943Sdfr#define EISA_ID_TO_NUM(_Id) ((_Id) >> 16) 16077943Sdfr/* 16177943Sdfr * 16277943Sdfr */ 16377943Sdfr#define MESSAGING_DEVICE_PATH 0x03 16477943Sdfr 16577943Sdfr#define MSG_ATAPI_DP 0x01 16677943Sdfrtypedef struct _ATAPI_DEVICE_PATH { 16777943Sdfr EFI_DEVICE_PATH Header; 16877943Sdfr UINT8 PrimarySecondary; 16977943Sdfr UINT8 SlaveMaster; 17077943Sdfr UINT16 Lun; 17177943Sdfr} ATAPI_DEVICE_PATH; 17277943Sdfr 17377943Sdfr#define MSG_SCSI_DP 0x02 17477943Sdfrtypedef struct _SCSI_DEVICE_PATH { 17577943Sdfr EFI_DEVICE_PATH Header; 17677943Sdfr UINT16 Pun; 17777943Sdfr UINT16 Lun; 17877943Sdfr} SCSI_DEVICE_PATH; 17977943Sdfr 18077943Sdfr#define MSG_FIBRECHANNEL_DP 0x03 18177943Sdfrtypedef struct _FIBRECHANNEL_DEVICE_PATH { 18277943Sdfr EFI_DEVICE_PATH Header; 18377943Sdfr UINT32 Reserved; 18477943Sdfr UINT64 WWN; 18577943Sdfr UINT64 Lun; 18677943Sdfr} FIBRECHANNEL_DEVICE_PATH; 18777943Sdfr 18877943Sdfr#define MSG_1394_DP 0x04 18977943Sdfrtypedef struct _F1394_DEVICE_PATH { 19077943Sdfr EFI_DEVICE_PATH Header; 19177943Sdfr UINT32 Reserved; 19277943Sdfr UINT64 Guid; 19377943Sdfr} F1394_DEVICE_PATH; 19477943Sdfr 19577943Sdfr#define MSG_USB_DP 0x05 19677943Sdfrtypedef struct _USB_DEVICE_PATH { 197163898Smarcel EFI_DEVICE_PATH Header; 198163898Smarcel UINT8 ParentPortNumber; 199163898Smarcel UINT8 InterfaceNumber; 20077943Sdfr} USB_DEVICE_PATH; 20177943Sdfr 20277943Sdfr#define MSG_USB_CLASS_DP 0x0F 20377943Sdfrtypedef struct _USB_CLASS_DEVICE_PATH { 20477943Sdfr EFI_DEVICE_PATH Header; 20577943Sdfr UINT16 VendorId; 20677943Sdfr UINT16 ProductId; 20777943Sdfr UINT8 DeviceClass; 208163898Smarcel UINT8 DeviceSubClass; 20977943Sdfr UINT8 DeviceProtocol; 21077943Sdfr} USB_CLASS_DEVICE_PATH; 21177943Sdfr 21277943Sdfr#define MSG_I2O_DP 0x06 21377943Sdfrtypedef struct _I2O_DEVICE_PATH { 21477943Sdfr EFI_DEVICE_PATH Header; 21577943Sdfr UINT32 Tid; 21677943Sdfr} I2O_DEVICE_PATH; 21777943Sdfr 21877943Sdfr#define MSG_MAC_ADDR_DP 0x0b 21977943Sdfrtypedef struct _MAC_ADDR_DEVICE_PATH { 22077943Sdfr EFI_DEVICE_PATH Header; 22177943Sdfr EFI_MAC_ADDRESS MacAddress; 22277943Sdfr UINT8 IfType; 22377943Sdfr} MAC_ADDR_DEVICE_PATH; 22477943Sdfr 22577943Sdfr#define MSG_IPv4_DP 0x0c 22677943Sdfrtypedef struct _IPv4_DEVICE_PATH { 22777943Sdfr EFI_DEVICE_PATH Header; 22877943Sdfr EFI_IPv4_ADDRESS LocalIpAddress; 22977943Sdfr EFI_IPv4_ADDRESS RemoteIpAddress; 23077943Sdfr UINT16 LocalPort; 23177943Sdfr UINT16 RemotePort; 23277943Sdfr UINT16 Protocol; 23377943Sdfr BOOLEAN StaticIpAddress; 23477943Sdfr} IPv4_DEVICE_PATH; 23577943Sdfr 23677943Sdfr#define MSG_IPv6_DP 0x0d 23777943Sdfrtypedef struct _IPv6_DEVICE_PATH { 23877943Sdfr EFI_DEVICE_PATH Header; 23977943Sdfr EFI_IPv6_ADDRESS LocalIpAddress; 24077943Sdfr EFI_IPv6_ADDRESS RemoteIpAddress; 24177943Sdfr UINT16 LocalPort; 24277943Sdfr UINT16 RemotePort; 24377943Sdfr UINT16 Protocol; 24477943Sdfr BOOLEAN StaticIpAddress; 24577943Sdfr} IPv6_DEVICE_PATH; 24677943Sdfr 24777943Sdfr#define MSG_INFINIBAND_DP 0x09 24877943Sdfrtypedef struct _INFINIBAND_DEVICE_PATH { 249163898Smarcel EFI_DEVICE_PATH Header; 250163898Smarcel UINT32 ResourceFlags; 251163898Smarcel UINT8 PortGid[16]; 252163898Smarcel UINT64 ServiceId; 253163898Smarcel UINT64 TargetPortId; 254163898Smarcel UINT64 DeviceId; 25577943Sdfr} INFINIBAND_DEVICE_PATH; 25677943Sdfr 257163898Smarcel#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01 258163898Smarcel#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02 259163898Smarcel#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04 260163898Smarcel#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08 261163898Smarcel#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10 262163898Smarcel 26377943Sdfr#define MSG_UART_DP 0x0e 26477943Sdfrtypedef struct _UART_DEVICE_PATH { 26577943Sdfr EFI_DEVICE_PATH Header; 26677943Sdfr UINT32 Reserved; 26777943Sdfr UINT64 BaudRate; 26877943Sdfr UINT8 DataBits; 26977943Sdfr UINT8 Parity; 27077943Sdfr UINT8 StopBits; 27177943Sdfr} UART_DEVICE_PATH; 27277943Sdfr 27377943Sdfr#define MSG_VENDOR_DP 0x0A 27477943Sdfr/* Use VENDOR_DEVICE_PATH struct */ 27577943Sdfr 27677943Sdfr#define DEVICE_PATH_MESSAGING_PC_ANSI \ 27777943Sdfr { 0xe0c14753, 0xf9be, 0x11d2, 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } 27877943Sdfr 27977943Sdfr#define DEVICE_PATH_MESSAGING_VT_100 \ 28077943Sdfr { 0xdfa66065, 0xb419, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } 28177943Sdfr 282163898Smarcel#define DEVICE_PATH_MESSAGING_VT_100_PLUS \ 283163898Smarcel { 0x7baec70b, 0x57e0, 0x4c76, 0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43 } 284163898Smarcel 285163898Smarcel#define DEVICE_PATH_MESSAGING_VT_UTF8 \ 286163898Smarcel { 0xad15a0d6, 0x8bec, 0x4acf, 0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88 } 28777943Sdfr 28877943Sdfr 28977943Sdfr#define MEDIA_DEVICE_PATH 0x04 29077943Sdfr 29177943Sdfr#define MEDIA_HARDDRIVE_DP 0x01 29277943Sdfrtypedef struct _HARDDRIVE_DEVICE_PATH { 29377943Sdfr EFI_DEVICE_PATH Header; 29477943Sdfr UINT32 PartitionNumber; 29577943Sdfr UINT64 PartitionStart; 29677943Sdfr UINT64 PartitionSize; 29777943Sdfr UINT8 Signature[16]; 29877943Sdfr UINT8 MBRType; 29977943Sdfr UINT8 SignatureType; 30077943Sdfr} HARDDRIVE_DEVICE_PATH; 30177943Sdfr 30277943Sdfr#define MBR_TYPE_PCAT 0x01 30377943Sdfr#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02 30477943Sdfr 30577943Sdfr#define SIGNATURE_TYPE_MBR 0x01 30677943Sdfr#define SIGNATURE_TYPE_GUID 0x02 30777943Sdfr 30877943Sdfr#define MEDIA_CDROM_DP 0x02 30977943Sdfrtypedef struct _CDROM_DEVICE_PATH { 31077943Sdfr EFI_DEVICE_PATH Header; 31177943Sdfr UINT32 BootEntry; 31277943Sdfr UINT64 PartitionStart; 31377943Sdfr UINT64 PartitionSize; 31477943Sdfr} CDROM_DEVICE_PATH; 31577943Sdfr 31677943Sdfr#define MEDIA_VENDOR_DP 0x03 31777943Sdfr/* Use VENDOR_DEVICE_PATH struct */ 31877943Sdfr 31977943Sdfr#define MEDIA_FILEPATH_DP 0x04 32077943Sdfrtypedef struct _FILEPATH_DEVICE_PATH { 32177943Sdfr EFI_DEVICE_PATH Header; 32277943Sdfr CHAR16 PathName[1]; 32377943Sdfr} FILEPATH_DEVICE_PATH; 32477943Sdfr 32577943Sdfr#define SIZE_OF_FILEPATH_DEVICE_PATH EFI_FIELD_OFFSET(FILEPATH_DEVICE_PATH,PathName) 32677943Sdfr 32777943Sdfr#define MEDIA_PROTOCOL_DP 0x05 32877943Sdfrtypedef struct _MEDIA_PROTOCOL_DEVICE_PATH { 32977943Sdfr EFI_DEVICE_PATH Header; 33077943Sdfr EFI_GUID Protocol; 33177943Sdfr} MEDIA_PROTOCOL_DEVICE_PATH; 33277943Sdfr 33377943Sdfr 33477943Sdfr#define BBS_DEVICE_PATH 0x05 33577943Sdfr#define BBS_BBS_DP 0x01 33677943Sdfrtypedef struct _BBS_BBS_DEVICE_PATH { 33777943Sdfr EFI_DEVICE_PATH Header; 33877943Sdfr UINT16 DeviceType; 33977943Sdfr UINT16 StatusFlag; 34077943Sdfr CHAR8 String[1]; 34177943Sdfr} BBS_BBS_DEVICE_PATH; 34277943Sdfr 34377943Sdfr/* DeviceType definitions - from BBS specification */ 34477943Sdfr#define BBS_TYPE_FLOPPY 0x01 34577943Sdfr#define BBS_TYPE_HARDDRIVE 0x02 34677943Sdfr#define BBS_TYPE_CDROM 0x03 34777943Sdfr#define BBS_TYPE_PCMCIA 0x04 34877943Sdfr#define BBS_TYPE_USB 0x05 34977943Sdfr#define BBS_TYPE_EMBEDDED_NETWORK 0x06 35077943Sdfr#define BBS_TYPE_DEV 0x80 35177943Sdfr#define BBS_TYPE_UNKNOWN 0xFF 35277943Sdfr 35377943Sdfrtypedef union { 35477943Sdfr EFI_DEVICE_PATH DevPath; 35577943Sdfr PCI_DEVICE_PATH Pci; 35677943Sdfr PCCARD_DEVICE_PATH PcCard; 35777943Sdfr MEMMAP_DEVICE_PATH MemMap; 35877943Sdfr VENDOR_DEVICE_PATH Vendor; 35977943Sdfr UNKNOWN_DEVICE_VENDOR_DEVICE_PATH UnknownVendor; 36077943Sdfr CONTROLLER_DEVICE_PATH Controller; 36177943Sdfr ACPI_HID_DEVICE_PATH Acpi; 36277943Sdfr 36377943Sdfr ATAPI_DEVICE_PATH Atapi; 36477943Sdfr SCSI_DEVICE_PATH Scsi; 36577943Sdfr FIBRECHANNEL_DEVICE_PATH FibreChannel; 36677943Sdfr 36777943Sdfr F1394_DEVICE_PATH F1394; 36877943Sdfr USB_DEVICE_PATH Usb; 36977943Sdfr USB_CLASS_DEVICE_PATH UsbClass; 37077943Sdfr I2O_DEVICE_PATH I2O; 37177943Sdfr MAC_ADDR_DEVICE_PATH MacAddr; 37277943Sdfr IPv4_DEVICE_PATH Ipv4; 37377943Sdfr IPv6_DEVICE_PATH Ipv6; 37477943Sdfr INFINIBAND_DEVICE_PATH InfiniBand; 37577943Sdfr UART_DEVICE_PATH Uart; 37677943Sdfr 37777943Sdfr HARDDRIVE_DEVICE_PATH HardDrive; 37877943Sdfr CDROM_DEVICE_PATH CD; 37977943Sdfr 38077943Sdfr FILEPATH_DEVICE_PATH FilePath; 38177943Sdfr MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol; 38277943Sdfr 38377943Sdfr BBS_BBS_DEVICE_PATH Bbs; 38477943Sdfr 38577943Sdfr} EFI_DEV_PATH; 38677943Sdfr 38777943Sdfrtypedef union { 38877943Sdfr EFI_DEVICE_PATH *DevPath; 38977943Sdfr PCI_DEVICE_PATH *Pci; 39077943Sdfr PCCARD_DEVICE_PATH *PcCard; 39177943Sdfr MEMMAP_DEVICE_PATH *MemMap; 39277943Sdfr VENDOR_DEVICE_PATH *Vendor; 39377943Sdfr UNKNOWN_DEVICE_VENDOR_DEVICE_PATH *UnknownVendor; 39477943Sdfr CONTROLLER_DEVICE_PATH *Controller; 39577943Sdfr ACPI_HID_DEVICE_PATH *Acpi; 396163898Smarcel ACPI_EXTENDED_HID_DEVICE_PATH *ExtendedAcpi; 39777943Sdfr 39877943Sdfr ATAPI_DEVICE_PATH *Atapi; 39977943Sdfr SCSI_DEVICE_PATH *Scsi; 40077943Sdfr FIBRECHANNEL_DEVICE_PATH *FibreChannel; 40177943Sdfr 40277943Sdfr F1394_DEVICE_PATH *F1394; 40377943Sdfr USB_DEVICE_PATH *Usb; 40477943Sdfr USB_CLASS_DEVICE_PATH *UsbClass; 40577943Sdfr I2O_DEVICE_PATH *I2O; 40677943Sdfr MAC_ADDR_DEVICE_PATH *MacAddr; 40777943Sdfr IPv4_DEVICE_PATH *Ipv4; 40877943Sdfr IPv6_DEVICE_PATH *Ipv6; 40977943Sdfr INFINIBAND_DEVICE_PATH *InfiniBand; 41077943Sdfr UART_DEVICE_PATH *Uart; 41177943Sdfr 41277943Sdfr HARDDRIVE_DEVICE_PATH *HardDrive; 41377943Sdfr 41477943Sdfr FILEPATH_DEVICE_PATH *FilePath; 41577943Sdfr MEDIA_PROTOCOL_DEVICE_PATH *MediaProtocol; 41677943Sdfr 41777943Sdfr CDROM_DEVICE_PATH *CD; 41877943Sdfr BBS_BBS_DEVICE_PATH *Bbs; 41977943Sdfr 42077943Sdfr} EFI_DEV_PATH_PTR; 42177943Sdfr 42277943Sdfr 42377943Sdfr#endif 424