Intel Extensible Firmware Interface User Manual
Page 124

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
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