[e16e8f2] | 1 | #ifndef _EFI_NII_H |
---|
| 2 | #define _EFI_NII_H |
---|
| 3 | |
---|
| 4 | /*++ |
---|
| 5 | Copyright (c) 2000 Intel Corporation |
---|
| 6 | |
---|
| 7 | Module name: |
---|
| 8 | efi_nii.h |
---|
| 9 | |
---|
| 10 | Abstract: |
---|
| 11 | |
---|
| 12 | Revision history: |
---|
| 13 | 2000-Feb-18 M(f)J GUID updated. |
---|
| 14 | Structure order changed for machine word alignment. |
---|
| 15 | Added StringId[4] to structure. |
---|
| 16 | |
---|
| 17 | 2000-Feb-14 M(f)J Genesis. |
---|
| 18 | --*/ |
---|
| 19 | |
---|
| 20 | #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL \ |
---|
| 21 | { 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29} } |
---|
| 22 | |
---|
| 23 | #define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION 0x00010000 |
---|
| 24 | |
---|
| 25 | typedef enum { |
---|
| 26 | EfiNetworkInterfaceUndi = 1 |
---|
| 27 | } EFI_NETWORK_INTERFACE_TYPE; |
---|
| 28 | |
---|
| 29 | typedef struct { |
---|
| 30 | |
---|
| 31 | UINT64 Revision; |
---|
| 32 | // Revision of the network interface identifier protocol interface. |
---|
| 33 | |
---|
| 34 | UINT64 ID; |
---|
| 35 | // Address of the first byte of the identifying structure for this |
---|
| 36 | // network interface. This is set to zero if there is no structure. |
---|
| 37 | // |
---|
| 38 | // For PXE/UNDI this is the first byte of the !PXE structure. |
---|
| 39 | |
---|
| 40 | UINT64 ImageAddr; |
---|
| 41 | // Address of the UNrelocated driver/ROM image. This is set |
---|
| 42 | // to zero if there is no driver/ROM image. |
---|
| 43 | // |
---|
| 44 | // For 16-bit UNDI, this is the first byte of the option ROM in |
---|
| 45 | // upper memory. |
---|
| 46 | // |
---|
| 47 | // For 32/64-bit S/W UNDI, this is the first byte of the EFI ROM |
---|
| 48 | // image. |
---|
| 49 | // |
---|
| 50 | // For H/W UNDI, this is set to zero. |
---|
| 51 | |
---|
| 52 | UINT32 ImageSize; |
---|
| 53 | // Size of the UNrelocated driver/ROM image of this network interface. |
---|
| 54 | // This is set to zero if there is no driver/ROM image. |
---|
| 55 | |
---|
| 56 | CHAR8 StringId[4]; |
---|
| 57 | // 4 char ASCII string to go in class identifier (option 60) in DHCP |
---|
| 58 | // and Boot Server discover packets. |
---|
| 59 | // For EfiNetworkInterfaceUndi this field is "UNDI". |
---|
| 60 | // For EfiNetworkInterfaceSnp this field is "SNPN". |
---|
| 61 | |
---|
| 62 | UINT8 Type; |
---|
| 63 | UINT8 MajorVer; |
---|
| 64 | UINT8 MinorVer; |
---|
| 65 | // Information to be placed into the PXE DHCP and Discover packets. |
---|
| 66 | // This is the network interface type and version number that will |
---|
| 67 | // be placed into DHCP option 94 (client network interface identifier). |
---|
| 68 | BOOLEAN Ipv6Supported; |
---|
| 69 | UINT8 IfNum; // interface number to be used with pxeid structure |
---|
| 70 | } EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE; |
---|
| 71 | |
---|
| 72 | extern EFI_GUID NetworkInterfaceIdentifierProtocol; |
---|
| 73 | |
---|
| 74 | #endif // _EFI_NII_H |
---|