#define PREVIOUS_MEMORY_DESCRIPTOR(MemoryDescriptor, Size) \\r
((EFI_MEMORY_DESCRIPTOR *)((UINT8 *)(MemoryDescriptor) - (Size)))\r
\r
-#define IMAGE_PROPERTIES_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('I','P','P','D')\r
+#define IMAGE_PROPERTIES_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('I','P','P','D')\r
\r
typedef struct {\r
- UINT32 Signature;\r
- UINTN ImageRecordCount;\r
- UINTN CodeSegmentCountMax;\r
- LIST_ENTRY ImageRecordList;\r
+ UINT32 Signature;\r
+ UINTN ImageRecordCount;\r
+ UINTN CodeSegmentCountMax;\r
+ LIST_ENTRY ImageRecordList;\r
} IMAGE_PROPERTIES_PRIVATE_DATA;\r
\r
STATIC IMAGE_PROPERTIES_PRIVATE_DATA mImagePropertiesPrivateData = {\r
INITIALIZE_LIST_HEAD_VARIABLE (mImagePropertiesPrivateData.ImageRecordList)\r
};\r
\r
-STATIC EFI_LOCK mMemoryAttributesTableLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);\r
+STATIC EFI_LOCK mMemoryAttributesTableLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);\r
\r
-BOOLEAN mMemoryAttributesTableEnable = TRUE;\r
-BOOLEAN mMemoryAttributesTableEndOfDxe = FALSE;\r
-EFI_MEMORY_ATTRIBUTES_TABLE *mMemoryAttributesTable = NULL;\r
+BOOLEAN mMemoryAttributesTableEnable = TRUE;\r
+BOOLEAN mMemoryAttributesTableEndOfDxe = FALSE;\r
+EFI_MEMORY_ATTRIBUTES_TABLE *mMemoryAttributesTable = NULL;\r
BOOLEAN mMemoryAttributesTableReadyToBoot = FALSE;\r
\r
/**\r
VOID\r
)\r
{\r
- UINTN MemoryMapSize;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMap;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapStart;\r
- UINTN MapKey;\r
- UINTN DescriptorSize;\r
- UINT32 DescriptorVersion;\r
- UINTN Index;\r
- EFI_STATUS Status;\r
- UINT32 RuntimeEntryCount;\r
- EFI_MEMORY_ATTRIBUTES_TABLE *MemoryAttributesTable;\r
- EFI_MEMORY_DESCRIPTOR *MemoryAttributesEntry;\r
+ UINTN MemoryMapSize;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMap;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapStart;\r
+ UINTN MapKey;\r
+ UINTN DescriptorSize;\r
+ UINT32 DescriptorVersion;\r
+ UINTN Index;\r
+ EFI_STATUS Status;\r
+ UINT32 RuntimeEntryCount;\r
+ EFI_MEMORY_ATTRIBUTES_TABLE *MemoryAttributesTable;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryAttributesEntry;\r
\r
if (gMemoryMapTerminated) {\r
//\r
if (!mMemoryAttributesTableEnable) {\r
DEBUG ((DEBUG_VERBOSE, "Cannot install Memory Attributes Table "));\r
DEBUG ((DEBUG_VERBOSE, "because Runtime Driver Section Alignment is not %dK.\n", RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10));\r
- return ;\r
+ return;\r
}\r
\r
if (mMemoryAttributesTable == NULL) {\r
// before GetMemoryMap below, as InstallConfigurationTable may allocate runtime\r
// memory for the new entry.\r
//\r
- Status = gBS->InstallConfigurationTable (&gEfiMemoryAttributesTableGuid, (VOID *) (UINTN) MAX_ADDRESS);\r
+ Status = gBS->InstallConfigurationTable (&gEfiMemoryAttributesTableGuid, (VOID *)(UINTN)MAX_ADDRESS);\r
ASSERT_EFI_ERROR (Status);\r
}\r
\r
MemoryMapSize = 0;\r
- MemoryMap = NULL;\r
- Status = CoreGetMemoryMapWithSeparatedImageSection (\r
- &MemoryMapSize,\r
- MemoryMap,\r
- &MapKey,\r
- &DescriptorSize,\r
- &DescriptorVersion\r
- );\r
+ MemoryMap = NULL;\r
+ Status = CoreGetMemoryMapWithSeparatedImageSection (\r
+ &MemoryMapSize,\r
+ MemoryMap,\r
+ &MapKey,\r
+ &DescriptorSize,\r
+ &DescriptorVersion\r
+ );\r
ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
\r
do {\r
}\r
} while (Status == EFI_BUFFER_TOO_SMALL);\r
\r
- MemoryMapStart = MemoryMap;\r
+ MemoryMapStart = MemoryMap;\r
RuntimeEntryCount = 0;\r
for (Index = 0; Index < MemoryMapSize/DescriptorSize; Index++) {\r
switch (MemoryMap->Type) {\r
- case EfiRuntimeServicesCode:\r
- case EfiRuntimeServicesData:\r
- RuntimeEntryCount ++;\r
- break;\r
+ case EfiRuntimeServicesCode:\r
+ case EfiRuntimeServicesData:\r
+ RuntimeEntryCount++;\r
+ break;\r
}\r
- MemoryMap = NEXT_MEMORY_DESCRIPTOR(MemoryMap, DescriptorSize);\r
+\r
+ MemoryMap = NEXT_MEMORY_DESCRIPTOR (MemoryMap, DescriptorSize);\r
}\r
\r
//\r
// Allocate MemoryAttributesTable\r
//\r
- MemoryAttributesTable = AllocatePool (sizeof(EFI_MEMORY_ATTRIBUTES_TABLE) + DescriptorSize * RuntimeEntryCount);\r
+ MemoryAttributesTable = AllocatePool (sizeof (EFI_MEMORY_ATTRIBUTES_TABLE) + DescriptorSize * RuntimeEntryCount);\r
ASSERT (MemoryAttributesTable != NULL);\r
MemoryAttributesTable->Version = EFI_MEMORY_ATTRIBUTES_TABLE_VERSION;\r
MemoryAttributesTable->NumberOfEntries = RuntimeEntryCount;\r
DEBUG ((DEBUG_VERBOSE, " NumberOfEntries - 0x%08x\n", MemoryAttributesTable->NumberOfEntries));\r
DEBUG ((DEBUG_VERBOSE, " DescriptorSize - 0x%08x\n", MemoryAttributesTable->DescriptorSize));\r
MemoryAttributesEntry = (EFI_MEMORY_DESCRIPTOR *)(MemoryAttributesTable + 1);\r
- MemoryMap = MemoryMapStart;\r
+ MemoryMap = MemoryMapStart;\r
for (Index = 0; Index < MemoryMapSize/DescriptorSize; Index++) {\r
switch (MemoryMap->Type) {\r
- case EfiRuntimeServicesCode:\r
- case EfiRuntimeServicesData:\r
- CopyMem (MemoryAttributesEntry, MemoryMap, DescriptorSize);\r
- MemoryAttributesEntry->Attribute &= (EFI_MEMORY_RO|EFI_MEMORY_XP|EFI_MEMORY_RUNTIME);\r
- DEBUG ((DEBUG_VERBOSE, "Entry (0x%x)\n", MemoryAttributesEntry));\r
- DEBUG ((DEBUG_VERBOSE, " Type - 0x%x\n", MemoryAttributesEntry->Type));\r
- DEBUG ((DEBUG_VERBOSE, " PhysicalStart - 0x%016lx\n", MemoryAttributesEntry->PhysicalStart));\r
- DEBUG ((DEBUG_VERBOSE, " VirtualStart - 0x%016lx\n", MemoryAttributesEntry->VirtualStart));\r
- DEBUG ((DEBUG_VERBOSE, " NumberOfPages - 0x%016lx\n", MemoryAttributesEntry->NumberOfPages));\r
- DEBUG ((DEBUG_VERBOSE, " Attribute - 0x%016lx\n", MemoryAttributesEntry->Attribute));\r
- MemoryAttributesEntry = NEXT_MEMORY_DESCRIPTOR(MemoryAttributesEntry, DescriptorSize);\r
- break;\r
+ case EfiRuntimeServicesCode:\r
+ case EfiRuntimeServicesData:\r
+ CopyMem (MemoryAttributesEntry, MemoryMap, DescriptorSize);\r
+ MemoryAttributesEntry->Attribute &= (EFI_MEMORY_RO|EFI_MEMORY_XP|EFI_MEMORY_RUNTIME);\r
+ DEBUG ((DEBUG_VERBOSE, "Entry (0x%x)\n", MemoryAttributesEntry));\r
+ DEBUG ((DEBUG_VERBOSE, " Type - 0x%x\n", MemoryAttributesEntry->Type));\r
+ DEBUG ((DEBUG_VERBOSE, " PhysicalStart - 0x%016lx\n", MemoryAttributesEntry->PhysicalStart));\r
+ DEBUG ((DEBUG_VERBOSE, " VirtualStart - 0x%016lx\n", MemoryAttributesEntry->VirtualStart));\r
+ DEBUG ((DEBUG_VERBOSE, " NumberOfPages - 0x%016lx\n", MemoryAttributesEntry->NumberOfPages));\r
+ DEBUG ((DEBUG_VERBOSE, " Attribute - 0x%016lx\n", MemoryAttributesEntry->Attribute));\r
+ MemoryAttributesEntry = NEXT_MEMORY_DESCRIPTOR (MemoryAttributesEntry, DescriptorSize);\r
+ break;\r
}\r
- MemoryMap = NEXT_MEMORY_DESCRIPTOR(MemoryMap, DescriptorSize);\r
+\r
+ MemoryMap = NEXT_MEMORY_DESCRIPTOR (MemoryMap, DescriptorSize);\r
}\r
+\r
MemoryMap = MemoryMapStart;\r
FreePool (MemoryMap);\r
\r
if (mMemoryAttributesTable != NULL) {\r
FreePool (mMemoryAttributesTable);\r
}\r
+\r
mMemoryAttributesTable = MemoryAttributesTable;\r
}\r
\r
**/\r
VOID\r
InstallMemoryAttributesTableOnMemoryAllocation (\r
- IN EFI_MEMORY_TYPE MemoryType\r
+ IN EFI_MEMORY_TYPE MemoryType\r
)\r
{\r
//\r
// Install MemoryAttributesTable after ReadyToBoot on runtime memory allocation.\r
//\r
if (mMemoryAttributesTableReadyToBoot &&\r
- ((MemoryType == EfiRuntimeServicesCode) || (MemoryType == EfiRuntimeServicesData))) {\r
+ ((MemoryType == EfiRuntimeServicesCode) || (MemoryType == EfiRuntimeServicesData)))\r
+ {\r
InstallMemoryAttributesTable ();\r
}\r
}\r
VOID\r
EFIAPI\r
InstallMemoryAttributesTableOnReadyToBoot (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
InstallMemoryAttributesTable ();\r
VOID\r
EFIAPI\r
InstallMemoryAttributesTableOnEndOfDxe (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
mMemoryAttributesTableEndOfDxe = TRUE;\r
&EndOfDxeEvent\r
);\r
ASSERT_EFI_ERROR (Status);\r
- return ;\r
+ return;\r
}\r
\r
//\r
STATIC\r
UINT64\r
EfiPagesToSize (\r
- IN UINT64 Pages\r
+ IN UINT64 Pages\r
)\r
{\r
return LShiftU64 (Pages, EFI_PAGE_SHIFT);\r
STATIC\r
UINT64\r
EfiSizeToPages (\r
- IN UINT64 Size\r
+ IN UINT64 Size\r
)\r
{\r
return RShiftU64 (Size, EFI_PAGE_SHIFT) + ((((UINTN)Size) & EFI_PAGE_MASK) ? 1 : 0);\r
IN UINTN DescriptorSize\r
)\r
{\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
- EFI_MEMORY_DESCRIPTOR *NextMemoryMapEntry;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
- EFI_MEMORY_DESCRIPTOR TempMemoryMap;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *NextMemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
+ EFI_MEMORY_DESCRIPTOR TempMemoryMap;\r
\r
- MemoryMapEntry = MemoryMap;\r
+ MemoryMapEntry = MemoryMap;\r
NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
- MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + MemoryMapSize);\r
+ MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + MemoryMapSize);\r
while (MemoryMapEntry < MemoryMapEnd) {\r
while (NextMemoryMapEntry < MemoryMapEnd) {\r
if (MemoryMapEntry->PhysicalStart > NextMemoryMapEntry->PhysicalStart) {\r
- CopyMem (&TempMemoryMap, MemoryMapEntry, sizeof(EFI_MEMORY_DESCRIPTOR));\r
- CopyMem (MemoryMapEntry, NextMemoryMapEntry, sizeof(EFI_MEMORY_DESCRIPTOR));\r
- CopyMem (NextMemoryMapEntry, &TempMemoryMap, sizeof(EFI_MEMORY_DESCRIPTOR));\r
+ CopyMem (&TempMemoryMap, MemoryMapEntry, sizeof (EFI_MEMORY_DESCRIPTOR));\r
+ CopyMem (MemoryMapEntry, NextMemoryMapEntry, sizeof (EFI_MEMORY_DESCRIPTOR));\r
+ CopyMem (NextMemoryMapEntry, &TempMemoryMap, sizeof (EFI_MEMORY_DESCRIPTOR));\r
}\r
\r
NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (NextMemoryMapEntry, DescriptorSize);\r
}\r
\r
- MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
- NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
+ MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
+ NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
}\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
IN UINTN DescriptorSize\r
)\r
{\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
- UINT64 MemoryBlockLength;\r
- EFI_MEMORY_DESCRIPTOR *NewMemoryMapEntry;\r
- EFI_MEMORY_DESCRIPTOR *NextMemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
+ UINT64 MemoryBlockLength;\r
+ EFI_MEMORY_DESCRIPTOR *NewMemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *NextMemoryMapEntry;\r
\r
- MemoryMapEntry = MemoryMap;\r
+ MemoryMapEntry = MemoryMap;\r
NewMemoryMapEntry = MemoryMap;\r
- MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + *MemoryMapSize);\r
+ MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + *MemoryMapSize);\r
while ((UINTN)MemoryMapEntry < (UINTN)MemoryMapEnd) {\r
- CopyMem (NewMemoryMapEntry, MemoryMapEntry, sizeof(EFI_MEMORY_DESCRIPTOR));\r
+ CopyMem (NewMemoryMapEntry, MemoryMapEntry, sizeof (EFI_MEMORY_DESCRIPTOR));\r
NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
\r
do {\r
MergeGuardPages (NewMemoryMapEntry, NextMemoryMapEntry->PhysicalStart);\r
- MemoryBlockLength = (UINT64) (EfiPagesToSize (NewMemoryMapEntry->NumberOfPages));\r
+ MemoryBlockLength = (UINT64)(EfiPagesToSize (NewMemoryMapEntry->NumberOfPages));\r
if (((UINTN)NextMemoryMapEntry < (UINTN)MemoryMapEnd) &&\r
(NewMemoryMapEntry->Type == NextMemoryMapEntry->Type) &&\r
(NewMemoryMapEntry->Attribute == NextMemoryMapEntry->Attribute) &&\r
- ((NewMemoryMapEntry->PhysicalStart + MemoryBlockLength) == NextMemoryMapEntry->PhysicalStart)) {\r
+ ((NewMemoryMapEntry->PhysicalStart + MemoryBlockLength) == NextMemoryMapEntry->PhysicalStart))\r
+ {\r
NewMemoryMapEntry->NumberOfPages += NextMemoryMapEntry->NumberOfPages;\r
- NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (NextMemoryMapEntry, DescriptorSize);\r
+ NextMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (NextMemoryMapEntry, DescriptorSize);\r
continue;\r
} else {\r
MemoryMapEntry = PREVIOUS_MEMORY_DESCRIPTOR (NextMemoryMapEntry, DescriptorSize);\r
}\r
} while (TRUE);\r
\r
- MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
+ MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
NewMemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (NewMemoryMapEntry, DescriptorSize);\r
}\r
\r
*MemoryMapSize = (UINTN)NewMemoryMapEntry - (UINTN)MemoryMap;\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
IN UINTN DescriptorSize\r
)\r
{\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
\r
MemoryMapEntry = MemoryMap;\r
- MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + MemoryMapSize);\r
+ MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + MemoryMapSize);\r
while ((UINTN)MemoryMapEntry < (UINTN)MemoryMapEnd) {\r
switch (MemoryMapEntry->Type) {\r
- case EfiRuntimeServicesCode:\r
- // do nothing\r
- break;\r
- case EfiRuntimeServicesData:\r
- case EfiMemoryMappedIO:\r
- case EfiMemoryMappedIOPortSpace:\r
- MemoryMapEntry->Attribute |= EFI_MEMORY_XP;\r
- break;\r
- case EfiReservedMemoryType:\r
- case EfiACPIMemoryNVS:\r
- break;\r
+ case EfiRuntimeServicesCode:\r
+ // do nothing\r
+ break;\r
+ case EfiRuntimeServicesData:\r
+ case EfiMemoryMappedIO:\r
+ case EfiMemoryMappedIOPortSpace:\r
+ MemoryMapEntry->Attribute |= EFI_MEMORY_XP;\r
+ break;\r
+ case EfiReservedMemoryType:\r
+ case EfiACPIMemoryNVS:\r
+ break;\r
}\r
\r
MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
}\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
IN UINT64 Length\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- LIST_ENTRY *ImageRecordLink;\r
- LIST_ENTRY *ImageRecordList;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ LIST_ENTRY *ImageRecordLink;\r
+ LIST_ENTRY *ImageRecordList;\r
\r
ImageRecordList = &mImagePropertiesPrivateData.ImageRecordList;\r
\r
for (ImageRecordLink = ImageRecordList->ForwardLink;\r
ImageRecordLink != ImageRecordList;\r
- ImageRecordLink = ImageRecordLink->ForwardLink) {\r
+ ImageRecordLink = ImageRecordLink->ForwardLink)\r
+ {\r
ImageRecord = CR (\r
ImageRecordLink,\r
IMAGE_PROPERTIES_RECORD,\r
);\r
\r
if ((Buffer <= ImageRecord->ImageBase) &&\r
- (Buffer + Length >= ImageRecord->ImageBase + ImageRecord->ImageSize)) {\r
+ (Buffer + Length >= ImageRecord->ImageBase + ImageRecord->ImageSize))\r
+ {\r
return ImageRecord;\r
}\r
}\r
STATIC\r
UINTN\r
SetNewRecord (\r
- IN IMAGE_PROPERTIES_RECORD *ImageRecord,\r
- IN OUT EFI_MEMORY_DESCRIPTOR *NewRecord,\r
- IN EFI_MEMORY_DESCRIPTOR *OldRecord,\r
- IN UINTN DescriptorSize\r
+ IN IMAGE_PROPERTIES_RECORD *ImageRecord,\r
+ IN OUT EFI_MEMORY_DESCRIPTOR *NewRecord,\r
+ IN EFI_MEMORY_DESCRIPTOR *OldRecord,\r
+ IN UINTN DescriptorSize\r
)\r
{\r
- EFI_MEMORY_DESCRIPTOR TempRecord;\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
- LIST_ENTRY *ImageRecordCodeSectionLink;\r
- LIST_ENTRY *ImageRecordCodeSectionEndLink;\r
- LIST_ENTRY *ImageRecordCodeSectionList;\r
- UINTN NewRecordCount;\r
- UINT64 PhysicalEnd;\r
- UINT64 ImageEnd;\r
-\r
- CopyMem (&TempRecord, OldRecord, sizeof(EFI_MEMORY_DESCRIPTOR));\r
- PhysicalEnd = TempRecord.PhysicalStart + EfiPagesToSize(TempRecord.NumberOfPages);\r
+ EFI_MEMORY_DESCRIPTOR TempRecord;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
+ LIST_ENTRY *ImageRecordCodeSectionLink;\r
+ LIST_ENTRY *ImageRecordCodeSectionEndLink;\r
+ LIST_ENTRY *ImageRecordCodeSectionList;\r
+ UINTN NewRecordCount;\r
+ UINT64 PhysicalEnd;\r
+ UINT64 ImageEnd;\r
+\r
+ CopyMem (&TempRecord, OldRecord, sizeof (EFI_MEMORY_DESCRIPTOR));\r
+ PhysicalEnd = TempRecord.PhysicalStart + EfiPagesToSize (TempRecord.NumberOfPages);\r
NewRecordCount = 0;\r
\r
ImageRecordCodeSectionList = &ImageRecord->CodeSegmentList;\r
\r
- ImageRecordCodeSectionLink = ImageRecordCodeSectionList->ForwardLink;\r
+ ImageRecordCodeSectionLink = ImageRecordCodeSectionList->ForwardLink;\r
ImageRecordCodeSectionEndLink = ImageRecordCodeSectionList;\r
while (ImageRecordCodeSectionLink != ImageRecordCodeSectionEndLink) {\r
ImageRecordCodeSection = CR (\r
NewRecord->Type = TempRecord.Type;\r
NewRecord->PhysicalStart = TempRecord.PhysicalStart;\r
NewRecord->VirtualStart = 0;\r
- NewRecord->NumberOfPages = EfiSizeToPages(ImageRecordCodeSection->CodeSegmentBase - NewRecord->PhysicalStart);\r
+ NewRecord->NumberOfPages = EfiSizeToPages (ImageRecordCodeSection->CodeSegmentBase - NewRecord->PhysicalStart);\r
NewRecord->Attribute = TempRecord.Attribute | EFI_MEMORY_XP;\r
if (NewRecord->NumberOfPages != 0) {\r
NewRecord = NEXT_MEMORY_DESCRIPTOR (NewRecord, DescriptorSize);\r
- NewRecordCount ++;\r
+ NewRecordCount++;\r
}\r
\r
//\r
NewRecord->Type = TempRecord.Type;\r
NewRecord->PhysicalStart = ImageRecordCodeSection->CodeSegmentBase;\r
NewRecord->VirtualStart = 0;\r
- NewRecord->NumberOfPages = EfiSizeToPages(ImageRecordCodeSection->CodeSegmentSize);\r
+ NewRecord->NumberOfPages = EfiSizeToPages (ImageRecordCodeSection->CodeSegmentSize);\r
NewRecord->Attribute = (TempRecord.Attribute & (~EFI_MEMORY_XP)) | EFI_MEMORY_RO;\r
if (NewRecord->NumberOfPages != 0) {\r
NewRecord = NEXT_MEMORY_DESCRIPTOR (NewRecord, DescriptorSize);\r
- NewRecordCount ++;\r
+ NewRecordCount++;\r
}\r
\r
- TempRecord.PhysicalStart = ImageRecordCodeSection->CodeSegmentBase + EfiPagesToSize (EfiSizeToPages(ImageRecordCodeSection->CodeSegmentSize));\r
- TempRecord.NumberOfPages = EfiSizeToPages(PhysicalEnd - TempRecord.PhysicalStart);\r
+ TempRecord.PhysicalStart = ImageRecordCodeSection->CodeSegmentBase + EfiPagesToSize (EfiSizeToPages (ImageRecordCodeSection->CodeSegmentSize));\r
+ TempRecord.NumberOfPages = EfiSizeToPages (PhysicalEnd - TempRecord.PhysicalStart);\r
if (TempRecord.NumberOfPages == 0) {\r
break;\r
}\r
NewRecord->VirtualStart = 0;\r
NewRecord->NumberOfPages = EfiSizeToPages (ImageEnd - TempRecord.PhysicalStart);\r
NewRecord->Attribute = TempRecord.Attribute | EFI_MEMORY_XP;\r
- NewRecordCount ++;\r
+ NewRecordCount++;\r
}\r
\r
return NewRecordCount;\r
STATIC\r
UINTN\r
GetMaxSplitRecordCount (\r
- IN EFI_MEMORY_DESCRIPTOR *OldRecord\r
+ IN EFI_MEMORY_DESCRIPTOR *OldRecord\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- UINTN SplitRecordCount;\r
- UINT64 PhysicalStart;\r
- UINT64 PhysicalEnd;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ UINTN SplitRecordCount;\r
+ UINT64 PhysicalStart;\r
+ UINT64 PhysicalEnd;\r
\r
SplitRecordCount = 0;\r
- PhysicalStart = OldRecord->PhysicalStart;\r
- PhysicalEnd = OldRecord->PhysicalStart + EfiPagesToSize(OldRecord->NumberOfPages);\r
+ PhysicalStart = OldRecord->PhysicalStart;\r
+ PhysicalEnd = OldRecord->PhysicalStart + EfiPagesToSize (OldRecord->NumberOfPages);\r
\r
do {\r
ImageRecord = GetImageRecordByAddress (PhysicalStart, PhysicalEnd - PhysicalStart);\r
if (ImageRecord == NULL) {\r
break;\r
}\r
+\r
SplitRecordCount += (2 * ImageRecord->CodeSegmentCount + 1);\r
- PhysicalStart = ImageRecord->ImageBase + ImageRecord->ImageSize;\r
+ PhysicalStart = ImageRecord->ImageBase + ImageRecord->ImageSize;\r
} while ((ImageRecord != NULL) && (PhysicalStart < PhysicalEnd));\r
\r
if (SplitRecordCount != 0) {\r
STATIC\r
UINTN\r
SplitRecord (\r
- IN EFI_MEMORY_DESCRIPTOR *OldRecord,\r
- IN OUT EFI_MEMORY_DESCRIPTOR *NewRecord,\r
- IN UINTN MaxSplitRecordCount,\r
- IN UINTN DescriptorSize\r
+ IN EFI_MEMORY_DESCRIPTOR *OldRecord,\r
+ IN OUT EFI_MEMORY_DESCRIPTOR *NewRecord,\r
+ IN UINTN MaxSplitRecordCount,\r
+ IN UINTN DescriptorSize\r
)\r
{\r
- EFI_MEMORY_DESCRIPTOR TempRecord;\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- IMAGE_PROPERTIES_RECORD *NewImageRecord;\r
- UINT64 PhysicalStart;\r
- UINT64 PhysicalEnd;\r
- UINTN NewRecordCount;\r
- UINTN TotalNewRecordCount;\r
- BOOLEAN IsLastRecordData;\r
+ EFI_MEMORY_DESCRIPTOR TempRecord;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ IMAGE_PROPERTIES_RECORD *NewImageRecord;\r
+ UINT64 PhysicalStart;\r
+ UINT64 PhysicalEnd;\r
+ UINTN NewRecordCount;\r
+ UINTN TotalNewRecordCount;\r
+ BOOLEAN IsLastRecordData;\r
\r
if (MaxSplitRecordCount == 0) {\r
CopyMem (NewRecord, OldRecord, DescriptorSize);\r
//\r
// Override previous record\r
//\r
- CopyMem (&TempRecord, OldRecord, sizeof(EFI_MEMORY_DESCRIPTOR));\r
+ CopyMem (&TempRecord, OldRecord, sizeof (EFI_MEMORY_DESCRIPTOR));\r
PhysicalStart = TempRecord.PhysicalStart;\r
- PhysicalEnd = TempRecord.PhysicalStart + EfiPagesToSize(TempRecord.NumberOfPages);\r
+ PhysicalEnd = TempRecord.PhysicalStart + EfiPagesToSize (TempRecord.NumberOfPages);\r
\r
ImageRecord = NULL;\r
do {\r
//\r
// If this is still address in this record, need record.\r
//\r
- NewRecord = PREVIOUS_MEMORY_DESCRIPTOR (NewRecord, DescriptorSize);\r
+ NewRecord = PREVIOUS_MEMORY_DESCRIPTOR (NewRecord, DescriptorSize);\r
IsLastRecordData = FALSE;\r
if ((NewRecord->Attribute & EFI_MEMORY_XP) != 0) {\r
IsLastRecordData = TRUE;\r
}\r
+\r
if (IsLastRecordData) {\r
//\r
// Last record is DATA, just merge it.\r
//\r
- NewRecord->NumberOfPages = EfiSizeToPages(PhysicalEnd - NewRecord->PhysicalStart);\r
+ NewRecord->NumberOfPages = EfiSizeToPages (PhysicalEnd - NewRecord->PhysicalStart);\r
} else {\r
//\r
// Last record is CODE, create a new DATA entry.\r
//\r
- NewRecord = NEXT_MEMORY_DESCRIPTOR (NewRecord, DescriptorSize);\r
+ NewRecord = NEXT_MEMORY_DESCRIPTOR (NewRecord, DescriptorSize);\r
NewRecord->Type = TempRecord.Type;\r
NewRecord->PhysicalStart = TempRecord.PhysicalStart;\r
NewRecord->VirtualStart = 0;\r
NewRecord->NumberOfPages = TempRecord.NumberOfPages;\r
NewRecord->Attribute = TempRecord.Attribute | EFI_MEMORY_XP;\r
- TotalNewRecordCount ++;\r
+ TotalNewRecordCount++;\r
}\r
}\r
+\r
break;\r
}\r
+\r
ImageRecord = NewImageRecord;\r
\r
//\r
// Set new record\r
//\r
- NewRecordCount = SetNewRecord (ImageRecord, NewRecord, &TempRecord, DescriptorSize);\r
+ NewRecordCount = SetNewRecord (ImageRecord, NewRecord, &TempRecord, DescriptorSize);\r
TotalNewRecordCount += NewRecordCount;\r
- NewRecord = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)NewRecord + NewRecordCount * DescriptorSize);\r
+ NewRecord = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)NewRecord + NewRecordCount * DescriptorSize);\r
\r
//\r
// Update PhysicalStart, in order to exclude the image buffer already splitted.\r
//\r
- PhysicalStart = ImageRecord->ImageBase + ImageRecord->ImageSize;\r
+ PhysicalStart = ImageRecord->ImageBase + ImageRecord->ImageSize;\r
TempRecord.PhysicalStart = PhysicalStart;\r
TempRecord.NumberOfPages = EfiSizeToPages (PhysicalEnd - PhysicalStart);\r
} while ((ImageRecord != NULL) && (PhysicalStart < PhysicalEnd));\r
IN UINTN DescriptorSize\r
)\r
{\r
- INTN IndexOld;\r
- INTN IndexNew;\r
- UINTN MaxSplitRecordCount;\r
- UINTN RealSplitRecordCount;\r
- UINTN TotalSplitRecordCount;\r
- UINTN AdditionalRecordCount;\r
+ INTN IndexOld;\r
+ INTN IndexNew;\r
+ UINTN MaxSplitRecordCount;\r
+ UINTN RealSplitRecordCount;\r
+ UINTN TotalSplitRecordCount;\r
+ UINTN AdditionalRecordCount;\r
\r
AdditionalRecordCount = (2 * mImagePropertiesPrivateData.CodeSegmentCountMax + 1) * mImagePropertiesPrivateData.ImageRecordCount;\r
\r
// Let new record point to end of full MemoryMap buffer.\r
//\r
IndexNew = ((*MemoryMapSize) / DescriptorSize) - 1 + AdditionalRecordCount;\r
- for (; IndexOld >= 0; IndexOld--) {\r
+ for ( ; IndexOld >= 0; IndexOld--) {\r
MaxSplitRecordCount = GetMaxSplitRecordCount ((EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + IndexOld * DescriptorSize));\r
//\r
// Split this MemoryMap record\r
//\r
- IndexNew -= MaxSplitRecordCount;\r
+ IndexNew -= MaxSplitRecordCount;\r
RealSplitRecordCount = SplitRecord (\r
(EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + IndexOld * DescriptorSize),\r
(EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + IndexNew * DescriptorSize),\r
((UINT8 *)MemoryMap + IndexNew * DescriptorSize),\r
RealSplitRecordCount * DescriptorSize\r
);\r
- IndexNew = IndexNew + MaxSplitRecordCount - RealSplitRecordCount;\r
+ IndexNew = IndexNew + MaxSplitRecordCount - RealSplitRecordCount;\r
TotalSplitRecordCount += RealSplitRecordCount;\r
- IndexNew --;\r
+ IndexNew--;\r
}\r
+\r
//\r
// Move all records to the beginning.\r
//\r
//\r
MergeMemoryMap (MemoryMap, MemoryMapSize, DescriptorSize);\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
AdditionalRecordCount = (2 * mImagePropertiesPrivateData.CodeSegmentCountMax + 1) * mImagePropertiesPrivateData.ImageRecordCount;\r
\r
OldMemoryMapSize = *MemoryMapSize;\r
- Status = CoreGetMemoryMap (MemoryMapSize, MemoryMap, MapKey, DescriptorSize, DescriptorVersion);\r
+ Status = CoreGetMemoryMap (MemoryMapSize, MemoryMap, MapKey, DescriptorSize, DescriptorVersion);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
*MemoryMapSize = *MemoryMapSize + (*DescriptorSize) * AdditionalRecordCount;\r
} else if (Status == EFI_SUCCESS) {\r
)\r
{\r
if (((SectionAlignment & (RUNTIME_PAGE_ALLOCATION_GRANULARITY - 1)) != 0) &&\r
- mMemoryAttributesTableEnable) {\r
+ mMemoryAttributesTableEnable)\r
+ {\r
DEBUG ((DEBUG_VERBOSE, "SetMemoryAttributesTableSectionAlignment - Clear\n"));\r
mMemoryAttributesTableEnable = FALSE;\r
}\r
STATIC\r
VOID\r
SwapImageRecordCodeSection (\r
- IN IMAGE_PROPERTIES_RECORD_CODE_SECTION *FirstImageRecordCodeSection,\r
- IN IMAGE_PROPERTIES_RECORD_CODE_SECTION *SecondImageRecordCodeSection\r
+ IN IMAGE_PROPERTIES_RECORD_CODE_SECTION *FirstImageRecordCodeSection,\r
+ IN IMAGE_PROPERTIES_RECORD_CODE_SECTION *SecondImageRecordCodeSection\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION TempImageRecordCodeSection;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION TempImageRecordCodeSection;\r
\r
TempImageRecordCodeSection.CodeSegmentBase = FirstImageRecordCodeSection->CodeSegmentBase;\r
TempImageRecordCodeSection.CodeSegmentSize = FirstImageRecordCodeSection->CodeSegmentSize;\r
**/\r
VOID\r
SortImageRecordCodeSection (\r
- IN IMAGE_PROPERTIES_RECORD *ImageRecord\r
+ IN IMAGE_PROPERTIES_RECORD *ImageRecord\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *NextImageRecordCodeSection;\r
- LIST_ENTRY *ImageRecordCodeSectionLink;\r
- LIST_ENTRY *NextImageRecordCodeSectionLink;\r
- LIST_ENTRY *ImageRecordCodeSectionEndLink;\r
- LIST_ENTRY *ImageRecordCodeSectionList;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *NextImageRecordCodeSection;\r
+ LIST_ENTRY *ImageRecordCodeSectionLink;\r
+ LIST_ENTRY *NextImageRecordCodeSectionLink;\r
+ LIST_ENTRY *ImageRecordCodeSectionEndLink;\r
+ LIST_ENTRY *ImageRecordCodeSectionList;\r
\r
ImageRecordCodeSectionList = &ImageRecord->CodeSegmentList;\r
\r
- ImageRecordCodeSectionLink = ImageRecordCodeSectionList->ForwardLink;\r
+ ImageRecordCodeSectionLink = ImageRecordCodeSectionList->ForwardLink;\r
NextImageRecordCodeSectionLink = ImageRecordCodeSectionLink->ForwardLink;\r
- ImageRecordCodeSectionEndLink = ImageRecordCodeSectionList;\r
+ ImageRecordCodeSectionEndLink = ImageRecordCodeSectionList;\r
while (ImageRecordCodeSectionLink != ImageRecordCodeSectionEndLink) {\r
ImageRecordCodeSection = CR (\r
ImageRecordCodeSectionLink,\r
if (ImageRecordCodeSection->CodeSegmentBase > NextImageRecordCodeSection->CodeSegmentBase) {\r
SwapImageRecordCodeSection (ImageRecordCodeSection, NextImageRecordCodeSection);\r
}\r
+\r
NextImageRecordCodeSectionLink = NextImageRecordCodeSectionLink->ForwardLink;\r
}\r
\r
- ImageRecordCodeSectionLink = ImageRecordCodeSectionLink->ForwardLink;\r
+ ImageRecordCodeSectionLink = ImageRecordCodeSectionLink->ForwardLink;\r
NextImageRecordCodeSectionLink = ImageRecordCodeSectionLink->ForwardLink;\r
}\r
}\r
**/\r
BOOLEAN\r
IsImageRecordCodeSectionValid (\r
- IN IMAGE_PROPERTIES_RECORD *ImageRecord\r
+ IN IMAGE_PROPERTIES_RECORD *ImageRecord\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *LastImageRecordCodeSection;\r
- LIST_ENTRY *ImageRecordCodeSectionLink;\r
- LIST_ENTRY *ImageRecordCodeSectionEndLink;\r
- LIST_ENTRY *ImageRecordCodeSectionList;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *LastImageRecordCodeSection;\r
+ LIST_ENTRY *ImageRecordCodeSectionLink;\r
+ LIST_ENTRY *ImageRecordCodeSectionEndLink;\r
+ LIST_ENTRY *ImageRecordCodeSectionList;\r
\r
DEBUG ((DEBUG_VERBOSE, "ImageCode SegmentCount - 0x%x\n", ImageRecord->CodeSegmentCount));\r
\r
ImageRecordCodeSectionList = &ImageRecord->CodeSegmentList;\r
\r
- ImageRecordCodeSectionLink = ImageRecordCodeSectionList->ForwardLink;\r
+ ImageRecordCodeSectionLink = ImageRecordCodeSectionList->ForwardLink;\r
ImageRecordCodeSectionEndLink = ImageRecordCodeSectionList;\r
- LastImageRecordCodeSection = NULL;\r
+ LastImageRecordCodeSection = NULL;\r
while (ImageRecordCodeSectionLink != ImageRecordCodeSectionEndLink) {\r
ImageRecordCodeSection = CR (\r
ImageRecordCodeSectionLink,\r
if (ImageRecordCodeSection->CodeSegmentSize == 0) {\r
return FALSE;\r
}\r
+\r
if (ImageRecordCodeSection->CodeSegmentBase < ImageRecord->ImageBase) {\r
return FALSE;\r
}\r
+\r
if (ImageRecordCodeSection->CodeSegmentBase >= MAX_ADDRESS - ImageRecordCodeSection->CodeSegmentSize) {\r
return FALSE;\r
}\r
+\r
if ((ImageRecordCodeSection->CodeSegmentBase + ImageRecordCodeSection->CodeSegmentSize) > (ImageRecord->ImageBase + ImageRecord->ImageSize)) {\r
return FALSE;\r
}\r
+\r
if (LastImageRecordCodeSection != NULL) {\r
if ((LastImageRecordCodeSection->CodeSegmentBase + LastImageRecordCodeSection->CodeSegmentSize) > ImageRecordCodeSection->CodeSegmentBase) {\r
return FALSE;\r
STATIC\r
VOID\r
SwapImageRecord (\r
- IN IMAGE_PROPERTIES_RECORD *FirstImageRecord,\r
- IN IMAGE_PROPERTIES_RECORD *SecondImageRecord\r
+ IN IMAGE_PROPERTIES_RECORD *FirstImageRecord,\r
+ IN IMAGE_PROPERTIES_RECORD *SecondImageRecord\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD TempImageRecord;\r
+ IMAGE_PROPERTIES_RECORD TempImageRecord;\r
\r
- TempImageRecord.ImageBase = FirstImageRecord->ImageBase;\r
- TempImageRecord.ImageSize = FirstImageRecord->ImageSize;\r
+ TempImageRecord.ImageBase = FirstImageRecord->ImageBase;\r
+ TempImageRecord.ImageSize = FirstImageRecord->ImageSize;\r
TempImageRecord.CodeSegmentCount = FirstImageRecord->CodeSegmentCount;\r
\r
- FirstImageRecord->ImageBase = SecondImageRecord->ImageBase;\r
- FirstImageRecord->ImageSize = SecondImageRecord->ImageSize;\r
+ FirstImageRecord->ImageBase = SecondImageRecord->ImageBase;\r
+ FirstImageRecord->ImageSize = SecondImageRecord->ImageSize;\r
FirstImageRecord->CodeSegmentCount = SecondImageRecord->CodeSegmentCount;\r
\r
- SecondImageRecord->ImageBase = TempImageRecord.ImageBase;\r
- SecondImageRecord->ImageSize = TempImageRecord.ImageSize;\r
+ SecondImageRecord->ImageBase = TempImageRecord.ImageBase;\r
+ SecondImageRecord->ImageSize = TempImageRecord.ImageSize;\r
SecondImageRecord->CodeSegmentCount = TempImageRecord.CodeSegmentCount;\r
\r
SwapListEntries (&FirstImageRecord->CodeSegmentList, &SecondImageRecord->CodeSegmentList);\r
VOID\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- IMAGE_PROPERTIES_RECORD *NextImageRecord;\r
- LIST_ENTRY *ImageRecordLink;\r
- LIST_ENTRY *NextImageRecordLink;\r
- LIST_ENTRY *ImageRecordEndLink;\r
- LIST_ENTRY *ImageRecordList;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ IMAGE_PROPERTIES_RECORD *NextImageRecord;\r
+ LIST_ENTRY *ImageRecordLink;\r
+ LIST_ENTRY *NextImageRecordLink;\r
+ LIST_ENTRY *ImageRecordEndLink;\r
+ LIST_ENTRY *ImageRecordList;\r
\r
ImageRecordList = &mImagePropertiesPrivateData.ImageRecordList;\r
\r
- ImageRecordLink = ImageRecordList->ForwardLink;\r
+ ImageRecordLink = ImageRecordList->ForwardLink;\r
NextImageRecordLink = ImageRecordLink->ForwardLink;\r
- ImageRecordEndLink = ImageRecordList;\r
+ ImageRecordEndLink = ImageRecordList;\r
while (ImageRecordLink != ImageRecordEndLink) {\r
ImageRecord = CR (\r
ImageRecordLink,\r
if (ImageRecord->ImageBase > NextImageRecord->ImageBase) {\r
SwapImageRecord (ImageRecord, NextImageRecord);\r
}\r
+\r
NextImageRecordLink = NextImageRecordLink->ForwardLink;\r
}\r
\r
- ImageRecordLink = ImageRecordLink->ForwardLink;\r
+ ImageRecordLink = ImageRecordLink->ForwardLink;\r
NextImageRecordLink = ImageRecordLink->ForwardLink;\r
}\r
}\r
IN EFI_RUNTIME_IMAGE_ENTRY *RuntimeImage\r
)\r
{\r
- VOID *ImageAddress;\r
- EFI_IMAGE_DOS_HEADER *DosHdr;\r
- UINT32 PeCoffHeaderOffset;\r
- UINT32 SectionAlignment;\r
- EFI_IMAGE_SECTION_HEADER *Section;\r
- EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION Hdr;\r
- UINT8 *Name;\r
- UINTN Index;\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- CHAR8 *PdbPointer;\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
+ VOID *ImageAddress;\r
+ EFI_IMAGE_DOS_HEADER *DosHdr;\r
+ UINT32 PeCoffHeaderOffset;\r
+ UINT32 SectionAlignment;\r
+ EFI_IMAGE_SECTION_HEADER *Section;\r
+ EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION Hdr;\r
+ UINT8 *Name;\r
+ UINTN Index;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ CHAR8 *PdbPointer;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
\r
DEBUG ((DEBUG_VERBOSE, "InsertImageRecord - 0x%x\n", RuntimeImage));\r
DEBUG ((DEBUG_VERBOSE, "InsertImageRecord - 0x%016lx - 0x%016lx\n", (EFI_PHYSICAL_ADDRESS)(UINTN)RuntimeImage->ImageBase, RuntimeImage->ImageSize));\r
\r
if (mMemoryAttributesTableEndOfDxe) {\r
DEBUG ((DEBUG_INFO, "Do not insert runtime image record after EndOfDxe\n"));\r
- return ;\r
+ return;\r
}\r
\r
- ImageRecord = AllocatePool (sizeof(*ImageRecord));\r
+ ImageRecord = AllocatePool (sizeof (*ImageRecord));\r
if (ImageRecord == NULL) {\r
- return ;\r
+ return;\r
}\r
+\r
ImageRecord->Signature = IMAGE_PROPERTIES_RECORD_SIGNATURE;\r
\r
DEBUG ((DEBUG_VERBOSE, "ImageRecordCount - 0x%x\n", mImagePropertiesPrivateData.ImageRecordCount));\r
\r
ImageAddress = RuntimeImage->ImageBase;\r
\r
- PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);\r
+ PdbPointer = PeCoffLoaderGetPdbPointer ((VOID *)(UINTN)ImageAddress);\r
if (PdbPointer != NULL) {\r
DEBUG ((DEBUG_VERBOSE, " Image - %a\n", PdbPointer));\r
}\r
//\r
// Check PE/COFF image\r
//\r
- DosHdr = (EFI_IMAGE_DOS_HEADER *) (UINTN) ImageAddress;\r
+ DosHdr = (EFI_IMAGE_DOS_HEADER *)(UINTN)ImageAddress;\r
PeCoffHeaderOffset = 0;\r
if (DosHdr->e_magic == EFI_IMAGE_DOS_SIGNATURE) {\r
PeCoffHeaderOffset = DosHdr->e_lfanew;\r
}\r
\r
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINT8 *) (UINTN) ImageAddress + PeCoffHeaderOffset);\r
+ Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINT8 *)(UINTN)ImageAddress + PeCoffHeaderOffset);\r
if (Hdr.Pe32->Signature != EFI_IMAGE_NT_SIGNATURE) {\r
DEBUG ((DEBUG_VERBOSE, "Hdr.Pe32->Signature invalid - 0x%x\n", Hdr.Pe32->Signature));\r
// It might be image in SMM.\r
// Get SectionAlignment\r
//\r
if (Hdr.Pe32->OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {\r
- SectionAlignment = Hdr.Pe32->OptionalHeader.SectionAlignment;\r
+ SectionAlignment = Hdr.Pe32->OptionalHeader.SectionAlignment;\r
} else {\r
- SectionAlignment = Hdr.Pe32Plus->OptionalHeader.SectionAlignment;\r
+ SectionAlignment = Hdr.Pe32Plus->OptionalHeader.SectionAlignment;\r
}\r
\r
SetMemoryAttributesTableSectionAlignment (SectionAlignment);\r
if ((SectionAlignment & (RUNTIME_PAGE_ALLOCATION_GRANULARITY - 1)) != 0) {\r
- DEBUG ((DEBUG_WARN, "!!!!!!!! InsertImageRecord - Section Alignment(0x%x) is not %dK !!!!!!!!\n",\r
- SectionAlignment, RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10));\r
- PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);\r
+ DEBUG ((\r
+ DEBUG_WARN,\r
+ "!!!!!!!! InsertImageRecord - Section Alignment(0x%x) is not %dK !!!!!!!!\n",\r
+ SectionAlignment,\r
+ RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10\r
+ ));\r
+ PdbPointer = PeCoffLoaderGetPdbPointer ((VOID *)(UINTN)ImageAddress);\r
if (PdbPointer != NULL) {\r
DEBUG ((DEBUG_WARN, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer));\r
}\r
+\r
goto Finish;\r
}\r
\r
- Section = (EFI_IMAGE_SECTION_HEADER *) (\r
- (UINT8 *) (UINTN) ImageAddress +\r
- PeCoffHeaderOffset +\r
- sizeof(UINT32) +\r
- sizeof(EFI_IMAGE_FILE_HEADER) +\r
- Hdr.Pe32->FileHeader.SizeOfOptionalHeader\r
- );\r
+ Section = (EFI_IMAGE_SECTION_HEADER *)(\r
+ (UINT8 *)(UINTN)ImageAddress +\r
+ PeCoffHeaderOffset +\r
+ sizeof (UINT32) +\r
+ sizeof (EFI_IMAGE_FILE_HEADER) +\r
+ Hdr.Pe32->FileHeader.SizeOfOptionalHeader\r
+ );\r
ImageRecord->CodeSegmentCount = 0;\r
InitializeListHead (&ImageRecord->CodeSegmentList);\r
for (Index = 0; Index < Hdr.Pe32->FileHeader.NumberOfSections; Index++) {\r
//\r
// Step 2: record code section\r
//\r
- ImageRecordCodeSection = AllocatePool (sizeof(*ImageRecordCodeSection));\r
+ ImageRecordCodeSection = AllocatePool (sizeof (*ImageRecordCodeSection));\r
if (ImageRecordCodeSection == NULL) {\r
- return ;\r
+ return;\r
}\r
+\r
ImageRecordCodeSection->Signature = IMAGE_PROPERTIES_RECORD_CODE_SECTION_SIGNATURE;\r
\r
ImageRecordCodeSection->CodeSegmentBase = (UINTN)ImageAddress + Section[Index].VirtualAddress;\r
if (ImageRecord->CodeSegmentCount == 0) {\r
SetMemoryAttributesTableSectionAlignment (1);\r
DEBUG ((DEBUG_ERROR, "!!!!!!!! InsertImageRecord - CodeSegmentCount is 0 !!!!!!!!\n"));\r
- PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);\r
+ PdbPointer = PeCoffLoaderGetPdbPointer ((VOID *)(UINTN)ImageAddress);\r
if (PdbPointer != NULL) {\r
DEBUG ((DEBUG_ERROR, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer));\r
}\r
+\r
goto Finish;\r
}\r
\r
SortImageRecord ();\r
\r
Finish:\r
- return ;\r
+ return;\r
}\r
\r
/**\r
IN UINT64 ImageSize\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- LIST_ENTRY *ImageRecordLink;\r
- LIST_ENTRY *ImageRecordList;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ LIST_ENTRY *ImageRecordLink;\r
+ LIST_ENTRY *ImageRecordList;\r
\r
ImageRecordList = &mImagePropertiesPrivateData.ImageRecordList;\r
\r
for (ImageRecordLink = ImageRecordList->ForwardLink;\r
ImageRecordLink != ImageRecordList;\r
- ImageRecordLink = ImageRecordLink->ForwardLink) {\r
+ ImageRecordLink = ImageRecordLink->ForwardLink)\r
+ {\r
ImageRecord = CR (\r
ImageRecordLink,\r
IMAGE_PROPERTIES_RECORD,\r
);\r
\r
if ((ImageBase == ImageRecord->ImageBase) &&\r
- (ImageSize == ImageRecord->ImageSize)) {\r
+ (ImageSize == ImageRecord->ImageSize))\r
+ {\r
return ImageRecord;\r
}\r
}\r
IN EFI_RUNTIME_IMAGE_ENTRY *RuntimeImage\r
)\r
{\r
- IMAGE_PROPERTIES_RECORD *ImageRecord;\r
- LIST_ENTRY *CodeSegmentListHead;\r
- IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
+ IMAGE_PROPERTIES_RECORD *ImageRecord;\r
+ LIST_ENTRY *CodeSegmentListHead;\r
+ IMAGE_PROPERTIES_RECORD_CODE_SECTION *ImageRecordCodeSection;\r
\r
DEBUG ((DEBUG_VERBOSE, "RemoveImageRecord - 0x%x\n", RuntimeImage));\r
DEBUG ((DEBUG_VERBOSE, "RemoveImageRecord - 0x%016lx - 0x%016lx\n", (EFI_PHYSICAL_ADDRESS)(UINTN)RuntimeImage->ImageBase, RuntimeImage->ImageSize));\r
\r
if (mMemoryAttributesTableEndOfDxe) {\r
DEBUG ((DEBUG_INFO, "Do not remove runtime image record after EndOfDxe\n"));\r
- return ;\r
+ return;\r
}\r
\r
ImageRecord = FindImageRecord ((EFI_PHYSICAL_ADDRESS)(UINTN)RuntimeImage->ImageBase, RuntimeImage->ImageSize);\r
if (ImageRecord == NULL) {\r
DEBUG ((DEBUG_ERROR, "!!!!!!!! ImageRecord not found !!!!!!!!\n"));\r
- return ;\r
+ return;\r
}\r
\r
CodeSegmentListHead = &ImageRecord->CodeSegmentList;\r