Services
Version 1.02 12/12/00 51
EFI_MEMORY_WB Memory cacheability attribute: Memory region is cacheable with
“write back” policy. Reads and writes that hit in the cache do not
propagate to main memory. Dirty data is written back to main
memory when a new cache line is allocated.
EFI_MEMORY_UCE Memory cacheability attribute: Memory region is
uncacheable,exported, and supports the "fetch and add"
semaphore mechanism.
EFI_MEMORY_WP Physical memory protection attribute: Memory region is write-
protected by system hardware.
EFI_MEMORY_RP Physical memory protection attribute: Memory region is read-
protected by system hardware.
EFI_MEMORY_XP Physical memory protection attribute: Memory region is
protected against executing code by system hardware.
EFI_MEMORY_RUNTIME Runtime memory attribute: The memory region needs to be given
a virtual mapping by the operating system when
SetVirtualAddressMap() is called.
//*******************************************************
//EFI_VIRTUAL_ADDRESS
//*******************************************************
typedef UINT64 EFI_VIRTUAL_ADDRESS;
//*******************************************************
// Memory Descriptor Version Number
//*******************************************************
#define EFI_MEMORY_DESCRIPTOR_VERSION 1
Description
The GetMemoryMap()function returns a copy of the current memory map. The map is an array
of memory descriptors, each of which describes a contiguous block of memory. The map describes
all of memory, no matter how it is being used. That is, it includes blocks allocated by
AllocatePages() and AllocatePool(), as well as blocks which the firmware is using for
its own purposes.
Until ExitBootServices() is called, the memory map is owned by the firmware and the
currently executing EFI Image should only use memory pages it has explicitly allocated
If the MemoryMap buffer is too small, the EFI_BUFFER_TOO_SMALL error code is returned and
the MemoryMapSize value contains the size of the buffer needed to contain the current
memory map.
On success a MapKey is returned that identifies the current memory map. The firmware’s key is
changed every time something in the memory map changes. In order to successfully invoke
ExitBootServices() the caller must provide the current memory map key.