10#ifndef _GENERIC_MEMORY_TEST_H_
11#define _GENERIC_MEMORY_TEST_H_
30#define GENERIC_CACHELINE_SIZE 0x40
35#define EFI_MEMORY_PRESENT 0x0100000000000000ULL
36#define EFI_MEMORY_INITIALIZED 0x0200000000000000ULL
37#define EFI_MEMORY_TESTED 0x0400000000000000ULL
42#define TEST_BLOCK_SIZE 0x2000000
43#define QUICK_SPAN_SIZE (TEST_BLOCK_SIZE >> 2)
44#define SPARSE_SPAN_SIZE (TEST_BLOCK_SIZE >> 4)
50#define EFI_NONTESTED_MEMORY_RANGE_SIGNATURE SIGNATURE_32 ('N', 'T', 'M', 'E')
59 BOOLEAN AlreadyMapped;
62#define NONTESTED_MEMORY_RANGE_FROM_LINK(link) \
65 NONTESTED_MEMORY_RANGE, \
67 EFI_NONTESTED_MEMORY_RANGE_SIGNATURE \
73#define EFI_GENERIC_MEMORY_TEST_PRIVATE_SIGNATURE SIGNATURE_32 ('G', 'E', 'M', 'T')
105 UINT64 BaseMemorySize;
113#define GENERIC_MEMORY_TEST_PRIVATE_FROM_THIS(a) \
116 GENERIC_MEMORY_TEST_PRIVATE, \
118 EFI_GENERIC_MEMORY_TEST_PRIVATE_SIGNATURE \
252 IN UINT64 Capabilities
271 OUT BOOLEAN *RequireSoftECCInit
293 OUT UINT64 *TestedMemorySize,
294 OUT UINT64 *TotalMemorySize,
295 OUT BOOLEAN *ErrorOut,
EFI_STATUS EFIAPI GenPerformMemoryTest(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, OUT UINT64 *TestedMemorySize, OUT UINT64 *TotalMemorySize, OUT BOOLEAN *ErrorOut, IN BOOLEAN TestAbort)
EFI_STATUS ConstructNonTestedMemoryRange(IN GENERIC_MEMORY_TEST_PRIVATE *Private)
EFI_STATUS ConstructBaseMemoryRange(IN GENERIC_MEMORY_TEST_PRIVATE *Private)
EFI_STATUS EFIAPI InitializeMemoryTest(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EXTENDMEM_COVERAGE_LEVEL Level, OUT BOOLEAN *RequireSoftECCInit)
EFI_STATUS PerformAddressDataLineTest(IN GENERIC_MEMORY_TEST_PRIVATE *Private)
EFI_STATUS DirectRangeTest(IN GENERIC_MEMORY_TEST_PRIVATE *Private, IN EFI_PHYSICAL_ADDRESS StartAddress, IN UINT64 Length, IN UINT64 Capabilities)
EFI_STATUS EFIAPI GenMemoryTestFinished(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This)
EFI_STATUS EFIAPI GenCompatibleRangeTest(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS StartAddress, IN UINT64 Length)
EFI_STATUS UpdateMemoryMap(IN GENERIC_MEMORY_TEST_PRIVATE *Private)
EFI_STATUS VerifyMemory(IN GENERIC_MEMORY_TEST_PRIVATE *Private, IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 Size)
VOID DestroyLinkList(IN GENERIC_MEMORY_TEST_PRIVATE *Private)
EFI_STATUS WriteMemory(IN GENERIC_MEMORY_TEST_PRIVATE *Private, IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 Size)
UINT64 EFI_PHYSICAL_ADDRESS