]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h
1. The original code has a bug on calculate the size of SCRATCH_SIZE. It should be...
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / RuntimeDxe / Variable.h
index d49d82cee6030e10ff000187f365a8c75727a631..85e7f70ed511e06c5ef00a44b69fdcf0a47f5a94 100644 (file)
@@ -14,12 +14,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 **/\r
 \r
-#ifndef _VARIABLE_H\r
-#define _VARIABLE_H\r
+#ifndef _VARIABLE_H_\r
+#define _VARIABLE_H_\r
 \r
 #include <PiDxe.h>\r
 #include <Protocol/VariableWrite.h>\r
-#include <Protocol/FaultTolerantWriteLite.h>\r
+#include <Protocol/FaultTolerantWrite.h>\r
 #include <Protocol/FirmwareVolumeBlock.h>\r
 #include <Protocol/Variable.h>\r
 #include <Library/PcdLib.h>\r
@@ -28,34 +28,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/UefiRuntimeLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
-#include <Library/FvbServiceLib.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/BaseLib.h>\r
+#include <Library/SynchronizationLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
-#include <Guid/VariableInfo.h>\r
 #include <Guid/GlobalVariable.h>\r
-#include <VariableFormat.h>\r
-\r
-\r
+#include <Guid/EventGroup.h>\r
+#include <Guid/VariableFormat.h>\r
 \r
 #define VARIABLE_RECLAIM_THRESHOLD (1024)\r
 \r
-#define VARIABLE_STORE_SIZE FixedPcdGet32(PcdVariableStoreSize)\r
-#define SCRATCH_SIZE        FixedPcdGet32(PcdMaxVariableSize)\r
-\r
-//\r
-// Define GET_PAD_SIZE to optimize compiler\r
-//\r
-#if ((ALIGNMENT == 0) || (ALIGNMENT == 1))\r
-#define GET_PAD_SIZE(a) (0)\r
-#else\r
-#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))\r
-#endif\r
-\r
-#define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
-\r
-\r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
   VARIABLE_HEADER *EndPtr;\r
@@ -74,7 +57,9 @@ typedef struct {
   VARIABLE_GLOBAL VariableGlobal;\r
   UINTN           VolatileLastVariableOffset;\r
   UINTN           NonVolatileLastVariableOffset;\r
-  UINT32          FvbInstance;\r
+  UINTN           CommonVariableTotalSize;\r
+  UINTN           HwErrVariableTotalSize;\r
+  EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbInstance;\r
 } VARIABLE_MODULE_GLOBAL;\r
 \r
 typedef struct {\r
@@ -85,24 +70,28 @@ typedef struct {
   VOID        *Data;\r
 } VARIABLE_CACHE_ENTRY;\r
 \r
+/**\r
+  Writes a buffer to variable storage space, in the working block.\r
 \r
-//\r
-// Functions\r
-//\r
+  This function writes a buffer to variable storage space into firmware\r
+  volume block device. The destination is specified by parameter\r
+  VariableBase. Fault Tolerant Write protocol is used for writing.\r
 \r
-EFI_STATUS\r
-EFIAPI\r
-VariableServiceInitialize (\r
-  IN EFI_HANDLE         ImageHandle,\r
-  IN EFI_SYSTEM_TABLE   *SystemTable\r
-  );\r
+  @param  VariableBase   Base address of variable to write\r
+  @param  Buffer         Point to the data buffer\r
+  @param  BufferSize     The number of bytes of the data Buffer\r
 \r
+  @retval EFI_SUCCESS    The function completed successfully\r
+  @retval EFI_NOT_FOUND  Fail to locate Fault Tolerant Write protocol\r
+  @retval EFI_ABORTED    The function could not complete successfully\r
 \r
+**/\r
 EFI_STATUS\r
 FtwVariableSpace (\r
-  IN EFI_PHYSICAL_ADDRESS   VariableBaseAddress,\r
+  IN EFI_PHYSICAL_ADDRESS   VariableBase,\r
   IN UINT8                  *Buffer,\r
   IN UINTN                  BufferSize\r
   );\r
 \r
+\r
 #endif\r