\r
**/\r
\r
-\r
#include "NullMemoryTest.h"\r
\r
-UINT64 mTestedSystemMemory = 0;\r
-UINT64 mTotalSystemMemory = 0;\r
-EFI_HANDLE mGenericMemoryTestHandle;\r
+UINT64 mTestedSystemMemory = 0;\r
+UINT64 mTotalSystemMemory = 0;\r
+EFI_HANDLE mGenericMemoryTestHandle;\r
\r
EFI_GENERIC_MEMORY_TEST_PROTOCOL mGenericMemoryTest = {\r
InitializeMemoryTest,\r
EFI_STATUS\r
EFIAPI\r
GenericMemoryTestEntryPoint (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
EFI_STATUS Status;\r
**/\r
EFI_STATUS\r
ConvertToTestedMemory (\r
- IN UINT64 BaseAddress,\r
- IN UINT64 Length,\r
- IN UINT64 Capabilities\r
+ IN UINT64 BaseAddress,\r
+ IN UINT64 Length,\r
+ IN UINT64 Capabilities\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
+\r
Status = gDS->RemoveMemorySpace (\r
BaseAddress,\r
Length\r
(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)\r
);\r
}\r
+\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
InitializeMemoryTest (\r
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
- IN EXTENDMEM_COVERAGE_LEVEL Level,\r
- OUT BOOLEAN *RequireSoftECCInit\r
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
+ IN EXTENDMEM_COVERAGE_LEVEL Level,\r
+ OUT BOOLEAN *RequireSoftECCInit\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN NumberOfDescriptors;\r
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;\r
- UINTN Index;\r
+ EFI_STATUS Status;\r
+ UINTN NumberOfDescriptors;\r
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;\r
+ UINTN Index;\r
\r
gDS->GetMemorySpaceMap (&NumberOfDescriptors, &MemorySpaceMap);\r
for (Index = 0; Index < NumberOfDescriptors; Index++) {\r
- if (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeReserved &&\r
- (MemorySpaceMap[Index].Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==\r
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED)\r
- ) {\r
+ if ((MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeReserved) &&\r
+ ((MemorySpaceMap[Index].Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==\r
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED))\r
+ )\r
+ {\r
//\r
// For those reserved memory that have not been tested, simply promote to system memory.\r
//\r
);\r
ASSERT_EFI_ERROR (Status);\r
mTestedSystemMemory += MemorySpaceMap[Index].Length;\r
- mTotalSystemMemory += MemorySpaceMap[Index].Length;\r
+ mTotalSystemMemory += MemorySpaceMap[Index].Length;\r
} else if ((MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeSystemMemory) ||\r
- (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeMoreReliable)) {\r
+ (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeMoreReliable))\r
+ {\r
mTotalSystemMemory += MemorySpaceMap[Index].Length;\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
GenPerformMemoryTest (\r
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
- IN OUT UINT64 *TestedMemorySize,\r
- OUT UINT64 *TotalMemorySize,\r
- OUT BOOLEAN *ErrorOut,\r
- IN BOOLEAN TestAbort\r
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
+ IN OUT UINT64 *TestedMemorySize,\r
+ OUT UINT64 *TotalMemorySize,\r
+ OUT BOOLEAN *ErrorOut,\r
+ IN BOOLEAN TestAbort\r
)\r
{\r
*ErrorOut = FALSE;\r
*TotalMemorySize = mTotalSystemMemory;\r
\r
return EFI_NOT_FOUND;\r
-\r
}\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
GenMemoryTestFinished (\r
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This\r
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This\r
)\r
{\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
GenCompatibleRangeTest (\r
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
- IN EFI_PHYSICAL_ADDRESS StartAddress,\r
- IN UINT64 Length\r
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
+ IN EFI_PHYSICAL_ADDRESS StartAddress,\r
+ IN UINT64 Length\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR Descriptor;\r
- EFI_PHYSICAL_ADDRESS CurrentBase;\r
- UINT64 CurrentLength;\r
+ EFI_STATUS Status;\r
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR Descriptor;\r
+ EFI_PHYSICAL_ADDRESS CurrentBase;\r
+ UINT64 CurrentLength;\r
\r
//\r
// Check if the parameter is below 16MB\r
if (StartAddress + Length > SIZE_16MB) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
CurrentBase = StartAddress;\r
do {\r
//\r
return Status;\r
}\r
\r
- if (Descriptor.GcdMemoryType == EfiGcdMemoryTypeReserved &&\r
- (Descriptor.Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==\r
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED)\r
- ) {\r
+ if ((Descriptor.GcdMemoryType == EfiGcdMemoryTypeReserved) &&\r
+ ((Descriptor.Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==\r
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED))\r
+ )\r
+ {\r
CurrentLength = Descriptor.BaseAddress + Descriptor.Length - CurrentBase;\r
if (CurrentBase + CurrentLength > StartAddress + Length) {\r
CurrentLength = StartAddress + Length - CurrentBase;\r
}\r
+\r
Status = ConvertToTestedMemory (\r
CurrentBase,\r
CurrentLength,\r
return Status;\r
}\r
}\r
+\r
CurrentBase = Descriptor.BaseAddress + Descriptor.Length;\r
} while (CurrentBase < StartAddress + Length);\r
+\r
//\r
// Here means the required range already be tested, so just return success.\r
//\r
return EFI_SUCCESS;\r
}\r
-\r