176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _EFI_NII_H 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _EFI_NII_H 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*++ 576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanCopyright (c) 2000 Intel Corporation 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanModule name: 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman efi_nii.h 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanAbstract: 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanRevision history: 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2000-Feb-18 M(f)J GUID updated. 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman Structure order changed for machine word alignment. 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman Added StringId[4] to structure. 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2000-Feb-14 M(f)J Genesis. 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman--*/ 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL \ 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29} } 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION 0x00010000 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef enum { 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EfiNetworkInterfaceUndi = 1 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_NETWORK_INTERFACE_TYPE; 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT64 Revision; 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Revision of the network interface identifier protocol interface. 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT64 ID; 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Address of the first byte of the identifying structure for this 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // network interface. This is set to zero if there is no structure. 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // For PXE/UNDI this is the first byte of the !PXE structure. 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT64 ImageAddr; 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Address of the UNrelocated driver/ROM image. This is set 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // to zero if there is no driver/ROM image. 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // For 16-bit UNDI, this is the first byte of the option ROM in 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // upper memory. 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // For 32/64-bit S/W UNDI, this is the first byte of the EFI ROM 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // image. 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // For H/W UNDI, this is set to zero. 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 ImageSize; 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Size of the UNrelocated driver/ROM image of this network interface. 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // This is set to zero if there is no driver/ROM image. 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman CHAR8 StringId[4]; 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 4 char ASCII string to go in class identifier (option 60) in DHCP 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // and Boot Server discover packets. 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // For EfiNetworkInterfaceUndi this field is "UNDI". 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // For EfiNetworkInterfaceSnp this field is "SNPN". 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 Type; 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 MajorVer; 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 MinorVer; 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Information to be placed into the PXE DHCP and Discover packets. 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // This is the network interface type and version number that will 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // be placed into DHCP option 94 (client network interface identifier). 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN Ipv6Supported; 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 IfNum; // interface number to be used with pxeid structure 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE; 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern EFI_GUID NetworkInterfaceIdentifierProtocol; 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif // _EFI_NII_H 75