efi_nii.h 2.6 KB

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