]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.h
remove unnecessary check for NULL pointer.
[mirror_edk2.git] / EdkModulePkg / Universal / Variable / RuntimeDxe / Variable.h
CommitLineData
878ddf1f 1/*++\r
2\r
ce8bd86e 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
878ddf1f 11\r
12Module Name:\r
13\r
14 Variable.h\r
ce8bd86e 15\r
878ddf1f 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
26\r
27//\r
28// BugBug: We need relcate the head file.\r
ce8bd86e 29//\r
878ddf1f 30#include <Common/Variable.h>\r
31\r
c65c1e1e 32#define VARIABLE_RECLAIM_THRESHOLD (1024)\r
878ddf1f 33\r
34#define VARIABLE_STORE_SIZE (64 * 1024)\r
35#define SCRATCH_SIZE (4 * 1024)\r
36\r
37//\r
38// Define GET_PAD_SIZE to optimize compiler\r
39//\r
40#if ((ALIGNMENT == 0) || (ALIGNMENT == 1))\r
41#define GET_PAD_SIZE(a) (0)\r
42#else\r
43#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))\r
44#endif\r
45\r
46#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
47\r
48typedef enum {\r
49 Physical,\r
50 Virtual\r
51} VARIABLE_POINTER_TYPE;\r
52\r
53typedef struct {\r
54 VARIABLE_HEADER *CurrPtr;\r
55 VARIABLE_HEADER *EndPtr;\r
56 VARIABLE_HEADER *StartPtr;\r
57 BOOLEAN Volatile;\r
58} VARIABLE_POINTER_TRACK;\r
59\r
60typedef struct {\r
61 EFI_PHYSICAL_ADDRESS VolatileVariableBase;\r
62 EFI_PHYSICAL_ADDRESS NonVolatileVariableBase;\r
6ed71dcc 63 EFI_LOCK VariableServicesLock;\r
878ddf1f 64} VARIABLE_GLOBAL;\r
65\r
66typedef struct {\r
6ed71dcc 67 VARIABLE_GLOBAL VariableGlobal[2];\r
878ddf1f 68 UINTN VolatileLastVariableOffset;\r
69 UINTN NonVolatileLastVariableOffset;\r
70 UINT32 FvbInstance;\r
71} ESAL_VARIABLE_GLOBAL;\r
72\r
92dda53e 73extern ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
74\r
878ddf1f 75//\r
76// Functions\r
77//\r
78EFI_STATUS\r
79EFIAPI\r
80VariableCommonInitialize (\r
81 IN EFI_HANDLE ImageHandle,\r
82 IN EFI_SYSTEM_TABLE *SystemTable\r
83 )\r
84;\r
85\r
86EFI_STATUS\r
87EFIAPI\r
88VariableServiceInitialize (\r
89 IN EFI_HANDLE ImageHandle,\r
90 IN EFI_SYSTEM_TABLE *SystemTable\r
91 )\r
92;\r
93\r
94VOID\r
95EFIAPI\r
96VariableClassAddressChangeEvent (\r
97 IN EFI_EVENT Event,\r
98 IN VOID *Context\r
99 )\r
100;\r
101\r
102EFI_STATUS\r
103EFIAPI\r
104GetVariable (\r
105 IN CHAR16 *VariableName,\r
106 IN EFI_GUID * VendorGuid,\r
107 OUT UINT32 *Attributes OPTIONAL,\r
108 IN OUT UINTN *DataSize,\r
109 OUT VOID *Data,\r
110 IN VARIABLE_GLOBAL * Global,\r
111 IN UINT32 Instance\r
112 )\r
113;\r
114\r
115EFI_STATUS\r
116EFIAPI\r
117GetNextVariableName (\r
118 IN OUT UINTN *VariableNameSize,\r
119 IN OUT CHAR16 *VariableName,\r
120 IN OUT EFI_GUID *VendorGuid,\r
121 IN VARIABLE_GLOBAL *Global,\r
122 IN UINT32 Instance\r
123 )\r
124;\r
125\r
126EFI_STATUS\r
127EFIAPI\r
128SetVariable (\r
129 IN CHAR16 *VariableName,\r
130 IN EFI_GUID *VendorGuid,\r
131 IN UINT32 Attributes,\r
132 IN UINTN DataSize,\r
133 IN VOID *Data,\r
134 IN VARIABLE_GLOBAL *Global,\r
135 IN UINTN *VolatileOffset,\r
136 IN UINTN *NonVolatileOffset,\r
137 IN UINT32 Instance\r
138 )\r
139;\r
140\r
045f4521 141EFI_STATUS\r
142EFIAPI\r
143QueryVariableInfo (\r
144 IN UINT32 Attributes,\r
145 OUT UINT64 *MaximumVariableStorageSize,\r
146 OUT UINT64 *RemainingVariableStorageSize,\r
147 OUT UINT64 *MaximumVariableSize,\r
148 IN VARIABLE_GLOBAL *Global,\r
149 IN UINT32 Instance\r
150 )\r
151;\r
045f4521 152\r
878ddf1f 153#endif\r