MdePkg PiPeiCis.h: Add FreePages definition

Follow PI 1.6 spec to add FreePages definition and comments for
AllocatePages that will support pre permanent memory page allocation.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Star Zeng 2017-02-23 17:24:18 +08:00
parent 9c6a26d643
commit 9f43484ce9
1 changed files with 27 additions and 0 deletions

View File

@ -452,6 +452,11 @@ EFI_STATUS
The purpose of the service is to publish an interface that allows The purpose of the service is to publish an interface that allows
PEIMs to allocate memory ranges that are managed by the PEI Foundation. PEIMs to allocate memory ranges that are managed by the PEI Foundation.
Prior to InstallPeiMemory() being called, PEI will allocate pages from the heap.
After InstallPeiMemory() is called, PEI will allocate pages within the region
of memory provided by InstallPeiMemory() service in a best-effort fashion.
Location-specific allocations are not managed by the PEI foundation code.
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
@param MemoryType The type of memory to allocate. @param MemoryType The type of memory to allocate.
@param Pages The number of contiguous 4 KB pages to allocate. @param Pages The number of contiguous 4 KB pages to allocate.
@ -474,6 +479,27 @@ EFI_STATUS
OUT EFI_PHYSICAL_ADDRESS *Memory OUT EFI_PHYSICAL_ADDRESS *Memory
); );
/**
Frees memory pages.
@param[in] PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
@param[in] Memory The base physical address of the pages to be freed.
@param[in] Pages The number of contiguous 4 KB pages to free.
@retval EFI_SUCCESS The requested pages were freed.
@retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or Pages is invalid.
@retval EFI_NOT_FOUND The requested memory pages were not allocated with
AllocatePages().
**/
typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FREE_PAGES) (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN EFI_PHYSICAL_ADDRESS Memory,
IN UINTN Pages
);
/** /**
The purpose of this service is to publish an interface that The purpose of this service is to publish an interface that
allows PEIMs to allocate memory ranges that are managed by the PEI Foundation. allows PEIMs to allocate memory ranges that are managed by the PEI Foundation.
@ -929,6 +955,7 @@ struct _EFI_PEI_SERVICES {
EFI_PEI_FFS_FIND_SECTION_DATA3 FindSectionData3; EFI_PEI_FFS_FIND_SECTION_DATA3 FindSectionData3;
EFI_PEI_FFS_GET_FILE_INFO2 FfsGetFileInfo2; EFI_PEI_FFS_GET_FILE_INFO2 FfsGetFileInfo2;
EFI_PEI_RESET2_SYSTEM ResetSystem2; EFI_PEI_RESET2_SYSTEM ResetSystem2;
EFI_PEI_FREE_PAGES FreePages;
}; };