1060fee10Skettenis /* $FreeBSD: head/sys/boot/efi/include/efi_nii.h 163898 2006-11-02 02:42:48Z marcel $ */ 2060fee10Skettenis #ifndef _EFI_NII_H 3060fee10Skettenis #define _EFI_NII_H 4060fee10Skettenis 5060fee10Skettenis /*++ 6060fee10Skettenis Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 7060fee10Skettenis This software and associated documentation (if any) is furnished 8060fee10Skettenis under a license and may only be used or copied in accordance 9060fee10Skettenis with the terms of the license. Except as permitted by such 10060fee10Skettenis license, no part of this software or documentation may be 11060fee10Skettenis reproduced, stored in a retrieval system, or transmitted in any 12060fee10Skettenis form or by any means without the express written consent of 13060fee10Skettenis Intel Corporation. 14060fee10Skettenis 15060fee10Skettenis Module name: 16060fee10Skettenis efi_nii.h 17060fee10Skettenis 18060fee10Skettenis Abstract: 19060fee10Skettenis 20060fee10Skettenis Revision history: 21060fee10Skettenis 2000-Feb-18 M(f)J GUID updated. 22060fee10Skettenis Structure order changed for machine word alignment. 23060fee10Skettenis Added StringId[4] to structure. 24060fee10Skettenis 25060fee10Skettenis 2000-Feb-14 M(f)J Genesis. 26060fee10Skettenis --*/ 27060fee10Skettenis 28060fee10Skettenis #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL \ 29*aa2a8ca5Sjsg { 0xE18541CD, 0xF755, 0x4f73, { 0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29 } } 30060fee10Skettenis #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_31 \ 31*aa2a8ca5Sjsg { 0x1ACED566, 0x76ED, 0x4218, { 0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } } 32060fee10Skettenis 33060fee10Skettenis #define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION 0x00010000 34060fee10Skettenis #define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION_31 0x00010001 35060fee10Skettenis 36060fee10Skettenis typedef enum { 37060fee10Skettenis EfiNetworkInterfaceUndi = 1 38060fee10Skettenis } EFI_NETWORK_INTERFACE_TYPE; 39060fee10Skettenis 40060fee10Skettenis typedef struct { 41060fee10Skettenis 42060fee10Skettenis UINT64 Revision; 43060fee10Skettenis // Revision of the network interface identifier protocol interface. 44060fee10Skettenis 45060fee10Skettenis UINT64 ID; 46060fee10Skettenis // Address of the first byte of the identifying structure for this 47060fee10Skettenis // network interface. This is set to zero if there is no structure. 48060fee10Skettenis // 49060fee10Skettenis // For PXE/UNDI this is the first byte of the !PXE structure. 50060fee10Skettenis 51060fee10Skettenis UINT64 ImageAddr; 52060fee10Skettenis // Address of the UNrelocated driver/ROM image. This is set 53060fee10Skettenis // to zero if there is no driver/ROM image. 54060fee10Skettenis // 55060fee10Skettenis // For 16-bit UNDI, this is the first byte of the option ROM in 56060fee10Skettenis // upper memory. 57060fee10Skettenis // 58060fee10Skettenis // For 32/64-bit S/W UNDI, this is the first byte of the EFI ROM 59060fee10Skettenis // image. 60060fee10Skettenis // 61060fee10Skettenis // For H/W UNDI, this is set to zero. 62060fee10Skettenis 63060fee10Skettenis UINT32 ImageSize; 64060fee10Skettenis // Size of the UNrelocated driver/ROM image of this network interface. 65060fee10Skettenis // This is set to zero if there is no driver/ROM image. 66060fee10Skettenis 67060fee10Skettenis CHAR8 StringId[4]; 68060fee10Skettenis // 4 char ASCII string to go in class identifier (option 60) in DHCP 69060fee10Skettenis // and Boot Server discover packets. 70060fee10Skettenis // For EfiNetworkInterfaceUndi this field is "UNDI". 71060fee10Skettenis // For EfiNetworkInterfaceSnp this field is "SNPN". 72060fee10Skettenis 73060fee10Skettenis UINT8 Type; 74060fee10Skettenis UINT8 MajorVer; 75060fee10Skettenis UINT8 MinorVer; 76060fee10Skettenis // Information to be placed into the PXE DHCP and Discover packets. 77060fee10Skettenis // This is the network interface type and version number that will 78060fee10Skettenis // be placed into DHCP option 94 (client network interface identifier). 79060fee10Skettenis BOOLEAN Ipv6Supported; 80060fee10Skettenis UINT8 IfNum; // interface number to be used with pxeid structure 81060fee10Skettenis } EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE; 82060fee10Skettenis 83060fee10Skettenis extern EFI_GUID NetworkInterfaceIdentifierProtocol; 84060fee10Skettenis extern EFI_GUID NetworkInterfaceIdentifierProtocol_31; 85060fee10Skettenis 86060fee10Skettenis #endif // _EFI_NII_H 87