]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
Update the copyright notice format
[mirror_edk2.git] / MdeModulePkg / Universal / MemoryTest / NullMemoryTestDxe / NullMemoryTest.h
index a71e6a24fd012f591dc537219808a975c2f631bd..77c18eb331a52f0e506ad687538d36ce47429bc3 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
-  The generic memory test driver definition\r
+  Include file of the NULL memory test driver.\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -12,11 +12,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 **/\r
 \r
-#ifndef _NULL_MEMORY_TEST_H\r
-#define _NULL_MEMORY_TEST_H\r
+#ifndef _NULL_MEMORY_TEST_H_\r
+#define _NULL_MEMORY_TEST_H_\r
 \r
 \r
-#include <Uefi.h>\r
+#include <PiDxe.h>\r
 \r
 \r
 #include <Protocol/GenericMemoryTest.h>\r
@@ -28,60 +28,60 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/MemoryAllocationLib.h>\r
 \r
 //\r
-// attributes for reserved memory before it is promoted to system memory\r
+// Definition of memory status.\r
 //\r
 #define EFI_MEMORY_PRESENT      0x0100000000000000ULL\r
 #define EFI_MEMORY_INITIALIZED  0x0200000000000000ULL\r
 #define EFI_MEMORY_TESTED       0x0400000000000000ULL\r
 \r
+/**\r
+  Initialize the generic memory test.\r
 \r
-//\r
-// Some global define\r
-//\r
-#define GENERIC_CACHELINE_SIZE  0x40\r
+  This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.MemoryTestInit.\r
+  It simply promotes untested reserved memory to system memory without real test.\r
 \r
-//\r
-// The SPARSE_SPAN_SIZE size can not small then the MonoTestSize\r
-//\r
-#define TEST_BLOCK_SIZE   0x2000000\r
-#define QUICK_SPAN_SIZE   (TEST_BLOCK_SIZE >> 2)\r
-#define SPARSE_SPAN_SIZE  (TEST_BLOCK_SIZE >> 4)\r
+  @param  This                Protocol instance pointer. \r
+  @param  Level               The coverage level of the memory test. \r
+  @param  RequireSoftECCInit  Indicate if the memory need software ECC init. \r
 \r
-//\r
-// This structure records every nontested memory range parsed through GCD\r
-// service.\r
-//\r
-#define EFI_NONTESTED_MEMORY_RANGE_SIGNATURE  EFI_SIGNATURE_32 ('N', 'T', 'M', 'E')\r
-typedef struct {\r
-  UINTN                 Signature;\r
-  LIST_ENTRY            Link;\r
-  EFI_PHYSICAL_ADDRESS  StartAddress;\r
-  UINT64                Length;\r
-  UINT64                Capabilities;\r
-  BOOLEAN               Above4G;\r
-  BOOLEAN               AlreadyMapped;\r
-} NONTESTED_MEMORY_RANGE;\r
-\r
-#define NONTESTED_MEMORY_RANGE_FROM_LINK(link) \\r
-        CR(link, NONTESTED_MEMORY_RANGE, Link, EFI_NONTESTED_MEMORY_RANGE_SIGNATURE)\r
+  @retval EFI_SUCCESS         The generic memory test initialized correctly. \r
+  @retval EFI_NO_MEDIA        There is not any non-tested memory found, in this \r
+                              function if not any non-tesed memory found means  \r
+                              that the memory test driver have not detect any \r
+                              non-tested extended memory of current system. \r
 \r
-//\r
-// This is the memory test driver's structure definition\r
-//\r
-#define EFI_GENERIC_MEMORY_TEST_PRIVATE_SIGNATURE EFI_SIGNATURE_32 ('G', 'E', 'M', 'T')\r
-\r
-//\r
-// Function Prototypes\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
-  )\r
-;\r
+  );\r
+\r
+/**\r
+  Perform the memory test.\r
+\r
+  This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.PerformMemoryTest.\r
+  It simply returns EFI_NOT_FOUND.\r
+\r
+  @param  This                Protocol instance pointer. \r
+  @param  TestedMemorySize    Return the tested extended memory size. \r
+  @param  TotalMemorySize     Return the whole system physical memory size, this  \r
+                              value may be changed if in some case some error  \r
+                              DIMMs be disabled. \r
+  @param  ErrorOut            Any time the memory error occurs, this will be \r
+                              TRUE. \r
+  @param  IfTestAbort         Indicate if the user press "ESC" to skip the memory \r
+                              test. \r
+\r
+  @retval EFI_SUCCESS         One block of memory test ok, the block size is hide \r
+                              internally. \r
+  @retval EFI_NOT_FOUND       Indicate all the non-tested memory blocks have  \r
+                              already go through. \r
+  @retval EFI_DEVICE_ERROR    Mis-compare error, and no agent can handle it\r
 \r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 GenPerformMemoryTest (\r
@@ -90,23 +90,48 @@ GenPerformMemoryTest (
   OUT UINT64                                   *TotalMemorySize,\r
   OUT BOOLEAN                                  *ErrorOut,\r
   IN BOOLEAN                                   TestAbort\r
-  )\r
-;\r
+  );\r
+\r
+/**\r
+  The memory test finished.\r
+\r
+  This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.Finished.\r
+  It simply returns EFI_SUCCESS.\r
+\r
+  @param  This                Protocol instance pointer. \r
+\r
+  @retval EFI_SUCCESS         Successful free all the generic memory test driver \r
+                              allocated resource and notify to platform memory \r
+                              test driver that memory test finished. \r
 \r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 GenMemoryTestFinished (\r
   IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This\r
-  )\r
-;\r
+  );\r
+\r
+/**\r
+  Provide capability to test compatible range which used by some special\r
+  driver required using memory range before BDS perform memory test.\r
+\r
+  This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.CompatibleRangeTest.\r
+  It simply set the memory range to system memory.\r
 \r
+  @param  This                Protocol instance pointer. \r
+  @param  StartAddress        The start address of the memory range. \r
+  @param  Length              The memory range's length. \r
+  \r
+  @retval EFI_SUCCESS           The compatible memory range pass the memory test. \r
+  @retval EFI_INVALID_PARAMETER The compatible memory range must be below 16M.\r
+\r
+**/\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
-  )\r
-;\r
+  );\r
 \r
 #endif\r