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