1 /** @file 2 EFI Network Interface Identifier Protocol 3 4 Copyright (c) 2006 - 2008, Intel Corporation 5 All rights reserved. This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 14 **/ 15 16 #ifndef __EFI_NETWORK_INTERFACE_IDENTIFER_H__ 17 #define __EFI_NETWORK_INTERFACE_IDENTIFER_H__ 18 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 #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 0x00010000 26 27 /// 28 /// Revision defined in EFI1.1. 29 /// 30 #define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 31 32 /// 33 /// Forward reference for pure ANSI compatability 34 /// 35 typedef struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL; 36 37 /// 38 /// Protocol defined in EFI1.1. 39 /// 40 typedef EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE; 41 42 typedef enum { 43 EfiNetworkInterfaceUndi = 1 44 } EFI_NETWORK_PROTOCOL_TYPE; 45 46 /// 47 /// An optional protocol that is used to describe details about the software 48 /// layer that is used to produce the Simple Network Protocol. 49 /// 50 struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL { 51 UINT64 Revision; ///< The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol. 52 UINT64 ID; ///< Address of the first byte of the identifying structure for this network 53 ///< interface. This is only valid when the network interface is started 54 ///< (see Start()). When the network interface is not started, this field is set to zero. 55 UINT64 ImageAddr; ///< Address of the first byte of the identifying structure for this 56 ///< network interface. This is set to zero if there is no structure. 57 UINT32 ImageSize; ///< Size of unrelocated network interface image. 58 CHAR8 StringId[4];///< A four-character ASCII string that is sent in the class identifier field of 59 ///< option 60 in DHCP. For a Type of EfiNetworkInterfaceUndi, this field is UNDI. 60 UINT8 Type; ///< Network interface type. This will be set to one of the values 61 ///< in EFI_NETWORK_INTERFACE_TYPE. 62 UINT8 MajorVer; ///< Major version number. 63 UINT8 MinorVer; ///< Minor version number. 64 BOOLEAN Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE. 65 UINT8 IfNum; ///< The network interface number that is being identified by this Network 66 ///< Interface Identifier Protocol. This field must be less than or equal 67 ///< to the IFcnt field in the !PXE structure. 68 69 }; 70 71 extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid; 72 extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid_31; 73 74 #endif // _EFI_NII_H 75