beautypg.com

Intel Extensible Firmware Interface User Manual

Page 124

background image

Extensible Firmware Interface Specification

5-26

12/01/02

Version 1.10

Related Definitions

//*******************************************************
//EFI_MEMORY_DESCRIPTOR
//*******************************************************
typedef struct {
UINT32

Type;

EFI_PHYSICAL_ADDRESS

PhysicalStart;

EFI_VIRTUAL_ADDRESS

VirtualStart;

UINT64

NumberOfPages;

UINT64

Attribute;

} EFI_MEMORY_DESCRIPTOR;

Type

Type of the memory region. Type

EFI_MEMORY_TYPE

is

defined in the

AllocatePages()

function description.

PhysicalStart

Physical address of the first byte in the memory region. Physical
start must be aligned on a 4 KB boundary. Type

EFI_PHYSICAL_ADDRESS

is defined in the

AllocatePages()

function description.

VirtualStart

Virtual address of the first byte in the memory region. Virtual start
must be aligned on a 4 KB boundary. Type

EFI_VIRTUAL_ADDRESS

is defined in “Related Definitions.”

NumberOfPages

Number of 4 KB pages in the memory region.

Attribute

Attributes of the memory region that describe the bit mask of
capabilities for that memory region, and not necessarily the current
settings for that memory region. See the following “Memory
Attribute Definitions.”

//*******************************************************
// Memory Attribute Definitions
//*******************************************************
// These types can be “ORed” together as needed.
#define EFI_MEMORY_UC

0x0000000000000001

#define EFI_MEMORY_WC

0x0000000000000002

#define EFI_MEMORY_WT

0x0000000000000004

#define EFI_MEMORY_WB

0x0000000000000008

#define EFI_MEMORY_UCE

0x0000000000000010

#define EFI_MEMORY_WP

0x0000000000001000

#define EFI_MEMORY_RP

0x0000000000002000

#define EFI_MEMORY_XP

0x0000000000004000

#define EFI_MEMORY_RUNTIME

0x8000000000000000