2 Main file for Mode shell Debug1 function.
4 (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
5 Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which acModeanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 // Need full names for Standard-Format Output
19 STATIC CONST CHAR16 NameEfiReservedMemoryType
[] = L
"Reserved";
20 STATIC CONST CHAR16 NameEfiLoaderCode
[] = L
"LoaderCode";
21 STATIC CONST CHAR16 NameEfiLoaderData
[] = L
"LoaderData";
22 STATIC CONST CHAR16 NameEfiBootServicesCode
[] = L
"BootServiceCode";
23 STATIC CONST CHAR16 NameEfiBootServicesData
[] = L
"BootServiceData";
24 STATIC CONST CHAR16 NameEfiRuntimeServicesCode
[] = L
"RuntimeCode";
25 STATIC CONST CHAR16 NameEfiRuntimeServicesData
[] = L
"RuntimeData";
26 STATIC CONST CHAR16 NameEfiConventionalMemory
[] = L
"Available";
27 STATIC CONST CHAR16 NameEfiPersistentMemory
[] = L
"Persistent";
28 STATIC CONST CHAR16 NameEfiUnusableMemory
[] = L
"UnusableMemory";
29 STATIC CONST CHAR16 NameEfiACPIReclaimMemory
[] = L
"ACPIReclaimMemory";
30 STATIC CONST CHAR16 NameEfiACPIMemoryNVS
[] = L
"ACPIMemoryNVS";
31 STATIC CONST CHAR16 NameEfiMemoryMappedIO
[] = L
"MemoryMappedIO";
32 STATIC CONST CHAR16 NameEfiMemoryMappedIOPortSpace
[] = L
"MemoryMappedIOPortSpace";
33 STATIC CONST CHAR16 NameEfiPalCode
[] = L
"PalCode";
36 // Need short names for some memory types
38 STATIC CONST CHAR16 NameEfiBootServicesCodeShort
[] = L
"BS_Code";
39 STATIC CONST CHAR16 NameEfiBootServicesDataShort
[] = L
"BS_Data";
40 STATIC CONST CHAR16 NameEfiRuntimeServicesCodeShort
[] = L
"RT_Code";
41 STATIC CONST CHAR16 NameEfiRuntimeServicesDataShort
[] = L
"RT_Data";
42 STATIC CONST CHAR16 NameEfiUnusableMemoryShort
[] = L
"Unusable";
43 STATIC CONST CHAR16 NameEfiACPIReclaimMemoryShort
[] = L
"ACPI_Recl";
44 STATIC CONST CHAR16 NameEfiACPIMemoryNVSShort
[] = L
"ACPI_NVS";
45 STATIC CONST CHAR16 NameEfiMemoryMappedIOShort
[] = L
"MMIO";
46 STATIC CONST CHAR16 NameEfiMemoryMappedIOPortSpaceShort
[] = L
"MMIO_Port";
48 #include "UefiShellDebug1CommandsLib.h"
51 Function for 'memmap' command.
53 @param[in] ImageHandle Handle to the Image (NULL if Internal).
54 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
58 ShellCommandRunMemMap (
59 IN EFI_HANDLE ImageHandle
,
60 IN EFI_SYSTEM_TABLE
*SystemTable
66 SHELL_STATUS ShellStatus
;
68 EFI_MEMORY_DESCRIPTOR
*Buffer
;
82 UINT64 ReservedPagesSize
;
83 UINT64 LoadCodePagesSize
;
84 UINT64 LoadDataPagesSize
;
85 UINT64 BSCodePagesSize
;
86 UINT64 BSDataPagesSize
;
87 UINT64 RTDataPagesSize
;
88 UINT64 RTCodePagesSize
;
89 UINT64 AvailPagesSize
;
90 UINT64 TotalPagesSize
;
91 UINT64 AcpiReclaimPages
;
93 UINT64 MmioSpacePages
;
94 UINT64 AcpiReclaimPagesSize
;
95 UINT64 AcpiNvsPagesSize
;
96 UINT64 MmioSpacePagesSize
;
98 UINT64 MmioPortPagesSize
;
99 UINT64 UnusableMemoryPages
;
100 UINT64 UnusableMemoryPagesSize
;
102 UINT64 PalCodePagesSize
;
105 AcpiReclaimPages
= 0;
118 UnusableMemoryPages
= 0;
122 ShellStatus
= SHELL_SUCCESS
;
123 Status
= EFI_SUCCESS
;
126 // initialize the shell lib (we must be in non-auto-init...)
128 Status
= ShellInitialize();
129 ASSERT_EFI_ERROR(Status
);
131 Status
= CommandInit();
132 ASSERT_EFI_ERROR(Status
);
135 // parse the command line
137 Status
= ShellCommandLineParse (SfoParamList
, &Package
, &ProblemParam
, TRUE
);
138 if (EFI_ERROR(Status
)) {
139 if (Status
== EFI_VOLUME_CORRUPTED
&& ProblemParam
!= NULL
) {
140 ShellPrintHiiEx(-1, -1, NULL
, STRING_TOKEN (STR_GEN_PROBLEM
), gShellDebug1HiiHandle
, L
"memmap", ProblemParam
);
141 FreePool(ProblemParam
);
142 ShellStatus
= SHELL_INVALID_PARAMETER
;
147 if (ShellCommandLineGetCount(Package
) > 1) {
148 ShellPrintHiiEx(-1, -1, NULL
, STRING_TOKEN (STR_GEN_TOO_MANY
), gShellDebug1HiiHandle
, L
"memmap");
149 ShellStatus
= SHELL_INVALID_PARAMETER
;
151 Status
= gBS
->GetMemoryMap(&Size
, Buffer
, &MapKey
, &ItemSize
, &Version
);
152 if (Status
== EFI_BUFFER_TOO_SMALL
){
154 Buffer
= AllocateZeroPool(Size
);
155 Status
= gBS
->GetMemoryMap(&Size
, Buffer
, &MapKey
, &ItemSize
, &Version
);
157 if (EFI_ERROR(Status
)) {
158 ShellPrintHiiEx(-1, -1, NULL
, STRING_TOKEN (STR_MEMMAP_GET_FAILED
), gShellDebug1HiiHandle
, L
"memmap");
159 ShellStatus
= SHELL_ACCESS_DENIED
;
161 ASSERT(Version
== EFI_MEMORY_DESCRIPTOR_VERSION
);
163 Sfo
= ShellCommandLineGetFlag(Package
, L
"-sfo");
165 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_MEMMAP_LIST_HEAD
), gShellDebug1HiiHandle
);
167 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_GEN_SFO_HEADER
), gShellDebug1HiiHandle
, L
"memmap");
170 for (Walker
= (UINT8
*)Buffer
; Walker
< (((UINT8
*)Buffer
)+Size
) && Walker
!= NULL
; Walker
+= ItemSize
){
171 switch (((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Type
) {
172 case EfiReservedMemoryType
:
173 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, NameEfiReservedMemoryType
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
174 ReservedPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
177 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, NameEfiLoaderCode
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
178 LoadCodePages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
179 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
182 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, NameEfiLoaderData
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
183 LoadDataPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
184 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
186 case EfiBootServicesCode
:
187 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiBootServicesCodeShort
:NameEfiBootServicesCode
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
188 BSCodePages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
189 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
191 case EfiBootServicesData
:
192 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiBootServicesDataShort
:NameEfiBootServicesData
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
193 BSDataPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
194 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
196 case EfiRuntimeServicesCode
:
197 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiRuntimeServicesCodeShort
:NameEfiRuntimeServicesCode
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
198 RTCodePages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
199 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
201 case EfiRuntimeServicesData
:
202 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiRuntimeServicesDataShort
:NameEfiRuntimeServicesData
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
203 RTDataPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
204 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
206 case EfiConventionalMemory
:
207 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, NameEfiConventionalMemory
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
208 AvailPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
209 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
211 case EfiPersistentMemory
:
212 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, NameEfiPersistentMemory
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
213 AvailPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
214 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
216 case EfiUnusableMemory
:
217 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiUnusableMemoryShort
:NameEfiUnusableMemory
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
218 UnusableMemoryPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
220 case EfiACPIReclaimMemory
:
221 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiACPIReclaimMemoryShort
:NameEfiACPIReclaimMemory
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
222 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
223 AcpiReclaimPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
225 case EfiACPIMemoryNVS
:
226 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiACPIMemoryNVSShort
:NameEfiACPIMemoryNVS
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
227 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
228 AcpiNvsPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
230 case EfiMemoryMappedIO
:
231 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiMemoryMappedIOShort
:NameEfiMemoryMappedIO
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
232 MmioSpacePages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
234 case EfiMemoryMappedIOPortSpace
:
235 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, !Sfo
?NameEfiMemoryMappedIOPortSpaceShort
:NameEfiMemoryMappedIOPortSpace
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
236 MmioPortPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
239 ShellPrintHiiEx(-1, -1, NULL
, (EFI_STRING_ID
)(!Sfo
?STRING_TOKEN (STR_MEMMAP_LIST_ITEM
):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO
)), gShellDebug1HiiHandle
, NameEfiPalCode
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->PhysicalStart
+MultU64x64(SIZE_4KB
,((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
)-1, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
, ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->Attribute
);
240 TotalPages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
241 PalCodePages
+= ((EFI_MEMORY_DESCRIPTOR
*)Walker
)->NumberOfPages
;
250 ReservedPagesSize
= MultU64x64(SIZE_4KB
,ReservedPages
);
251 LoadCodePagesSize
= MultU64x64(SIZE_4KB
,LoadCodePages
);
252 LoadDataPagesSize
= MultU64x64(SIZE_4KB
,LoadDataPages
);
253 BSCodePagesSize
= MultU64x64(SIZE_4KB
,BSCodePages
);
254 BSDataPagesSize
= MultU64x64(SIZE_4KB
,BSDataPages
);
255 RTDataPagesSize
= MultU64x64(SIZE_4KB
,RTDataPages
);
256 RTCodePagesSize
= MultU64x64(SIZE_4KB
,RTCodePages
);
257 AvailPagesSize
= MultU64x64(SIZE_4KB
,AvailPages
);
258 TotalPagesSize
= MultU64x64(SIZE_4KB
,TotalPages
);
259 AcpiReclaimPagesSize
= MultU64x64(SIZE_4KB
,AcpiReclaimPages
);
260 AcpiNvsPagesSize
= MultU64x64(SIZE_4KB
,AcpiNvsPages
);
261 MmioSpacePagesSize
= MultU64x64(SIZE_4KB
,MmioSpacePages
);
262 MmioPortPagesSize
= MultU64x64(SIZE_4KB
,MmioPortPages
);
263 PalCodePagesSize
= MultU64x64(SIZE_4KB
,PalCodePages
);
264 UnusableMemoryPagesSize
= MultU64x64(SIZE_4KB
,UnusableMemoryPages
);
266 ShellPrintHiiEx(-1, -1, NULL
, STRING_TOKEN (STR_MEMMAP_LIST_SUMM
), gShellDebug1HiiHandle
,
267 ReservedPages
, ReservedPagesSize
,
268 LoadCodePages
, LoadCodePagesSize
,
269 LoadDataPages
, LoadDataPagesSize
,
270 BSCodePages
, BSCodePagesSize
,
271 BSDataPages
, BSDataPagesSize
,
272 RTCodePages
, RTCodePagesSize
,
273 RTDataPages
, RTDataPagesSize
,
274 AcpiReclaimPages
, AcpiReclaimPagesSize
,
275 AcpiNvsPages
, AcpiNvsPagesSize
,
276 MmioSpacePages
, MmioSpacePagesSize
,
277 MmioPortPages
, MmioPortPagesSize
,
278 PalCodePages
, PalCodePagesSize
,
279 AvailPages
, AvailPagesSize
,
280 DivU64x32(MultU64x64(SIZE_4KB
,TotalPages
), SIZE_1MB
), TotalPagesSize
283 ShellPrintHiiEx(-1, -1, NULL
, STRING_TOKEN (STR_MEMMAP_LIST_SUMM_SFO
), gShellDebug1HiiHandle
,
295 UnusableMemoryPagesSize
,
296 AcpiReclaimPagesSize
,
303 ShellCommandLineFreeVarList (Package
);
306 if (Buffer
!= NULL
) {
310 return (ShellStatus
);