\r
#include "DxeMain.h"\r
\r
-\r
EFI_DEBUG_IMAGE_INFO_TABLE_HEADER mDebugInfoTableHeader = {\r
0, // volatile UINT32 UpdateStatus;\r
0, // UINT32 TableSize;\r
NULL // EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable;\r
};\r
\r
-UINTN mMaxTableEntries = 0;\r
+UINTN mMaxTableEntries = 0;\r
\r
EFI_SYSTEM_TABLE_POINTER *mDebugTable = NULL;\r
\r
-#define EFI_DEBUG_TABLE_ENTRY_SIZE (sizeof (VOID *))\r
+#define EFI_DEBUG_TABLE_ENTRY_SIZE (sizeof (VOID *))\r
\r
/**\r
Creates and initializes the DebugImageInfo Table. Also creates the configuration\r
// Ideally we would update the CRC now as well, but the service may not yet be available.\r
// See comments in the CoreUpdateDebugTableCrc32() function below for details.\r
//\r
- Pages = EFI_SIZE_TO_PAGES (sizeof (EFI_SYSTEM_TABLE_POINTER));\r
- AlignmentMask = SIZE_4MB - 1;\r
- RealPages = Pages + EFI_SIZE_TO_PAGES (SIZE_4MB);\r
+ Pages = EFI_SIZE_TO_PAGES (sizeof (EFI_SYSTEM_TABLE_POINTER));\r
+ AlignmentMask = SIZE_4MB - 1;\r
+ RealPages = Pages + EFI_SIZE_TO_PAGES (SIZE_4MB);\r
\r
//\r
// Attempt to allocate memory below PcdMaxEfiSystemTablePointerAddress\r
if (Memory == 0) {\r
Memory = MAX_ADDRESS;\r
}\r
+\r
Status = CoreAllocatePages (\r
AllocateMaxAddress,\r
EfiBootServicesData,\r
DEBUG ((DEBUG_INFO, "Allocate memory for EFI_SYSTEM_TABLE_POINTER below PcdMaxEfiSystemTablePointerAddress failed. \\r
Retry to allocate memroy as close to the top of memory as feasible.\n"));\r
}\r
+\r
//\r
// If the initial memory allocation fails, then reattempt allocation\r
// as close to the top of memory as feasible.\r
//\r
// Free overallocated pages\r
//\r
- AlignedMemory = ((UINTN) Memory + AlignmentMask) & ~AlignmentMask;\r
+ AlignedMemory = ((UINTN)Memory + AlignmentMask) & ~AlignmentMask;\r
UnalignedPages = EFI_SIZE_TO_PAGES (AlignedMemory - (UINTN)Memory);\r
if (UnalignedPages > 0) {\r
//\r
Status = CoreFreePages (Memory, UnalignedPages);\r
ASSERT_EFI_ERROR (Status);\r
}\r
+\r
Memory = AlignedMemory + EFI_PAGES_TO_SIZE (Pages);\r
UnalignedPages = RealPages - Pages - UnalignedPages;\r
if (UnalignedPages > 0) {\r
// Initialize EFI_SYSTEM_TABLE_POINTER structure\r
//\r
mDebugTable->Signature = EFI_SYSTEM_TABLE_SIGNATURE;\r
- mDebugTable->EfiSystemTableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) gDxeCoreST;\r
+ mDebugTable->EfiSystemTableBase = (EFI_PHYSICAL_ADDRESS)(UINTN)gDxeCoreST;\r
mDebugTable->Crc32 = 0;\r
\r
//\r
ASSERT_EFI_ERROR (Status);\r
}\r
\r
-\r
/**\r
Update the CRC32 in the Debug Table.\r
Since the CRC32 service is made available by the Runtime driver, we have to\r
VOID\r
)\r
{\r
- ASSERT(mDebugTable != NULL);\r
+ ASSERT (mDebugTable != NULL);\r
mDebugTable->Crc32 = 0;\r
gBS->CalculateCrc32 ((VOID *)mDebugTable, sizeof (EFI_SYSTEM_TABLE_POINTER), &mDebugTable->Crc32);\r
}\r
\r
-\r
/**\r
Adds a new DebugImageInfo structure to the DebugImageInfo Table. Re-Allocates\r
the table if it's not large enough to accomidate another entry.\r
**/\r
VOID\r
CoreNewDebugImageInfoEntry (\r
- IN UINT32 ImageInfoType,\r
- IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage,\r
- IN EFI_HANDLE ImageHandle\r
+ IN UINT32 ImageInfoType,\r
+ IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage,\r
+ IN EFI_HANDLE ImageHandle\r
)\r
{\r
- EFI_DEBUG_IMAGE_INFO *Table;\r
- EFI_DEBUG_IMAGE_INFO *NewTable;\r
- UINTN Index;\r
- UINTN TableSize;\r
+ EFI_DEBUG_IMAGE_INFO *Table;\r
+ EFI_DEBUG_IMAGE_INFO *NewTable;\r
+ UINTN Index;\r
+ UINTN TableSize;\r
\r
//\r
// Set the flag indicating that we're in the process of updating the table.\r
while (Table[Index].NormalImage != NULL) {\r
Index++;\r
}\r
+\r
//\r
// There must be an empty entry in the in the table.\r
//\r
// Table is full, so re-allocate another page for a larger table...\r
//\r
TableSize = mMaxTableEntries * EFI_DEBUG_TABLE_ENTRY_SIZE;\r
- NewTable = AllocateZeroPool (TableSize + EFI_PAGE_SIZE);\r
+ NewTable = AllocateZeroPool (TableSize + EFI_PAGE_SIZE);\r
if (NewTable == NULL) {\r
mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
return;\r
}\r
+\r
//\r
// Copy the old table into the new one\r
//\r
//\r
// Update the table header\r
//\r
- Table = NewTable;\r
+ Table = NewTable;\r
mDebugInfoTableHeader.EfiDebugImageInfoTable = NewTable;\r
//\r
// Enlarge the max table entries and set the first empty entry index to\r
//\r
// Update the entry\r
//\r
- Table[Index].NormalImage->ImageInfoType = (UINT32) ImageInfoType;\r
+ Table[Index].NormalImage->ImageInfoType = (UINT32)ImageInfoType;\r
Table[Index].NormalImage->LoadedImageProtocolInstance = LoadedImage;\r
Table[Index].NormalImage->ImageHandle = ImageHandle;\r
//\r
mDebugInfoTableHeader.TableSize++;\r
mDebugInfoTableHeader.UpdateStatus |= EFI_DEBUG_IMAGE_INFO_TABLE_MODIFIED;\r
}\r
+\r
mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
}\r
\r
-\r
-\r
/**\r
Removes and frees an entry from the DebugImageInfo Table.\r
\r
**/\r
VOID\r
CoreRemoveDebugImageInfoEntry (\r
- EFI_HANDLE ImageHandle\r
+ EFI_HANDLE ImageHandle\r
)\r
{\r
EFI_DEBUG_IMAGE_INFO *Table;\r
Table = mDebugInfoTableHeader.EfiDebugImageInfoTable;\r
\r
for (Index = 0; Index < mMaxTableEntries; Index++) {\r
- if (Table[Index].NormalImage != NULL && Table[Index].NormalImage->ImageHandle == ImageHandle) {\r
+ if ((Table[Index].NormalImage != NULL) && (Table[Index].NormalImage->ImageHandle == ImageHandle)) {\r
//\r
// Found a match. Free up the record, then NULL the pointer to indicate the slot\r
// is free.\r
break;\r
}\r
}\r
+\r
mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
}\r