iPXE
Data Fields
s_PXE Struct Reference

The !PXE structure. More...

#include <pxe_api.h>

Data Fields

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

Detailed Description

The !PXE structure.

Definition at line 129 of file pxe_api.h.


Field Documentation

Signature.

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

Definition at line 134 of file pxe_api.h.

Length of this structure.

Definition at line 135 of file pxe_api.h.

Checksum.

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

Definition at line 141 of file pxe_api.h.

Revision of this structure.

For PXE version 2.1, this field must be zero.

Definition at line 146 of file pxe_api.h.

Must be zero.

Definition at line 147 of file pxe_api.h.

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.

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.

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.

Referenced by undi_load().

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.

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.

Must be zero.

Definition at line 198 of file pxe_api.h.

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.

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.

SEGDESC_t s_PXE::Stack

Stack segment descriptor.

Definition at line 216 of file pxe_api.h.

SEGDESC_t s_PXE::UNDIData

UNDI data segment descriptor.

Definition at line 218 of file pxe_api.h.

SEGDESC_t s_PXE::UNDICode

UNDI code segment descriptor.

Definition at line 220 of file pxe_api.h.

UNDI writable code segment descriptor.

Definition at line 222 of file pxe_api.h.

SEGDESC_t s_PXE::BC_Data

Base-code data segment descriptor.

Definition at line 224 of file pxe_api.h.

SEGDESC_t s_PXE::BC_Code

Base-code code segment descriptor.

Definition at line 226 of file pxe_api.h.

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: