]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/NetworkInterfaceIdentifier.h
MdePkg/ProcessorBind: add defines for page allocation granularity
[mirror_edk2.git] / MdePkg / Include / Protocol / NetworkInterfaceIdentifier.h
CommitLineData
d1f95000 1/** @file\r
af2dc6a7 2 EFI Network Interface Identifier Protocol.\r
d1f95000 3\r
61f2ab90 4Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
eccca95e 5This program and the accompanying materials are licensed and made available under\r
6the terms and conditions of the BSD License that accompanies this distribution.\r
af2dc6a7 7The full text of the license may be found at\r
eccca95e 8http://opensource.org/licenses/bsd-license.php.\r
d1f95000 9\r
eccca95e 10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13 @par Revision Reference:\r
af2dc6a7 14 This Protocol is introduced in EFI Specification 1.10.\r
d1f95000 15\r
16**/\r
17\r
18#ifndef __EFI_NETWORK_INTERFACE_IDENTIFER_H__\r
19#define __EFI_NETWORK_INTERFACE_IDENTIFER_H__\r
20\r
eccca95e 21//\r
22// GUID retired from UEFI Specification 2.1b\r
23//\r
d1f95000 24#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID \\r
25 { \\r
26 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29 } \\r
27 }\r
28\r
eccca95e 29//\r
30// GUID intruduced in UEFI Specification 2.1b\r
31//\r
32#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31 \\r
33 { \\r
34 0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } \\r
35 }\r
36\r
61f2ab90
QO
37//\r
38// Revision defined in UEFI Specification 2.4\r
39//\r
40#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 0x00020000\r
41\r
d1f95000 42\r
99e8ed21 43///\r
44/// Revision defined in EFI1.1.\r
eccca95e 45///\r
a6508c05 46#define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION\r
47\r
99e8ed21 48///\r
af2dc6a7 49/// Forward reference for pure ANSI compatability.\r
99e8ed21 50///\r
d1f95000 51typedef struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL;\r
52\r
99e8ed21 53///\r
54/// Protocol defined in EFI1.1.\r
eccca95e 55///\r
a6508c05 56typedef EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE;\r
57\r
44717a39 58///\r
eccca95e 59/// An optional protocol that is used to describe details about the software\r
60/// layer that is used to produce the Simple Network Protocol.\r
44717a39 61///\r
d1f95000 62struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL {\r
1544a668 63 UINT64 Revision; ///< The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol.\r
eccca95e 64 UINT64 Id; ///< The address of the first byte of the identifying structure for this network\r
65 ///< interface. This is only valid when the network interface is started\r
1544a668 66 ///< (see Start()). When the network interface is not started, this field is set to zero.\r
af2dc6a7 67 UINT64 ImageAddr; ///< The address of the first byte of the identifying structure for this\r
1544a668 68 ///< network interface. This is set to zero if there is no structure.\r
af2dc6a7 69 UINT32 ImageSize; ///< The size of unrelocated network interface image.\r
1544a668 70 CHAR8 StringId[4];///< A four-character ASCII string that is sent in the class identifier field of\r
71 ///< option 60 in DHCP. For a Type of EfiNetworkInterfaceUndi, this field is UNDI.\r
eccca95e 72 UINT8 Type; ///< Network interface type. This will be set to one of the values\r
1544a668 73 ///< in EFI_NETWORK_INTERFACE_TYPE.\r
74 UINT8 MajorVer; ///< Major version number.\r
75 UINT8 MinorVer; ///< Minor version number.\r
76 BOOLEAN Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE.\r
61f2ab90
QO
77 UINT16 IfNum; ///< The network interface number that is being identified by this Network \r
78 ///< Interface Identifier Protocol. This field must be less than or \r
79 ///< equal to the (IFcnt | IFcntExt <<8 ) fields in the !PXE structure.\r
1544a668 80\r
d1f95000 81};\r
82\r
d0a915a5
LG
83///\r
84///*******************************************************\r
85/// EFI_NETWORK_INTERFACE_TYPE\r
86///*******************************************************\r
87///\r
88typedef enum {\r
89 EfiNetworkInterfaceUndi = 1\r
90} EFI_NETWORK_INTERFACE_TYPE;\r
91\r
cb55fa38 92///\r
93/// Forward reference for pure ANSI compatability.\r
94///\r
95typedef struct undiconfig_table UNDI_CONFIG_TABLE;\r
96\r
97///\r
98/// The format of the configuration table for UNDI\r
99///\r
100struct undiconfig_table {\r
101 UINT32 NumberOfInterfaces; ///< The number of NIC devices\r
102 ///< that this UNDI controls.\r
103 UINT32 reserved;\r
104 UNDI_CONFIG_TABLE *nextlink; ///< A pointer to the next UNDI\r
105 ///< configuration table.\r
106 ///\r
107 /// The length of this array is given in the NumberOfInterfaces field.\r
108 ///\r
109 struct {\r
110 VOID *NII_InterfacePointer; ///< Pointer to the NII interface structure.\r
111 VOID *DevicePathPointer; ///< Pointer to the device path for this NIC.\r
112 } NII_entry[1]; \r
113};\r
114\r
d1f95000 115extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid;\r
116extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid_31;\r
117\r
1c455d59 118#endif\r