MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PiDxeCis.h File Reference

Data Structures

struct  EFI_GCD_MEMORY_SPACE_DESCRIPTOR
 
struct  EFI_GCD_IO_SPACE_DESCRIPTOR
 
struct  DXE_SERVICES
 

Macros

#define DXE_SERVICES_SIGNATURE   0x565245535f455844ULL
 
#define DXE_SPECIFICATION_MAJOR_REVISION   1
 
#define DXE_SPECIFICATION_MINOR_REVISION   70
 
#define DXE_SERVICES_REVISION   ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
 

Typedefs

typedef EFI_STATUS(EFIAPIEFI_ADD_MEMORY_SPACE )(IN EFI_GCD_MEMORY_TYPE GcdMemoryType, IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Capabilities)
 
typedef EFI_STATUS(EFIAPIEFI_ALLOCATE_MEMORY_SPACE )(IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType, IN EFI_GCD_MEMORY_TYPE GcdMemoryType, IN UINTN Alignment, IN UINT64 Length, IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE DeviceHandle)
 
typedef EFI_STATUS(EFIAPIEFI_FREE_MEMORY_SPACE )(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
 
typedef EFI_STATUS(EFIAPIEFI_REMOVE_MEMORY_SPACE )(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
 
typedef EFI_STATUS(EFIAPIEFI_GET_MEMORY_SPACE_DESCRIPTOR )(IN EFI_PHYSICAL_ADDRESS BaseAddress, OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor)
 
typedef EFI_STATUS(EFIAPIEFI_SET_MEMORY_SPACE_ATTRIBUTES )(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Attributes)
 
typedef IN UINT64 Length
 
typedef IN UINT64 IN UINT64 Capabilities
 
typedef EFI_STATUS(EFIAPIEFI_GET_MEMORY_SPACE_MAP )(OUT UINTN *NumberOfDescriptors, OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap)
 
typedef EFI_STATUS(EFIAPIEFI_ADD_IO_SPACE )(IN EFI_GCD_IO_TYPE GcdIoType, IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
 
typedef EFI_STATUS(EFIAPIEFI_ALLOCATE_IO_SPACE )(IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType, IN EFI_GCD_IO_TYPE GcdIoType, IN UINTN Alignment, IN UINT64 Length, IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE DeviceHandle)
 
typedef EFI_STATUS(EFIAPIEFI_FREE_IO_SPACE )(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
 
typedef EFI_STATUS(EFIAPIEFI_REMOVE_IO_SPACE )(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
 
typedef EFI_STATUS(EFIAPIEFI_GET_IO_SPACE_DESCRIPTOR )(IN EFI_PHYSICAL_ADDRESS BaseAddress, OUT EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor)
 
typedef EFI_STATUS(EFIAPIEFI_GET_IO_SPACE_MAP )(OUT UINTN *NumberOfDescriptors, OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap)
 
typedef EFI_STATUS(EFIAPIEFI_DISPATCH )(VOID)
 
typedef EFI_STATUS(EFIAPIEFI_SCHEDULE )(IN EFI_HANDLE FirmwareVolumeHandle, IN CONST EFI_GUID *FileName)
 
typedef EFI_STATUS(EFIAPIEFI_TRUST )(IN EFI_HANDLE FirmwareVolumeHandle, IN CONST EFI_GUID *FileName)
 
typedef EFI_STATUS(EFIAPIEFI_PROCESS_FIRMWARE_VOLUME )(IN CONST VOID *FirmwareVolumeHeader, IN UINTN Size, OUT EFI_HANDLE *FirmwareVolumeHandle)
 
typedef DXE_SERVICES EFI_DXE_SERVICES
 

Enumerations

enum  EFI_GCD_MEMORY_TYPE {
  EfiGcdMemoryTypeNonExistent, EfiGcdMemoryTypeReserved, EfiGcdMemoryTypeSystemMemory, EfiGcdMemoryTypeMemoryMappedIo,
  EfiGcdMemoryTypePersistent, EfiGcdMemoryTypePersistentMemory = EfiGcdMemoryTypePersistent, EfiGcdMemoryTypeMoreReliable, EfiGcdMemoryTypeMaximum
}
 
enum  EFI_GCD_IO_TYPE { EfiGcdIoTypeNonExistent, EfiGcdIoTypeReserved, EfiGcdIoTypeIo, EfiGcdIoTypeMaximum }
 
enum  EFI_GCD_ALLOCATE_TYPE {
  EfiGcdAllocateAnySearchBottomUp, EfiGcdAllocateMaxAddressSearchBottomUp, EfiGcdAllocateAddress, EfiGcdAllocateAnySearchTopDown,
  EfiGcdAllocateMaxAddressSearchTopDown, EfiGcdMaxAllocateType
}
 

Functions

typedef EFI_STATUS (EFIAPI *EFI_SET_MEMORY_SPACE_CAPABILITIES)(IN EFI_PHYSICAL_ADDRESS BaseAddress
 

Detailed Description

Include file matches things in PI.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
PI Version 1.7

Macro Definition Documentation

#define DXE_SERVICES_REVISION   ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
#define DXE_SERVICES_SIGNATURE   0x565245535f455844ULL
#define DXE_SPECIFICATION_MAJOR_REVISION   1
#define DXE_SPECIFICATION_MINOR_REVISION   70

Typedef Documentation

Adds reserved I/O or I/O resources to the global coherency domain of the processor.

Parameters
GcdIoTypeThe type of I/O resource being added.
BaseAddressThe physical address that is the start address of the I/O resource being added.
LengthThe size in bytes of the I/O resource that is being added.
Return values
EFI_SUCCESSThe I/O resource was added to the global coherency domain of the processor.
EFI_INVALID_PARAMETERGcdIoType is invalid.
EFI_INVALID_PARAMETERLength is zero.
EFI_OUT_OF_RESOURCESThere are not enough system resources to add the I/O resource to the global coherency domain of the processor.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the I/O resource range specified by BaseAddress and Length.
EFI_ACCESS_DENIEDOne or more bytes of the I/O resource range specified by BaseAddress and Length conflicts with an I/O resource range that was previously added to the global coherency domain of the processor.
EFI_ACCESS_DENIEDOne or more bytes of the I/O resource range specified by BaseAddress and Length was allocated in a prior call to AllocateIoSpace().

Adds reserved memory, system memory, or memory-mapped I/O resources to the global coherency domain of the processor.

Parameters
GcdMemoryTypeThe type of memory resource being added.
BaseAddressThe physical address that is the start address of the memory resource being added.
LengthThe size, in bytes, of the memory resource that is being added.
CapabilitiesThe bit mask of attributes that the memory resource region supports.
Return values
EFI_SUCCESSThe memory resource was added to the global coherency domain of the processor.
EFI_INVALID_PARAMETERGcdMemoryType is invalid.
EFI_INVALID_PARAMETERLength is zero.
EFI_OUT_OF_RESOURCESThere are not enough system resources to add the memory resource to the global coherency domain of the processor.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the memory resource range specified by BaseAddress and Length.
EFI_ACCESS_DENIEDOne or more bytes of the memory resource range specified by BaseAddress and Length conflicts with a memory resource range that was previously added to the global coherency domain of the processor.
EFI_ACCESS_DENIEDOne or more bytes of the memory resource range specified by BaseAddress and Length was allocated in a prior call to AllocateMemorySpace().
typedef EFI_STATUS(EFIAPI * EFI_ALLOCATE_IO_SPACE)(IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType, IN EFI_GCD_IO_TYPE GcdIoType, IN UINTN Alignment, IN UINT64 Length, IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE DeviceHandle)

Allocates nonexistent I/O, reserved I/O, or I/O resources from the global coherency domain of the processor.

Parameters
GcdAllocateTypeThe type of allocation to perform.
GcdIoTypeThe type of I/O resource being allocated.
AlignmentThe log base 2 of the boundary that BaseAddress must be aligned on output.
LengthThe size in bytes of the I/O resource range that is being allocated.
BaseAddressA pointer to a physical address.
ImagehandleThe image handle of the agent that is allocating the I/O resource.
DeviceHandleThe device handle for which the I/O resource is being allocated.
Return values
EFI_SUCCESSThe I/O resource was allocated from the global coherency domain of the processor.
EFI_INVALID_PARAMETERGcdAllocateType is invalid.
EFI_INVALID_PARAMETERGcdIoType is invalid.
EFI_INVALID_PARAMETERLength is zero.
EFI_INVALID_PARAMETERBaseAddress is NULL.
EFI_INVALID_PARAMETERImageHandle is NULL.
EFI_OUT_OF_RESOURCESThere are not enough system resources to allocate the I/O resource from the global coherency domain of the processor.
EFI_NOT_FOUNDThe I/O resource request could not be satisfied.
typedef EFI_STATUS(EFIAPI * EFI_ALLOCATE_MEMORY_SPACE)(IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType, IN EFI_GCD_MEMORY_TYPE GcdMemoryType, IN UINTN Alignment, IN UINT64 Length, IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE DeviceHandle)

Allocates nonexistent memory, reserved memory, system memory, or memorymapped I/O resources from the global coherency domain of the processor.

Parameters
GcdAllocateTypeThe type of allocation to perform.
GcdMemoryTypeThe type of memory resource being allocated.
AlignmentThe log base 2 of the boundary that BaseAddress must be aligned on output. Align with 2^Alignment.
LengthThe size in bytes of the memory resource range that is being allocated.
BaseAddressA pointer to a physical address to allocate.
ImagehandleThe image handle of the agent that is allocating the memory resource.
DeviceHandleThe device handle for which the memory resource is being allocated.
Return values
EFI_INVALID_PARAMETERGcdAllocateType is invalid.
EFI_INVALID_PARAMETERGcdMemoryType is invalid.
EFI_INVALID_PARAMETERLength is zero.
EFI_INVALID_PARAMETERBaseAddress is NULL.
EFI_INVALID_PARAMETERImageHandle is NULL.
EFI_NOT_FOUNDThe memory resource request could not be satisfied. No descriptor contains the desired space.
EFI_OUT_OF_RESOURCESThere are not enough system resources to allocate the memory resource from the global coherency domain of the processor.
EFI_SUCCESSThe memory resource was allocated from the global coherency domain of the processor.
typedef EFI_STATUS(EFIAPI * EFI_DISPATCH)(VOID)

Loads and executed DXE drivers from firmware volumes.

The Dispatch() function searches for DXE drivers in firmware volumes that have been installed since the last time the Dispatch() service was called. It then evaluates the dependency expressions of all the DXE drivers and loads and executes those DXE drivers whose dependency expression evaluate to TRUE. This service must interact with the Security Architectural Protocol to authenticate DXE drivers before they are executed. This process is continued until no more DXE drivers can be executed.

Return values
EFI_SUCCESSOne or more DXE driver were dispatched.
EFI_NOT_FOUNDNo DXE drivers were dispatched.
EFI_ALREADY_STARTEDAn attempt is being made to start the DXE Dispatcher recursively. Thus, no action was taken.

Frees nonexistent I/O, reserved I/O, or I/O resources from the global coherency domain of the processor.

Parameters
BaseAddressThe physical address that is the start address of the I/O resource being freed.
LengthThe size in bytes of the I/O resource range that is being freed.
Return values
EFI_SUCCESSThe I/O resource was freed from the global coherency domain of the processor.
EFI_INVALID_PARAMETERLength is zero.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the I/O resource range specified by BaseAddress and Length.
EFI_NOT_FOUNDThe I/O resource range specified by BaseAddress and Length was not allocated with previous calls to AllocateIoSpace().
EFI_OUT_OF_RESOURCESThere are not enough system resources to free the I/O resource from the global coherency domain of the processor.
typedef EFI_STATUS(EFIAPI * EFI_FREE_MEMORY_SPACE)(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)

Frees nonexistent memory, reserved memory, system memory, or memory-mapped I/O resources from the global coherency domain of the processor.

Parameters
BaseAddressThe physical address that is the start address of the memory resource being freed.
LengthThe size in bytes of the memory resource range that is being freed.
Return values
EFI_SUCCESSThe memory resource was freed from the global coherency domain of the processor.
EFI_INVALID_PARAMETERLength is zero.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the memory resource range specified by BaseAddress and Length.
EFI_NOT_FOUNDThe memory resource range specified by BaseAddress and Length was not allocated with previous calls to AllocateMemorySpace().
EFI_OUT_OF_RESOURCESThere are not enough system resources to free the memory resource from the global coherency domain of the processor.

Retrieves the descriptor for an I/O region containing a specified address.

Parameters
BaseAddressThe physical address that is the start address of an I/O region.
DescriptorA pointer to a caller allocated descriptor.
Return values
EFI_SUCCESSThe descriptor for the I/O resource region containing BaseAddress was returned in Descriptor.
EFI_INVALID_PARAMETERDescriptor is NULL.
EFI_NOT_FOUNDAn I/O resource range containing BaseAddress was not found.
typedef EFI_STATUS(EFIAPI * EFI_GET_IO_SPACE_MAP)(OUT UINTN *NumberOfDescriptors, OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap)

Returns a map of the I/O resources in the global coherency domain of the processor.

Parameters
NumberOfDescriptorsA pointer to number of descriptors returned in the IoSpaceMap buffer.
MemorySpaceMapA pointer to the array of EFI_GCD_IO_SPACE_DESCRIPTORs.
Return values
EFI_SUCCESSThe I/O space map was returned in the IoSpaceMap buffer, and the number of descriptors in IoSpaceMap was returned in NumberOfDescriptors.
EFI_INVALID_PARAMETERNumberOfDescriptors is NULL.
EFI_INVALID_PARAMETERIoSpaceMap is NULL.
EFI_OUT_OF_RESOURCESThere are not enough resources to allocate IoSpaceMap.

Retrieves the descriptor for a memory region containing a specified address.

Parameters
BaseAddressThe physical address that is the start address of a memory region.
DescriptorA pointer to a caller allocated descriptor.
Return values
EFI_SUCCESSThe descriptor for the memory resource region containing BaseAddress was returned in Descriptor.
EFI_INVALID_PARAMETERDescriptor is NULL.
EFI_NOT_FOUNDA memory resource range containing BaseAddress was not found.
typedef EFI_STATUS(EFIAPI * EFI_GET_MEMORY_SPACE_MAP)(OUT UINTN *NumberOfDescriptors, OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap)

Returns a map of the memory resources in the global coherency domain of the processor.

Parameters
NumberOfDescriptorsA pointer to number of descriptors returned in the MemorySpaceMap buffer.
MemorySpaceMapA pointer to the array of EFI_GCD_MEMORY_SPACE_DESCRIPTORs.
Return values
EFI_SUCCESSThe memory space map was returned in the MemorySpaceMap buffer, and the number of descriptors in MemorySpaceMap was returned in NumberOfDescriptors.
EFI_INVALID_PARAMETERNumberOfDescriptors is NULL.
EFI_INVALID_PARAMETERMemorySpaceMap is NULL.
EFI_OUT_OF_RESOURCESThere are not enough resources to allocate MemorySpaceMap.
typedef EFI_STATUS(EFIAPI * EFI_PROCESS_FIRMWARE_VOLUME)(IN CONST VOID *FirmwareVolumeHeader, IN UINTN Size, OUT EFI_HANDLE *FirmwareVolumeHandle)

Creates a firmware volume handle for a firmware volume that is present in system memory.

Parameters
FirmwareVolumeHeaderA pointer to the header of the firmware volume.
SizeThe size, in bytes, of the firmware volume.
FirmwareVolumeHandleOn output, a pointer to the created handle.
Return values
EFI_SUCCESSThe EFI_FIRMWARE_VOLUME_PROTOCOL and EFI_DEVICE_PATH_PROTOCOL were installed onto FirmwareVolumeHandle for the firmware volume described by FirmwareVolumeHeader and Size.
EFI_VOLUME_CORRUPTEDThe firmware volume described by FirmwareVolumeHeader and Size is corrupted.
EFI_OUT_OF_RESOURCESThere are not enough system resources available to produce the EFI_FIRMWARE_VOLUME_PROTOCOL and EFI_DEVICE_PATH_PROTOCOL for the firmware volume described by FirmwareVolumeHeader and Size.
typedef EFI_STATUS(EFIAPI * EFI_REMOVE_IO_SPACE)(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)

Removes reserved I/O or I/O resources from the global coherency domain of the processor.

Parameters
BaseAddressA pointer to a physical address that is the start address of the I/O resource being removed.
LengthThe size in bytes of the I/O resource that is being removed.
Return values
EFI_SUCCESSThe I/O resource was removed from the global coherency domain of the processor.
EFI_INVALID_PARAMETERLength is zero.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the I/O resource range specified by BaseAddress and Length.
EFI_NOT_FOUNDOne or more bytes of the I/O resource range specified by BaseAddress and Length was not added with previous calls to AddIoSpace().
EFI_ACCESS_DENIEDOne or more bytes of the I/O resource range specified by BaseAddress and Length has been allocated with AllocateIoSpace().
EFI_OUT_OF_RESOURCESThere are not enough system resources to remove the I/O resource from the global coherency domain of the processor.
typedef EFI_STATUS(EFIAPI * EFI_REMOVE_MEMORY_SPACE)(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)

Removes reserved memory, system memory, or memory-mapped I/O resources from the global coherency domain of the processor.

Parameters
BaseAddressThe physical address that is the start address of the memory resource being removed.
LengthThe size in bytes of the memory resource that is being removed.
Return values
EFI_SUCCESSThe memory resource was removed from the global coherency domain of the processor.
EFI_INVALID_PARAMETERLength is zero.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the memory resource range specified by BaseAddress and Length.
EFI_NOT_FOUNDOne or more bytes of the memory resource range specified by BaseAddress and Length was not added with previous calls to AddMemorySpace().
EFI_ACCESS_DEFINEDOne or more bytes of the memory resource range specified by BaseAddress and Length has been allocated with AllocateMemorySpace().
EFI_OUT_OF_RESOURCESThere are not enough system resources to remove the memory resource from the global coherency domain of the processor.
typedef EFI_STATUS(EFIAPI * EFI_SCHEDULE)(IN EFI_HANDLE FirmwareVolumeHandle, IN CONST EFI_GUID *FileName)

Clears the Schedule on Request (SOR) flag for a component that is stored in a firmware volume.

Parameters
FirmwareVolumeHandleThe handle of the firmware volume that contains the file specified by FileName.
FileNameA pointer to the name of the file in a firmware volume.
Return values
EFI_SUCCESSThe DXE driver was found and its SOR bit was cleared.
EFI_NOT_FOUNDThe DXE driver does not exist, or the DXE driver exists and its SOR bit is not set.
typedef EFI_STATUS(EFIAPI * EFI_SET_MEMORY_SPACE_ATTRIBUTES)(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Attributes)

Modifies the attributes for a memory region in the global coherency domain of the processor.

Parameters
BaseAddressThe physical address that is the start address of a memory region.
LengthThe size in bytes of the memory region.
AttributesThe bit mask of attributes to set for the memory region.
Return values
EFI_SUCCESSThe attributes were set for the memory region.
EFI_INVALID_PARAMETERLength is zero.
EFI_UNSUPPORTEDThe processor does not support one or more bytes of the memory resource range specified by BaseAddress and Length.
EFI_UNSUPPORTEDThe bit mask of attributes is not support for the memory resource range specified by BaseAddress and Length.
EFI_ACCESS_DENIEDThe attributes for the memory resource range specified by BaseAddress and Length cannot be modified.
EFI_OUT_OF_RESOURCESThere are not enough system resources to modify the attributes of the memory resource range.
EFI_NOT_AVAILABLE_YETThe attributes cannot be set because CPU architectural protocol is not available yet.
typedef EFI_STATUS(EFIAPI * EFI_TRUST)(IN EFI_HANDLE FirmwareVolumeHandle, IN CONST EFI_GUID *FileName)

Promotes a file stored in a firmware volume from the untrusted to the trusted state.

Parameters
FirmwareVolumeHandleThe handle of the firmware volume that contains the file specified by FileName.
DriverNameA pointer to the name of the file in a firmware volume.
Returns
Status of promoting FFS from untrusted to trusted state.
Return values
EFI_NOT_FOUNDThe file was not found in the untrusted state.
typedef IN UINT64 Length

Enumeration Type Documentation

The type of allocation to perform.

Enumerator
EfiGcdAllocateAnySearchBottomUp 

The GCD memory space map is searched from the lowest address up to the highest address looking for unallocated memory ranges.

EfiGcdAllocateMaxAddressSearchBottomUp 

The GCD memory space map is searched from the lowest address up to the specified MaxAddress looking for unallocated memory ranges.

EfiGcdAllocateAddress 

The GCD memory space map is checked to see if the memory range starting at the specified Address is available.

EfiGcdAllocateAnySearchTopDown 

The GCD memory space map is searched from the highest address down to the lowest address looking for unallocated memory ranges.

EfiGcdAllocateMaxAddressSearchTopDown 

The GCD memory space map is searched from the specified MaxAddress down to the lowest address looking for unallocated memory ranges.

EfiGcdMaxAllocateType 

Global Coherencey Domain types - IO type.

Enumerator
EfiGcdIoTypeNonExistent 

An I/O region that is visible to the boot processor. However, there are no system components that are currently decoding this I/O region.

EfiGcdIoTypeReserved 

An I/O region that is visible to the boot processor. This I/O region is currently being decoded by a system component, but the I/O region cannot be used to access I/O devices.

EfiGcdIoTypeIo 

An I/O region that is visible to the boot processor. This I/O region is currently being decoded by a system component that is producing I/O ports that can be used to access I/O devices.

EfiGcdIoTypeMaximum 

Global Coherencey Domain types - Memory type.

Enumerator
EfiGcdMemoryTypeNonExistent 

A memory region that is visible to the boot processor. However, there are no system components that are currently decoding this memory region.

EfiGcdMemoryTypeReserved 

A memory region that is visible to the boot processor. This memory region is being decoded by a system component, but the memory region is not considered to be either system memory or memory-mapped I/O.

EfiGcdMemoryTypeSystemMemory 

A memory region that is visible to the boot processor. A memory controller is currently decoding this memory region and the memory controller is producing a tested system memory region that is available to the memory services.

EfiGcdMemoryTypeMemoryMappedIo 

A memory region that is visible to the boot processor. This memory region is currently being decoded by a component as memory-mapped I/O that can be used to access I/O devices in the platform.

EfiGcdMemoryTypePersistent 

A memory region that is visible to the boot processor. This memory supports byte-addressable non-volatility.

EfiGcdMemoryTypePersistentMemory 
EfiGcdMemoryTypeMoreReliable 

A memory region that provides higher reliability relative to other memory in the system. If all memory has the same reliability, then this bit is not used.

EfiGcdMemoryTypeMaximum 

Function Documentation

typedef EFI_STATUS ( EFIAPI EFI_SET_MEMORY_SPACE_CAPABILITIES)

Modifies the capabilities for a memory region in the global coherency domain of the processor.

Parameters
BaseAddressThe physical address that is the start address of a memory region.
LengthThe size in bytes of the memory region.
CapabilitiesThe bit mask of capabilities that the memory region supports.
Return values
EFI_SUCCESSThe capabilities were set for the memory region.
EFI_INVALID_PARAMETERLength is zero.
EFI_UNSUPPORTEDThe capabilities specified by Capabilities do not include the memory region attributes currently in use.
EFI_ACCESS_DENIEDThe capabilities for the memory resource range specified by BaseAddress and Length cannot be modified.
EFI_OUT_OF_RESOURCESThere are not enough system resources to modify the capabilities of the memory resource range.