]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Variable/EmuRuntimeDxe/Variable.h
Add comments and DoxyGen format for these files.
[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
518d395c 40#include <Library/PcdLib.h>\r
3cfb790c 41#include <VariableFormat.h>\r
8d3a5c82 42\r
518d395c 43#define VARIABLE_STORE_SIZE FixedPcdGet32(PcdVariableStoreSize)\r
44#define SCRATCH_SIZE FixedPcdGet32(PcdMaxVariableSize)\r
8d3a5c82 45\r
46//\r
47// Define GET_PAD_SIZE to optimize compiler\r
48//\r
49#if ((ALIGNMENT == 0) || (ALIGNMENT == 1))\r
50#define GET_PAD_SIZE(a) (0)\r
51#else\r
52#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))\r
53#endif\r
54\r
55#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
56\r
57typedef enum {\r
58 Physical,\r
59 Virtual\r
60} VARIABLE_POINTER_TYPE;\r
61\r
62typedef struct {\r
63 VARIABLE_HEADER *CurrPtr;\r
64 VARIABLE_HEADER *EndPtr;\r
65 VARIABLE_HEADER *StartPtr;\r
66 BOOLEAN Volatile;\r
67} VARIABLE_POINTER_TRACK;\r
68\r
69typedef struct {\r
70 EFI_PHYSICAL_ADDRESS VolatileVariableBase;\r
71 EFI_PHYSICAL_ADDRESS NonVolatileVariableBase;\r
72 EFI_LOCK VariableServicesLock;\r
73} VARIABLE_GLOBAL;\r
74\r
75typedef struct {\r
76 VARIABLE_GLOBAL VariableGlobal[2];\r
77 UINTN VolatileLastVariableOffset;\r
78 UINTN NonVolatileLastVariableOffset;\r
79 UINT32 FvbInstance;\r
80} ESAL_VARIABLE_GLOBAL;\r
81\r
82extern ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
83\r
84//\r
85// Functions\r
86//\r
87EFI_STATUS\r
88EFIAPI\r
89VariableCommonInitialize (\r
90 IN EFI_HANDLE ImageHandle,\r
91 IN EFI_SYSTEM_TABLE *SystemTable\r
92 )\r
93;\r
94\r
95EFI_STATUS\r
96EFIAPI\r
97VariableServiceInitialize (\r
98 IN EFI_HANDLE ImageHandle,\r
99 IN EFI_SYSTEM_TABLE *SystemTable\r
100 )\r
101;\r
102\r
103VOID\r
104EFIAPI\r
105VariableClassAddressChangeEvent (\r
106 IN EFI_EVENT Event,\r
107 IN VOID *Context\r
108 )\r
109;\r
110\r
111EFI_STATUS\r
112EFIAPI\r
113GetVariable (\r
114 IN CHAR16 *VariableName,\r
115 IN EFI_GUID * VendorGuid,\r
116 OUT UINT32 *Attributes OPTIONAL,\r
117 IN OUT UINTN *DataSize,\r
118 OUT VOID *Data,\r
119 IN VARIABLE_GLOBAL * Global,\r
120 IN UINT32 Instance\r
121 )\r
122;\r
123\r
124EFI_STATUS\r
125EFIAPI\r
126GetNextVariableName (\r
127 IN OUT UINTN *VariableNameSize,\r
128 IN OUT CHAR16 *VariableName,\r
129 IN OUT EFI_GUID *VendorGuid,\r
130 IN VARIABLE_GLOBAL *Global,\r
131 IN UINT32 Instance\r
132 )\r
133;\r
134\r
135EFI_STATUS\r
136EFIAPI\r
137SetVariable (\r
138 IN CHAR16 *VariableName,\r
139 IN EFI_GUID *VendorGuid,\r
140 IN UINT32 Attributes,\r
141 IN UINTN DataSize,\r
142 IN VOID *Data,\r
143 IN VARIABLE_GLOBAL *Global,\r
144 IN UINTN *VolatileOffset,\r
145 IN UINTN *NonVolatileOffset,\r
146 IN UINT32 Instance\r
147 )\r
148;\r
149\r
150EFI_STATUS\r
151EFIAPI\r
152QueryVariableInfo (\r
153 IN UINT32 Attributes,\r
154 OUT UINT64 *MaximumVariableStorageSize,\r
155 OUT UINT64 *RemainingVariableStorageSize,\r
156 OUT UINT64 *MaximumVariableSize,\r
157 IN VARIABLE_GLOBAL *Global,\r
158 IN UINT32 Instance\r
159 )\r
160;\r
161\r
162#endif\r