]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/VariableRuntimeDxe/Variable.h
add English.inf, EdkFvbServiceLib.inf and Variable.inf
[mirror_edk2.git] / MdeModulePkg / Universal / VariableRuntimeDxe / Variable.h
diff --git a/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.h b/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.h
new file mode 100644 (file)
index 0000000..aff0b82
--- /dev/null
@@ -0,0 +1,158 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. 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
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  Variable.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef _VARIABLE_H\r
+#define _VARIABLE_H\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+//\r
+// Statements that include other header files\r
+//\r
+\r
+//\r
+// BugBug: We need relcate the head file.\r
+//\r
+#include <Common/Variable.h>\r
+\r
+#define VARIABLE_RECLAIM_THRESHOLD (1024)\r
+\r
+#define VARIABLE_STORE_SIZE (64 * 1024)\r
+#define SCRATCH_SIZE        (4 * 1024)\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 GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
+\r
+typedef enum {\r
+  Physical,\r
+  Virtual\r
+} VARIABLE_POINTER_TYPE;\r
+\r
+typedef struct {\r
+  VARIABLE_HEADER *CurrPtr;\r
+  VARIABLE_HEADER *EndPtr;\r
+  VARIABLE_HEADER *StartPtr;\r
+  BOOLEAN         Volatile;\r
+} VARIABLE_POINTER_TRACK;\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS  VolatileVariableBase;\r
+  EFI_PHYSICAL_ADDRESS  NonVolatileVariableBase;\r
+  EFI_LOCK              VariableServicesLock;\r
+} VARIABLE_GLOBAL;\r
+\r
+typedef struct {\r
+  VARIABLE_GLOBAL VariableGlobal[2];\r
+  UINTN           VolatileLastVariableOffset;\r
+  UINTN           NonVolatileLastVariableOffset;\r
+  UINT32          FvbInstance;\r
+} ESAL_VARIABLE_GLOBAL;\r
+\r
+extern ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
+\r
+//\r
+// Functions\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+VariableCommonInitialize (\r
+  IN EFI_HANDLE         ImageHandle,\r
+  IN EFI_SYSTEM_TABLE   *SystemTable\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+VariableServiceInitialize (\r
+  IN EFI_HANDLE         ImageHandle,\r
+  IN EFI_SYSTEM_TABLE   *SystemTable\r
+  )\r
+;\r
+\r
+VOID\r
+EFIAPI\r
+VariableClassAddressChangeEvent (\r
+  IN EFI_EVENT        Event,\r
+  IN VOID             *Context\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+GetVariable (\r
+  IN      CHAR16            *VariableName,\r
+  IN      EFI_GUID          * VendorGuid,\r
+  OUT     UINT32            *Attributes OPTIONAL,\r
+  IN OUT  UINTN             *DataSize,\r
+  OUT     VOID              *Data,\r
+  IN      VARIABLE_GLOBAL   * Global,\r
+  IN      UINT32            Instance\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+GetNextVariableName (\r
+  IN OUT  UINTN             *VariableNameSize,\r
+  IN OUT  CHAR16            *VariableName,\r
+  IN OUT  EFI_GUID          *VendorGuid,\r
+  IN      VARIABLE_GLOBAL   *Global,\r
+  IN      UINT32            Instance\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+SetVariable (\r
+  IN CHAR16                  *VariableName,\r
+  IN EFI_GUID                *VendorGuid,\r
+  IN UINT32                  Attributes,\r
+  IN UINTN                   DataSize,\r
+  IN VOID                    *Data,\r
+  IN VARIABLE_GLOBAL         *Global,\r
+  IN UINTN                   *VolatileOffset,\r
+  IN UINTN                   *NonVolatileOffset,\r
+  IN UINT32                  Instance\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+QueryVariableInfo (\r
+  IN  UINT32                 Attributes,\r
+  OUT UINT64                 *MaximumVariableStorageSize,\r
+  OUT UINT64                 *RemainingVariableStorageSize,\r
+  OUT UINT64                 *MaximumVariableSize,\r
+  IN  VARIABLE_GLOBAL        *Global,\r
+  IN  UINT32                 Instance\r
+  )\r
+;\r
+\r
+#endif\r