iPXE
Data Fields

The !PXE structure. More...

#include <pxe_api.h>

Data Fields

UINT8_t Signature [4]
 Signature. More...
 
UINT8_t StructLength
 Length of this structure. More...
 
UINT8_t StructCksum
 Checksum. More...
 
UINT8_t StructRev
 Revision of this structure. More...
 
UINT8_t reserved_1
 Must be zero. More...
 
SEGOFF16_t UNDIROMID
 Address of the UNDI ROM ID structure. More...
 
SEGOFF16_t BaseROMID
 Address of the Base Code ROM ID structure. More...
 
SEGOFF16_t EntryPointSP
 16-bit !PXE entry point More...
 
SEGOFF16_t EntryPointESP
 32-bit !PXE entry point More...
 
SEGOFF16_t StatusCallout
 Status call-out function. More...
 
UINT8_t reserved_2
 Must be zero. More...
 
UINT8_t SegDescCnt
 Number of segment descriptors. More...
 
SEGSEL_t FirstSelector
 First protected-mode selector. More...
 
SEGDESC_t Stack
 Stack segment descriptor. More...
 
SEGDESC_t UNDIData
 UNDI data segment descriptor. More...
 
SEGDESC_t UNDICode
 UNDI code segment descriptor. More...
 
SEGDESC_t UNDICodeWrite
 UNDI writable code segment descriptor. More...
 
SEGDESC_t BC_Data
 Base-code data segment descriptor. More...
 
SEGDESC_t BC_Code
 Base-code code segment descriptor. More...
 
SEGDESC_t BC_CodeWrite
 Base-code writable code segment descriptor. More...
 

Detailed Description

The !PXE structure.

Definition at line 129 of file pxe_api.h.

Field Documentation

◆ Signature

UINT8_t s_PXE::Signature[4]

Signature.

Contains the bytes '!', 'P', 'X', 'E'.

Definition at line 134 of file pxe_api.h.

◆ StructLength

UINT8_t s_PXE::StructLength

Length of this structure.

Definition at line 135 of file pxe_api.h.

◆ StructCksum

UINT8_t s_PXE::StructCksum

Checksum.

The byte checksum of this structure (using the length in StructLength) must be zero.

Definition at line 141 of file pxe_api.h.

◆ StructRev

UINT8_t s_PXE::StructRev

Revision of this structure.

For PXE version 2.1, this field must be zero.

Definition at line 146 of file pxe_api.h.

◆ reserved_1

UINT8_t s_PXE::reserved_1

Must be zero.

Definition at line 147 of file pxe_api.h.

◆ UNDIROMID

SEGOFF16_t s_PXE::UNDIROMID

Address of the UNDI ROM ID structure.

This is a pointer to a struct s_UNDI_ROM_ID.

Definition at line 152 of file pxe_api.h.

◆ BaseROMID

SEGOFF16_t s_PXE::BaseROMID

Address of the Base Code ROM ID structure.

This is a pointer to a struct s_BC_ROM_ID.

Definition at line 157 of file pxe_api.h.

◆ EntryPointSP

SEGOFF16_t s_PXE::EntryPointSP

16-bit !PXE entry point

This is the entry point for either real mode, or protected mode with a 16-bit stack segment.

Definition at line 163 of file pxe_api.h.

◆ EntryPointESP

SEGOFF16_t s_PXE::EntryPointESP

32-bit !PXE entry point

This is the entry point for protected mode with a 32-bit stack segment.

Definition at line 169 of file pxe_api.h.

◆ StatusCallout

SEGOFF16_t s_PXE::StatusCallout

Status call-out function.

Parameters
0(if in a time-out loop)
nNumber of a received TFTP packet
Return values
0Continue operation
1Cancel operation

This function will be called whenever the PXE stack is in protected mode, is waiting for an event (e.g. a DHCP reply) and wishes to allow the user to cancel the operation. Parameters are passed in register ax; the return value must also be placed in register ax. All other registers and flags must be preserved.

In real mode, an internal function (that checks for a keypress) will be used.

If this field is set to -1, no status call-out function will be used and consequently the user will not be allowed to interrupt operations.

Note
The PXE specification version 2.1 defines the StatusCallout field, mentions it 11 times, but nowhere defines what it actually does or how it gets called. Fortunately, the WfM specification version 1.1a deigns to inform us of such petty details.

Definition at line 197 of file pxe_api.h.

◆ reserved_2

UINT8_t s_PXE::reserved_2

Must be zero.

Definition at line 198 of file pxe_api.h.

◆ SegDescCnt

UINT8_t s_PXE::SegDescCnt

Number of segment descriptors.

If this number is greater than 7, the remaining descriptors follow immediately after BC_CodeWrite.

Definition at line 204 of file pxe_api.h.

◆ FirstSelector

SEGSEL_t s_PXE::FirstSelector

First protected-mode selector.

This is the segment selector value for the first segment assigned to PXE. Protected-mode selectors must be consecutive, according to the PXE 2.1 specification, though no reason is given. Each #SEGDESC_t includes a field for the segment selector, so this information is entirely redundant.

Definition at line 214 of file pxe_api.h.

◆ Stack

SEGDESC_t s_PXE::Stack

Stack segment descriptor.

Definition at line 216 of file pxe_api.h.

◆ UNDIData

SEGDESC_t s_PXE::UNDIData

UNDI data segment descriptor.

Definition at line 218 of file pxe_api.h.

◆ UNDICode

SEGDESC_t s_PXE::UNDICode

UNDI code segment descriptor.

Definition at line 220 of file pxe_api.h.

◆ UNDICodeWrite

SEGDESC_t s_PXE::UNDICodeWrite

UNDI writable code segment descriptor.

Definition at line 222 of file pxe_api.h.

◆ BC_Data

SEGDESC_t s_PXE::BC_Data

Base-code data segment descriptor.

Definition at line 224 of file pxe_api.h.

◆ BC_Code

SEGDESC_t s_PXE::BC_Code

Base-code code segment descriptor.

Definition at line 226 of file pxe_api.h.

◆ BC_CodeWrite

SEGDESC_t s_PXE::BC_CodeWrite

Base-code writable code segment descriptor.

Definition at line 228 of file pxe_api.h.


The documentation for this struct was generated from the following file: