E.3.2 miscellaneous macros, E.3.3 portability types, E.3.3.1 pxe_const – Intel Extensible Firmware Interface User Manual

Page 884: E.3.3.2 pxe_volatile

Advertising
background image

Extensible Firmware Interface Specification

E-18

12/01/02

Version 1.10

E.3.2 Miscellaneous

Macros

E.3.2.1 Miscellaneous

#define

PXE_CPBSIZE_NOT_USED

0

//

zero

#define PXE_DBSIZE_NOT_USED

0

//

zero

#define PXE_CPBADDR_NOT_USED

(PXE_UINT64)0

// zero

#define PXE_DBADDR_NOT_USED

(PXE_UINT64)0

//

zero

E.3.3 Portability

Types

The examples given below are just that, examples. The actual typedef instructions used in a new
implementation may vary depending on the compiler and processor architecture.

The storage sizes defined in this section are critical for PXE module inter-operation. All of the
portability typedefs define little endian (Intel format) storage. The least significant byte is stored in
the lowest memory address and the most significant byte is stored in the highest memory address,
as shown in Figure E-5.

OM13186

0x00

0x01

0x02

0x03

0x04

0x05

0x06

0x07

UINT8 UINT16

UINT32

UINT64

LSB

MSB

Figure E-5. Storage Types

E.3.3.1 PXE_CONST

The const type does not allocate storage. This type is a modifier that is used to help the compiler
optimize parameters that do not change across function calls.

#define PXE_CONST const

E.3.3.2 PXE_VOLATILE

The volatile type does not allocate storage. This type is a modifier that is used to help the compiler
deal with variables that can be changed by external procedures or hardware events.

#define PXE_VOLATILE volatile

Advertising