Subversion Repositories HelenOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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
  75.