E.3.5 compound types – Intel Extensible Firmware Interface User Manual

Page 899

Advertising
background image

32/64-Bit UNDI Specification

Version 1.10

12/01/02

E-33

E.3.5 Compound

Types

All PXE structures must be byte packed.

E.3.5.1 PXE_HW_UNDI

This section defines the C structures and #defines for the !PXE H/W UNDI interface.

#pragma pack(1)

typedef struct s_pxe_hw_undi {

PXE_UINT32

Signature; //

PXE_ROMID_SIGNATURE

PXE_UINT8

Len; //

sizeof(PXE_HW_UNDI)

PXE_UINT8

Fudge;

// makes 8-bit cksum equal zero

PXE_UINT8

Rev; //

PXE_ROMID_REV

PXE_UINT8

IFcnt;

// physical connector count

PXE_UINT8

MajorVer; //

PXE_ROMID_MAJORVER

PXE_UINT8

MinorVer;

//

PXE_ROMID_MINORVER

PXE_UINT16

reserved;

// zero, not used

PXE_UINT32

Implementation; // implementation flags

} PXE_HW_UNDI;

#pragma pack()

// Status port bit definitions

// UNDI operation state

#define

PXE_HWSTAT_STATE_MASK

0xC0000000

#define

PXE_HWSTAT_BUSY

0xC0000000

#define

PXE_HWSTAT_INITIALIZED

0x80000000

#define

PXE_HWSTAT_STARTED

0x40000000

#define

PXE_HWSTAT_STOPPED

0x00000000

// If set, last command failed

#define

PXE_HWSTAT_COMMAND_FAILED 0x20000000

// If set, identifies enabled receive filters

#define PXE_HWSTAT_PROMISCUOUS_MULTICAST_RX_ENABLED

0x00001000

#define

PXE_HWSTAT_PROMISCUOUS_RX_ENABLED

0x00000800

#define

PXE_HWSTAT_BROADCAST_RX_ENABLED

0x00000400

#define

PXE_HWSTAT_MULTICAST_RX_ENABLED

0x00000200

#define

PXE_HWSTAT_UNICAST_RX_ENABLED

0x00000100

Advertising