iPXE
NetworkInterfaceIdentifier.h
Go to the documentation of this file.
1/** @file
2 EFI Network Interface Identifier Protocol.
3
4Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 @par Revision Reference:
8 This Protocol is introduced in EFI Specification 1.10.
9
10**/
11
12#ifndef __EFI_NETWORK_INTERFACE_IDENTIFER_H__
13#define __EFI_NETWORK_INTERFACE_IDENTIFER_H__
14
15FILE_LICENCE ( BSD2_PATENT );
16FILE_SECBOOT ( PERMITTED );
17
18//
19// GUID retired from UEFI Specification 2.1b
20//
21#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID \
22 { \
23 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29 } \
24 }
25
26//
27// GUID intruduced in UEFI Specification 2.1b
28//
29#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31 \
30 { \
31 0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } \
32 }
33
34//
35// Revision defined in UEFI Specification 2.4
36//
37#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 0x00020000
38
39///
40/// Revision defined in EFI1.1.
41///
42#define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION
43
44///
45/// Forward reference for pure ANSI compatability.
46///
48
49///
50/// Protocol defined in EFI1.1.
51///
53
54///
55/// An optional protocol that is used to describe details about the software
56/// layer that is used to produce the Simple Network Protocol.
57///
59 UINT64 Revision; ///< The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol.
60 UINT64 Id; ///< The address of the first byte of the identifying structure for this network
61 ///< interface. This is only valid when the network interface is started
62 ///< (see Start()). When the network interface is not started, this field is set to zero.
63 UINT64 ImageAddr; ///< The address of the first byte of the identifying structure for this
64 ///< network interface. This is set to zero if there is no structure.
65 UINT32 ImageSize; ///< The size of unrelocated network interface image.
66 CHAR8 StringId[4]; ///< A four-character ASCII string that is sent in the class identifier field of
67 ///< option 60 in DHCP. For a Type of EfiNetworkInterfaceUndi, this field is UNDI.
68 UINT8 Type; ///< Network interface type. This will be set to one of the values
69 ///< in EFI_NETWORK_INTERFACE_TYPE.
70 UINT8 MajorVer; ///< Major version number.
71 UINT8 MinorVer; ///< Minor version number.
72 BOOLEAN Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE.
73 UINT16 IfNum; ///< The network interface number that is being identified by this Network
74 ///< Interface Identifier Protocol. This field must be less than or
75 ///< equal to the (IFcnt | IFcntExt <<8 ) fields in the !PXE structure.
76};
77
78///
79/// *******************************************************
80/// EFI_NETWORK_INTERFACE_TYPE
81/// *******************************************************
82///
86
87///
88/// Forward reference for pure ANSI compatability.
89///
91
92///
93/// The format of the configuration table for UNDI
94///
96 UINT32 NumberOfInterfaces; ///< The number of NIC devices
97 ///< that this UNDI controls.
99 UNDI_CONFIG_TABLE *nextlink; ///< A pointer to the next UNDI
100 ///< configuration table.
101 ///
102 /// The length of this array is given in the NumberOfInterfaces field.
103 ///
104 struct {
105 VOID *NII_InterfacePointer; ///< Pointer to the NII interface structure.
106 VOID *DevicePathPointer; ///< Pointer to the device path for this NIC.
108};
109
112
113#endif
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
unsigned long long UINT64
8-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
Definition Base.h:272
@ EfiNetworkInterfaceUndi
EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE
Protocol defined in EFI1.1.
EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid
struct undiconfig_table UNDI_CONFIG_TABLE
Forward reference for pure ANSI compatability.
EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid_31
struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL
Forward reference for pure ANSI compatability.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
An optional protocol that is used to describe details about the software layer that is used to produc...
UINT16 IfNum
The network interface number that is being identified by this Network Interface Identifier Protocol.
UINT32 ImageSize
The size of unrelocated network interface image.
UINT64 Revision
The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol.
UINT64 ImageAddr
The address of the first byte of the identifying structure for this network interface.
CHAR8 StringId[4]
A four-character ASCII string that is sent in the class identifier field of option 60 in DHCP.
BOOLEAN Ipv6Supported
TRUE if the network interface supports IPv6; otherwise FALSE.
UINT64 Id
The address of the first byte of the identifying structure for this network interface.
The format of the configuration table for UNDI.
VOID * NII_InterfacePointer
Pointer to the NII interface structure.
UNDI_CONFIG_TABLE * nextlink
A pointer to the next UNDI configuration table.
VOID * DevicePathPointer
Pointer to the device path for this NIC.
UINT32 NumberOfInterfaces
The number of NIC devices that this UNDI controls.
struct undiconfig_table::@337240136254135116011143155320145320142046274361 NII_entry[1]
The length of this array is given in the NumberOfInterfaces field.