@return The number of bytes associated with the number of EFI_PAGEs specified\r
by Pages.\r
**/\r
+STATIC\r
UINT64\r
EfiPagesToSize (\r
IN UINT64 Pages\r
by Size.\r
\r
**/\r
+STATIC\r
UINT64\r
EfiSizeToPages (\r
IN UINT64 Size\r
/**\r
Acquire memory lock on mPropertiesTableLock.\r
**/\r
+STATIC\r
VOID\r
CoreAcquirePropertiesTableLock (\r
VOID\r
/**\r
Release memory lock on mPropertiesTableLock.\r
**/\r
+STATIC\r
VOID\r
CoreReleasePropertiesTableLock (\r
VOID\r
@param MemoryMapSize Size, in bytes, of the MemoryMap buffer.\r
@param DescriptorSize Size, in bytes, of an individual EFI_MEMORY_DESCRIPTOR.\r
**/\r
+STATIC\r
VOID\r
SortMemoryMap (\r
IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,\r
it is the size of new memory map after merge.\r
@param DescriptorSize Size, in bytes, of an individual EFI_MEMORY_DESCRIPTOR.\r
**/\r
+STATIC\r
VOID\r
MergeMemoryMap (\r
IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,\r
@param MemoryMapSize Size, in bytes, of the MemoryMap buffer.\r
@param DescriptorSize Size, in bytes, of an individual EFI_MEMORY_DESCRIPTOR.\r
**/\r
+STATIC\r
VOID\r
EnforceMemoryMapAttribute (\r
IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,\r
\r
@return first image record covered by [buffer, length]\r
**/\r
+STATIC\r
IMAGE_PROPERTIES_RECORD *\r
GetImageRecordByAddress (\r
IN EFI_PHYSICAL_ADDRESS Buffer,\r
@param OldRecord A pointer to one old memory map entry.\r
@param DescriptorSize Size, in bytes, of an individual EFI_MEMORY_DESCRIPTOR.\r
**/\r
+STATIC\r
UINTN\r
SetNewRecord (\r
IN IMAGE_PROPERTIES_RECORD *ImageRecord,\r
@retval 0 no entry need to be splitted.\r
@return the max number of new splitted entries\r
**/\r
+STATIC\r
UINTN\r
GetMaxSplitRecordCount (\r
IN EFI_MEMORY_DESCRIPTOR *OldRecord\r
@retval 0 no entry is splitted.\r
@return the real number of splitted record.\r
**/\r
+STATIC\r
UINTN\r
SplitRecord (\r
IN EFI_MEMORY_DESCRIPTOR *OldRecord,\r
the current memory map.\r
@param DescriptorSize Size, in bytes, of an individual EFI_MEMORY_DESCRIPTOR.\r
**/\r
+STATIC\r
VOID\r
SplitTable (\r
IN OUT UINTN *MemoryMapSize,\r
@retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
CoreGetMemoryMapPropertiesTable (\r
\r
@param SectionAlignment PE/COFF section alignment\r
**/\r
+STATIC\r
VOID\r
SetPropertiesTableSectionAlignment (\r
IN UINT32 SectionAlignment\r
)\r
{\r
- if (((SectionAlignment & (SIZE_4KB - 1)) != 0) &&\r
+ if (((SectionAlignment & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT - 1)) != 0) &&\r
((mPropertiesTable.MemoryProtectionAttribute & EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA) != 0)) {\r
DEBUG ((EFI_D_VERBOSE, "SetPropertiesTableSectionAlignment - Clear\n"));\r
mPropertiesTable.MemoryProtectionAttribute &= ~EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA;\r
@param FirstImageRecordCodeSection first code section in image record\r
@param SecondImageRecordCodeSection second code section in image record\r
**/\r
+STATIC\r
VOID\r
SwapImageRecordCodeSection (\r
IN IMAGE_PROPERTIES_RECORD_CODE_SECTION *FirstImageRecordCodeSection,\r
\r
@param ImageRecord image record to be sorted\r
**/\r
+STATIC\r
VOID\r
SortImageRecordCodeSection (\r
IN IMAGE_PROPERTIES_RECORD *ImageRecord\r
@retval TRUE image record is valid\r
@retval FALSE image record is invalid\r
**/\r
+STATIC\r
BOOLEAN\r
IsImageRecordCodeSectionValid (\r
IN IMAGE_PROPERTIES_RECORD *ImageRecord\r
@param FirstImageRecord first image record.\r
@param SecondImageRecord second image record.\r
**/\r
+STATIC\r
VOID\r
SwapImageRecord (\r
IN IMAGE_PROPERTIES_RECORD *FirstImageRecord,\r
/**\r
Sort image record based upon the ImageBase from low to high.\r
**/\r
+STATIC\r
VOID\r
SortImageRecord (\r
VOID\r
/**\r
Dump image record.\r
**/\r
+STATIC\r
VOID\r
DumpImageRecord (\r
VOID\r
}\r
\r
SetPropertiesTableSectionAlignment (SectionAlignment);\r
- if ((SectionAlignment & (SIZE_4KB - 1)) != 0) {\r
- DEBUG ((EFI_D_ERROR, "!!!!!!!! InsertImageRecord - Section Alignment(0x%x) is not 4K !!!!!!!!\n", SectionAlignment));\r
+ if ((SectionAlignment & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT - 1)) != 0) {\r
+ DEBUG ((EFI_D_ERROR, "!!!!!!!! InsertImageRecord - Section Alignment(0x%x) is not %dK !!!!!!!!\n",\r
+ SectionAlignment, EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT >> 10));\r
PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);\r
if (PdbPointer != NULL) {\r
DEBUG ((EFI_D_ERROR, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer));\r
\r
@return image record\r
**/\r
+STATIC\r
IMAGE_PROPERTIES_RECORD *\r
FindImageRecord (\r
IN EFI_PHYSICAL_ADDRESS ImageBase,\r
VOID *Context\r
)\r
{\r
- if (PcdGetBool (PropertiesTableEnable)) {\r
+ if (PcdGetBool (PcdPropertiesTableEnable)) {\r
EFI_STATUS Status;\r
\r
Status = gBS->InstallConfigurationTable (&gEfiPropertiesTableGuid, &mPropertiesTable);\r