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