1#ifndef _EFI_NII_H 2#define _EFI_NII_H 3 4/*++ 5Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 6This software and associated documentation (if any) is furnished 7under a license and may only be used or copied in accordance 8with the terms of the license. Except as permitted by such 9license, no part of this software or documentation may be 10reproduced, stored in a retrieval system, or transmitted in any 11form or by any means without the express written consent of 12Intel Corporation. 13 14Module name: 15 efi_nii.h 16 17Abstract: 18 19Revision history: 20 2000-Feb-18 M(f)J GUID updated. 21 Structure order changed for machine word alignment. 22 Added StringId[4] to structure. 23 24 2000-Feb-14 M(f)J Genesis. 25--*/ 26 27#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL \ 28 { 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29} } 29#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_31 \ 30 { 0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89} } 31 32#define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION 0x00010000 33#define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION_31 0x00010001 34 35typedef enum { 36 EfiNetworkInterfaceUndi = 1 37} EFI_NETWORK_INTERFACE_TYPE; 38 39typedef struct { 40 41 UINT64 Revision; 42 // Revision of the network interface identifier protocol interface. 43 44 UINT64 ID; 45 // Address of the first byte of the identifying structure for this 46 // network interface. This is set to zero if there is no structure. 47 // 48 // For PXE/UNDI this is the first byte of the !PXE structure. 49 50 UINT64 ImageAddr; 51 // Address of the UNrelocated driver/ROM image. This is set 52 // to zero if there is no driver/ROM image. 53 // 54 // For 16-bit UNDI, this is the first byte of the option ROM in 55 // upper memory. 56 // 57 // For 32/64-bit S/W UNDI, this is the first byte of the EFI ROM 58 // image. 59 // 60 // For H/W UNDI, this is set to zero. 61 62 UINT32 ImageSize; 63 // Size of the UNrelocated driver/ROM image of this network interface. 64 // This is set to zero if there is no driver/ROM image. 65 66 CHAR8 StringId[4]; 67 // 4 char ASCII string to go in class identifier (option 60) in DHCP 68 // and Boot Server discover packets. 69 // For EfiNetworkInterfaceUndi this field is "UNDI". 70 // For EfiNetworkInterfaceSnp this field is "SNPN". 71 72 UINT8 Type; 73 UINT8 MajorVer; 74 UINT8 MinorVer; 75 // Information to be placed into the PXE DHCP and Discover packets. 76 // This is the network interface type and version number that will 77 // be placed into DHCP option 94 (client network interface identifier). 78 BOOLEAN Ipv6Supported; 79 UINT8 IfNum; // interface number to be used with pxeid structure 80} EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE; 81 82extern EFI_GUID NetworkInterfaceIdentifierProtocol; 83extern EFI_GUID NetworkInterfaceIdentifierProtocol_31; 84 85#endif // _EFI_NII_H 86