Extensible Firmware Interface Specification
412 12/12/00 Version 1.02
PXE_UINT64 EntryPoint; // API entry point
PXE_UINT8 reserved2[3]; // zero, not used
PXE_UINT8 BusCnt; // number of bustypes supported
PXE_UINT32 BusType[1]; // list of supported bustypes
} PXE_SW_UNDI;
#pragma pack()
G.3.5.3 PXE_UNDI
PXE_UNDI combines both the H/W and S/W UNDI types into one typedef and has #defines for
common fields in both H/W and S/W UNDI types.
#pragma pack(1)
typedef union u_pxe_undi {
PXE_HW_UNDI hw;
PXE_SW_UNDI sw;
} PXE_UNDI;
#pragma pack()
// Signature of !PXE structure
#define PXE_ROMID_SIGNATURE PXE_BUSTYPE(’!’, ’P’, ’X’, ’E’)
// !PXE structure format revision
#define PXE_ROMID_REV 0x02
// UNDI command interface revision. These are the values that get
// sent in option 94 (Client Network Interface Identifier) in the
// DHCP Discover and PXE Boot Server Request packets.
#define PXE_ROMID_MAJORVER 0x03
#define PXE_ROMID_MINORVER 0x00
// Implementation flags
#define PXE_ROMID_IMP_HW_UNDI 0x80000000
#define PXE_ROMID_IMP_SW_VIRT_ADDR 0x40000000