/* $FreeBSD$ */
#ifndef _DEVPATH_H
#define _DEVPATH_H
/*++
Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.
Module Name:
Abstract:
Defines for parsing the EFI Device Path structures
Revision History
--*/
//
// Device Path structures - Section C
//
typedef struct _EFI_DEVICE_PATH {
#define DP_IS_END_TYPE(a)
#define SetDevicePathNodeLength(a,l) { \
}
#define SetDevicePathEndNode(a) { \
(a)->Type = END_DEVICE_PATH_TYPE; \
(a)->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE; \
(a)->Length[0] = sizeof(EFI_DEVICE_PATH); \
(a)->Length[1] = 0; \
}
/*
*
*/
typedef struct _PCI_DEVICE_PATH {
typedef struct _PCCARD_DEVICE_PATH {
typedef struct _MEMMAP_DEVICE_PATH {
typedef struct _VENDOR_DEVICE_PATH {
#define UNKNOWN_DEVICE_GUID \
{ 0xcf31fac5, 0xc24e, 0x11d2, {0x85, 0xf3, 0x0, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b} }
typedef struct _UKNOWN_DEVICE_VENDOR_DP {
typedef struct _CONTROLLER_DEVICE_PATH {
/*
*
*/
typedef struct _ACPI_HID_DEVICE_PATH {
typedef struct _ACPI_EXTENDED_HID_DEVICE_PATH {
//
// EISA ID Macro
// EISA ID Definition 32-bits
// bits[15:0] - three character compressed ASCII EISA ID.
// bits[31:16] - binary number
// Compressed ASCII is 5 bits per character 0b00001 = 'A' 0b11010 = 'Z'
//
/*
*
*/
typedef struct _ATAPI_DEVICE_PATH {
typedef struct _SCSI_DEVICE_PATH {
typedef struct _FIBRECHANNEL_DEVICE_PATH {
typedef struct _F1394_DEVICE_PATH {
typedef struct _USB_DEVICE_PATH {
typedef struct _USB_CLASS_DEVICE_PATH {
typedef struct _I2O_DEVICE_PATH {
typedef struct _MAC_ADDR_DEVICE_PATH {
typedef struct _IPv4_DEVICE_PATH {
typedef struct _IPv6_DEVICE_PATH {
typedef struct _INFINIBAND_DEVICE_PATH {
typedef struct _UART_DEVICE_PATH {
/* Use VENDOR_DEVICE_PATH struct */
#define DEVICE_PATH_MESSAGING_PC_ANSI \
{ 0xe0c14753, 0xf9be, 0x11d2, {0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
#define DEVICE_PATH_MESSAGING_VT_100 \
{ 0xdfa66065, 0xb419, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
#define DEVICE_PATH_MESSAGING_VT_100_PLUS \
{ 0x7baec70b, 0x57e0, 0x4c76, {0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43} }
#define DEVICE_PATH_MESSAGING_VT_UTF8 \
{ 0xad15a0d6, 0x8bec, 0x4acf, {0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88} }
typedef struct _SATA_DEVICE_PATH {
typedef struct _HARDDRIVE_DEVICE_PATH {
typedef struct _CDROM_DEVICE_PATH {
/* Use VENDOR_DEVICE_PATH struct */
typedef struct _FILEPATH_DEVICE_PATH {
typedef struct _MEDIA_PROTOCOL_DEVICE_PATH {
typedef struct _BBS_BBS_DEVICE_PATH {
/* DeviceType definitions - from BBS specification */
typedef union {
} EFI_DEV_PATH;
typedef union {
#endif