E.4.16 get status, Get state, E.4.16.1 issuing the command – Intel Extensible Firmware Interface User Manual
Page 945: E.4.16.2 waiting for the command to execute

32/64-Bit UNDI Specification
Version 1.10
12/01/02
E-79
E.4.16 Get
Status
This command returns the current interrupt status and/or the transmitted buffer addresses. If the
current interrupt status is returned, pending interrupts will be acknowledged by this command.
Transmitted buffer addresses that are written to the DB are removed from the transmitted buffer
queue.
This command may be used in a polled fashion with external interrupts disabled.
E.4.16.1
Issuing the Command
To issue a Get Status command, create a CDB and fill it in as shown in the table below:
CDB Field
How to initialize the CDB structure for a Get Status command
OpCode
PXE_OPCODE_GET_STATUS
OpFlags
Set as needed.
CPBsize
PXE_CPBSIZE_NOT_USED
DBsize
Sizeof(PXE_DB_GET_STATUS)
CPBaddr
PXE_CPBADDR_NOT_USED
DBaddr
Address of
PXE_DB_GET_STATUS
structure.
StatCode
PXE_STATCODE_INITIALIZE
StatFlags
PXE_STATFLAGS_INITIALIZE
IFnum
A valid interface number from zero to
!PXE.IFcnt
.
Control
Set as needed.
Setting OpFlags
Set one or both of the OpFlags below to return the interrupt status and/or the transmitted buffer
addresses.
PXE_OPFLAGS_GET_INTERRUPT_STATUS
PXE_OPFLAGS_GET_TRANSMITTED_BUFFERS
E.4.16.2
Waiting for the Command to Execute
Monitor the upper two bits (14 & 15) in the
CDB.StatFlags
field. Until these bits change to
report
PXE_STATFLAGS_COMMAND_COMPLETE
or
PXE_STATFLAGS_COMMAND_FAILED
,
the command has not been executed by the UNDI.
StatFlags Reason
COMMAND_COMPLETE
Command completed successfully. StatFlags and/or DB are updated.
COMMAND_FAILED
Command failed. StatCode field contains error code.
COMMAND_QUEUED
Command has been queued.
INITIALIZE
Command has been not executed or queued.