1 /*++ 2 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 3 This program and the accompanying materials 4 are licensed and made available under the terms and conditions of the BSD License 5 which accompanies this distribution. The full text of the license may be found at 6 http://opensource.org/licenses/bsd-license.php 7 8 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 9 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 10 11 Module name: 12 13 EfiNetworkInterfaceIdentifier.h 14 15 Abstract: 16 17 Revision history: 18 2000-Feb-18 M(f)J GUID updated. 19 Structure order changed for machine word alignment. 20 Added StringId[4] to structure. 21 22 2000-Feb-14 M(f)J Genesis. 23 --*/ 24 #ifndef _EFI_NETWORKINTERFACEIDENTIFER_H 25 #define _EFI_NETWORKINTERFACEIDENTIFER_H 26 27 28 #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID \ 29 { \ 30 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29} \ 31 } 32 #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31 \ 33 { \ 34 0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89} \ 35 } 36 37 #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 0x00010000 38 #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION_31 0x00010001 39 40 // 41 // Forward reference for pure ANSI compatability 42 // 43 EFI_FORWARD_DECLARATION (EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL); 44 45 typedef enum { 46 EfiNetworkInterfaceUndi = 1 47 } EFI_NETWORK_PROTOCOL_TYPE; 48 49 struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL { 50 51 UINT64 Revision; 52 // 53 // Revision of the network interface identifier protocol interface. 54 // 55 UINT64 ID; 56 // 57 // Address of the first byte of the identifying structure for this 58 // network interface. This is set to zero if there is no structure. 59 // 60 // For PXE/UNDI this is the first byte of the !PXE structure. 61 // 62 UINT64 ImageAddr; 63 // 64 // Address of the UNrelocated driver/ROM image. This is set 65 // to zero if there is no driver/ROM image. 66 // 67 // For 16-bit UNDI, this is the first byte of the option ROM in 68 // upper memory. 69 // 70 // For 32/64-bit S/W UNDI, this is the first byte of the EFI ROM 71 // image. 72 // 73 // For H/W UNDI, this is set to zero. 74 // 75 UINT32 ImageSize; 76 // 77 // Size of the UNrelocated driver/ROM image of this network interface. 78 // This is set to zero if there is no driver/ROM image. 79 // 80 CHAR8 StringId[4]; 81 // 82 // 4 char ASCII string to go in class identifier (option 60) in DHCP 83 // and Boot Server discover packets. 84 // For EfiNetworkInterfaceUndi this field is "UNDI". 85 // For EfiNetworkInterfaceSnp this field is "SNPN". 86 // 87 UINT8 Type; 88 UINT8 MajorVer; 89 UINT8 MinorVer; 90 // 91 // Information to be placed into the PXE DHCP and Discover packets. 92 // This is the network interface type and version number that will 93 // be placed into DHCP option 94 (client network interface identifier). 94 // 95 BOOLEAN Ipv6Supported; 96 UINT8 IfNum; // interface number to be used with pxeid structure 97 }; 98 99 extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid; 100 extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid_31; 101 102 #endif // _EFI_NII_H 103