beautypg.com

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

background image

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.