FREE_POOL_HEADER *Pool;\r
UINTN PoolListIndex;\r
UINTN Index;\r
+ UINTN SmmPoolTypeIndex;\r
\r
ContextData = GetSmramProfileContext ();\r
if (ContextData == NULL) {\r
Node = Node->BackLink) {\r
Index++;\r
}\r
- for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
- FreePoolList = &mSmmPoolLists[PoolListIndex];\r
- for (Node = FreePoolList->BackLink;\r
- Node != FreePoolList;\r
- Node = Node->BackLink) {\r
- Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
- if (Pool->Header.Available) {\r
- Index++;\r
+ for (SmmPoolTypeIndex = 0; SmmPoolTypeIndex < SmmPoolTypeMax; SmmPoolTypeIndex++) {\r
+ for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
+ FreePoolList = &mSmmPoolLists[SmmPoolTypeIndex][PoolListIndex];\r
+ for (Node = FreePoolList->BackLink;\r
+ Node != FreePoolList;\r
+ Node = Node->BackLink) {\r
+ Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
+ if (Pool->Header.Available) {\r
+ Index++;\r
+ }\r
}\r
}\r
}\r
\r
-\r
TotalSize += (sizeof (MEMORY_PROFILE_FREE_MEMORY) + Index * sizeof (MEMORY_PROFILE_DESCRIPTOR));\r
TotalSize += (sizeof (MEMORY_PROFILE_MEMORY_RANGE) + mFullSmramRangeCount * sizeof (MEMORY_PROFILE_DESCRIPTOR));\r
\r
UINT64 RemainingSize;\r
UINTN PdbSize;\r
UINTN ActionStringSize;\r
+ UINTN SmmPoolTypeIndex;\r
\r
ContextData = GetSmramProfileContext ();\r
if (ContextData == NULL) {\r
Node = Node->BackLink) {\r
Index++;\r
}\r
- for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
- FreePoolList = &mSmmPoolLists[MAX_POOL_INDEX - PoolListIndex - 1];\r
- for (Node = FreePoolList->BackLink;\r
- Node != FreePoolList;\r
- Node = Node->BackLink) {\r
- Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
- if (Pool->Header.Available) {\r
- Index++;\r
+ for (SmmPoolTypeIndex = 0; SmmPoolTypeIndex < SmmPoolTypeMax; SmmPoolTypeIndex++) {\r
+ for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
+ FreePoolList = &mSmmPoolLists[SmmPoolTypeIndex][MAX_POOL_INDEX - PoolListIndex - 1];\r
+ for (Node = FreePoolList->BackLink;\r
+ Node != FreePoolList;\r
+ Node = Node->BackLink) {\r
+ Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
+ if (Pool->Header.Available) {\r
+ Index++;\r
+ }\r
}\r
}\r
}\r
}\r
Offset += sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
}\r
- for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
- FreePoolList = &mSmmPoolLists[MAX_POOL_INDEX - PoolListIndex - 1];\r
- for (Node = FreePoolList->BackLink;\r
- Node != FreePoolList;\r
- Node = Node->BackLink) {\r
- Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
- if (Pool->Header.Available) {\r
- if (*ProfileOffset < (Offset + sizeof (MEMORY_PROFILE_DESCRIPTOR))) {\r
- if (RemainingSize >= sizeof (MEMORY_PROFILE_DESCRIPTOR)) {\r
- MemoryProfileDescriptor = ProfileBuffer;\r
- MemoryProfileDescriptor->Header.Signature = MEMORY_PROFILE_DESCRIPTOR_SIGNATURE;\r
- MemoryProfileDescriptor->Header.Length = sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
- MemoryProfileDescriptor->Header.Revision = MEMORY_PROFILE_DESCRIPTOR_REVISION;\r
- MemoryProfileDescriptor->Address = (PHYSICAL_ADDRESS) (UINTN) Pool;\r
- MemoryProfileDescriptor->Size = Pool->Header.Size;\r
-\r
- RemainingSize -= sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
- ProfileBuffer = (UINT8 *) ProfileBuffer + sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
- } else {\r
- goto Done;\r
+ for (SmmPoolTypeIndex = 0; SmmPoolTypeIndex < SmmPoolTypeMax; SmmPoolTypeIndex++) {\r
+ for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
+ FreePoolList = &mSmmPoolLists[SmmPoolTypeIndex][MAX_POOL_INDEX - PoolListIndex - 1];\r
+ for (Node = FreePoolList->BackLink;\r
+ Node != FreePoolList;\r
+ Node = Node->BackLink) {\r
+ Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
+ if (Pool->Header.Available) {\r
+ if (*ProfileOffset < (Offset + sizeof (MEMORY_PROFILE_DESCRIPTOR))) {\r
+ if (RemainingSize >= sizeof (MEMORY_PROFILE_DESCRIPTOR)) {\r
+ MemoryProfileDescriptor = ProfileBuffer;\r
+ MemoryProfileDescriptor->Header.Signature = MEMORY_PROFILE_DESCRIPTOR_SIGNATURE;\r
+ MemoryProfileDescriptor->Header.Length = sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
+ MemoryProfileDescriptor->Header.Revision = MEMORY_PROFILE_DESCRIPTOR_REVISION;\r
+ MemoryProfileDescriptor->Address = (PHYSICAL_ADDRESS) (UINTN) Pool;\r
+ MemoryProfileDescriptor->Size = Pool->Header.Size;\r
+\r
+ RemainingSize -= sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
+ ProfileBuffer = (UINT8 *) ProfileBuffer + sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
+ } else {\r
+ goto Done;\r
+ }\r
}\r
+ Offset += sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
}\r
- Offset += sizeof (MEMORY_PROFILE_DESCRIPTOR);\r
}\r
}\r
}\r
UINTN PoolListIndex;\r
MEMORY_PROFILE_CONTEXT_DATA *ContextData;\r
BOOLEAN SmramProfileGettingStatus;\r
+ UINTN SmmPoolTypeIndex;\r
\r
ContextData = GetSmramProfileContext ();\r
if (ContextData == NULL) {\r
SmramProfileGettingStatus = mSmramProfileGettingStatus;\r
mSmramProfileGettingStatus = TRUE;\r
\r
- DEBUG ((EFI_D_INFO, "======= SmramProfile begin =======\n"));\r
-\r
- for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
- DEBUG ((EFI_D_INFO, "FreePoolList (%d):\n", PoolListIndex));\r
- FreePoolList = &mSmmPoolLists[PoolListIndex];\r
- for (Node = FreePoolList->BackLink, Index = 0;\r
- Node != FreePoolList;\r
- Node = Node->BackLink, Index++) {\r
- Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
- DEBUG ((EFI_D_INFO, " Index - 0x%x\n", Index));\r
- DEBUG ((EFI_D_INFO, " PhysicalStart - 0x%016lx\n", (PHYSICAL_ADDRESS) (UINTN) Pool));\r
- DEBUG ((EFI_D_INFO, " Size - 0x%08x\n", Pool->Header.Size));\r
- DEBUG ((EFI_D_INFO, " Available - 0x%02x\n", Pool->Header.Available));\r
+ DEBUG ((DEBUG_INFO, "======= SmramProfile begin =======\n"));\r
+\r
+ for (SmmPoolTypeIndex = 0; SmmPoolTypeIndex < SmmPoolTypeMax; SmmPoolTypeIndex++) {\r
+ for (PoolListIndex = 0; PoolListIndex < MAX_POOL_INDEX; PoolListIndex++) {\r
+ DEBUG ((DEBUG_INFO, "FreePoolList(%d)(%d):\n", SmmPoolTypeIndex, PoolListIndex));\r
+ FreePoolList = &mSmmPoolLists[SmmPoolTypeIndex][PoolListIndex];\r
+ for (Node = FreePoolList->BackLink, Index = 0;\r
+ Node != FreePoolList;\r
+ Node = Node->BackLink, Index++) {\r
+ Pool = BASE_CR (Node, FREE_POOL_HEADER, Link);\r
+ DEBUG ((DEBUG_INFO, " Index - 0x%x\n", Index));\r
+ DEBUG ((DEBUG_INFO, " PhysicalStart - 0x%016lx\n", (PHYSICAL_ADDRESS) (UINTN) Pool));\r
+ DEBUG ((DEBUG_INFO, " Size - 0x%08x\n", Pool->Header.Size));\r
+ DEBUG ((DEBUG_INFO, " Available - 0x%02x\n", Pool->Header.Available));\r
+ }\r
}\r
}\r
\r
- DEBUG ((EFI_D_INFO, "======= SmramProfile end =======\n"));\r
+ DEBUG ((DEBUG_INFO, "======= SmramProfile end =======\n"));\r
\r
mSmramProfileGettingStatus = SmramProfileGettingStatus;\r
}\r