]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Variable/EmuRuntimeDxe/Variable.h
Retire the "Include/Common" of MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / EmuRuntimeDxe / Variable.h
CommitLineData
8d3a5c82 1/*++\r
2\r
3Copyright (c) 2006 - 2007, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 Variable.h\r
15\r
16Abstract:\r
17\r
18--*/\r
19\r
20#ifndef _VARIABLE_H\r
21#define _VARIABLE_H\r
22\r
23//\r
24// Statements that include other header files\r
25//\r
ed7748fe 26\r
8d3a5c82 27#include <PiDxe.h>\r
ed7748fe 28\r
8d3a5c82 29#include <Protocol/VariableWrite.h>\r
30#include <Protocol/Variable.h>\r
ed7748fe 31\r
8d3a5c82 32#include <Library/BaseMemoryLib.h>\r
33#include <Library/MemoryAllocationLib.h>\r
34#include <Library/DebugLib.h>\r
35#include <Library/UefiRuntimeLib.h>\r
36#include <Library/UefiDriverEntryPoint.h>\r
37#include <Library/UefiBootServicesTableLib.h>\r
38#include <Library/UefiLib.h>\r
39#include <Library/BaseLib.h>\r
3cfb790c 40#include <VariableFormat.h>\r
8d3a5c82 41\r
42#define VARIABLE_STORE_SIZE (64 * 1024)\r
43#define SCRATCH_SIZE (4 * 1024)\r
44\r
45//\r
46// Define GET_PAD_SIZE to optimize compiler\r
47//\r
48#if ((ALIGNMENT == 0) || (ALIGNMENT == 1))\r
49#define GET_PAD_SIZE(a) (0)\r
50#else\r
51#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))\r
52#endif\r
53\r
54#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
55\r
56typedef enum {\r
57 Physical,\r
58 Virtual\r
59} VARIABLE_POINTER_TYPE;\r
60\r
61typedef struct {\r
62 VARIABLE_HEADER *CurrPtr;\r
63 VARIABLE_HEADER *EndPtr;\r
64 VARIABLE_HEADER *StartPtr;\r
65 BOOLEAN Volatile;\r
66} VARIABLE_POINTER_TRACK;\r
67\r
68typedef struct {\r
69 EFI_PHYSICAL_ADDRESS VolatileVariableBase;\r
70 EFI_PHYSICAL_ADDRESS NonVolatileVariableBase;\r
71 EFI_LOCK VariableServicesLock;\r
72} VARIABLE_GLOBAL;\r
73\r
74typedef struct {\r
75 VARIABLE_GLOBAL VariableGlobal[2];\r
76 UINTN VolatileLastVariableOffset;\r
77 UINTN NonVolatileLastVariableOffset;\r
78 UINT32 FvbInstance;\r
79} ESAL_VARIABLE_GLOBAL;\r
80\r
81extern ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
82\r
83//\r
84// Functions\r
85//\r
86EFI_STATUS\r
87EFIAPI\r
88VariableCommonInitialize (\r
89 IN EFI_HANDLE ImageHandle,\r
90 IN EFI_SYSTEM_TABLE *SystemTable\r
91 )\r
92;\r
93\r
94EFI_STATUS\r
95EFIAPI\r
96VariableServiceInitialize (\r
97 IN EFI_HANDLE ImageHandle,\r
98 IN EFI_SYSTEM_TABLE *SystemTable\r
99 )\r
100;\r
101\r
102VOID\r
103EFIAPI\r
104VariableClassAddressChangeEvent (\r
105 IN EFI_EVENT Event,\r
106 IN VOID *Context\r
107 )\r
108;\r
109\r
110EFI_STATUS\r
111EFIAPI\r
112GetVariable (\r
113 IN CHAR16 *VariableName,\r
114 IN EFI_GUID * VendorGuid,\r
115 OUT UINT32 *Attributes OPTIONAL,\r
116 IN OUT UINTN *DataSize,\r
117 OUT VOID *Data,\r
118 IN VARIABLE_GLOBAL * Global,\r
119 IN UINT32 Instance\r
120 )\r
121;\r
122\r
123EFI_STATUS\r
124EFIAPI\r
125GetNextVariableName (\r
126 IN OUT UINTN *VariableNameSize,\r
127 IN OUT CHAR16 *VariableName,\r
128 IN OUT EFI_GUID *VendorGuid,\r
129 IN VARIABLE_GLOBAL *Global,\r
130 IN UINT32 Instance\r
131 )\r
132;\r
133\r
134EFI_STATUS\r
135EFIAPI\r
136SetVariable (\r
137 IN CHAR16 *VariableName,\r
138 IN EFI_GUID *VendorGuid,\r
139 IN UINT32 Attributes,\r
140 IN UINTN DataSize,\r
141 IN VOID *Data,\r
142 IN VARIABLE_GLOBAL *Global,\r
143 IN UINTN *VolatileOffset,\r
144 IN UINTN *NonVolatileOffset,\r
145 IN UINT32 Instance\r
146 )\r
147;\r
148\r
149EFI_STATUS\r
150EFIAPI\r
151QueryVariableInfo (\r
152 IN UINT32 Attributes,\r
153 OUT UINT64 *MaximumVariableStorageSize,\r
154 OUT UINT64 *RemainingVariableStorageSize,\r
155 OUT UINT64 *MaximumVariableSize,\r
156 IN VARIABLE_GLOBAL *Global,\r
157 IN UINT32 Instance\r
158 )\r
159;\r
160\r
161#endif\r