]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - EdkModulePkg/Universal/PCD/Dxe/Service.h
Add version check in both PCD database generation and service driver.
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Dxe / Service.h
... / ...
CommitLineData
1/** @file\r
2Private functions used by PCD DXE driver.\r
3\r
4Copyright (c) 2006, Intel Corporation \r
5All rights reserved. This program and the accompanying materials \r
6are licensed and made available under the terms and conditions of the BSD License \r
7which accompanies this distribution. The full text of the license may be found at \r
8http://opensource.org/licenses/bsd-license.php \r
9 \r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13\r
14Module Name: Service.h\r
15\r
16**/\r
17\r
18#ifndef _SERVICE_H\r
19#define _SERVICE_H\r
20\r
21//\r
22// Please make sure the PCD Serivce PEIM Version is consistent with\r
23// the version of PCD Database generation tool\r
24//\r
25#define PCD_DXE_SERVICE_DRIVER_VERSION 1\r
26\r
27//\r
28// PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
29// and generated by PCD Database generation tool.\r
30//\r
31#if (PCD_DXE_SERVICE_PEIM_VERSION != PCD_DXE_DATABASE_GENTOOL_VERSION)\r
32 #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"\r
33#endif\r
34\r
35//\r
36// Internal Functions\r
37//\r
38\r
39EFI_STATUS\r
40SetWorker (\r
41 UINTN TokenNumber,\r
42 VOID *Data,\r
43 UINTN Size,\r
44 BOOLEAN PtrType\r
45 )\r
46;\r
47\r
48EFI_STATUS\r
49ExSetWorker (\r
50 IN UINT32 ExTokenNumber,\r
51 IN CONST EFI_GUID *Guid,\r
52 VOID *Data,\r
53 UINTN Size,\r
54 BOOLEAN PtrType\r
55 )\r
56;\r
57\r
58\r
59VOID *\r
60GetWorker (\r
61 UINTN TokenNumber\r
62 )\r
63;\r
64\r
65VOID *\r
66ExGetWorker (\r
67 IN CONST EFI_GUID *Guid,\r
68 IN UINTN ExTokenNumber,\r
69 IN UINTN GetSize\r
70 ) \r
71;\r
72\r
73UINT32\r
74GetSkuEnabledTokenNumber (\r
75 UINT32 LocalTokenNumber,\r
76 UINTN Size,\r
77 BOOLEAN IsPeiDb\r
78 ) \r
79;\r
80\r
81EFI_STATUS\r
82GetHiiVariable (\r
83 IN EFI_GUID *VariableGuid,\r
84 IN UINT16 *VariableName,\r
85 OUT VOID ** VariableData,\r
86 OUT UINTN *VariableSize\r
87 )\r
88;\r
89\r
90EFI_STATUS\r
91DxeRegisterCallBackWorker (\r
92 IN UINTN TokenNumber,\r
93 IN CONST EFI_GUID *Guid, OPTIONAL\r
94 IN PCD_PROTOCOL_CALLBACK CallBackFunction,\r
95 IN BOOLEAN Reigster\r
96);\r
97\r
98EFI_STATUS\r
99DxeGetNextTokenWorker (\r
100 IN OUT UINTN *Token,\r
101 IN CONST EFI_GUID *Guid OPTIONAL\r
102 );\r
103\r
104VOID\r
105BuildPcdDxeDataBase (\r
106 VOID\r
107);\r
108\r
109\r
110typedef struct {\r
111 UINTN TokenNumber;\r
112 UINTN Size;\r
113 UINT32 LocalTokenNumberAlias;\r
114 BOOLEAN IsPeiDb;\r
115} EX_PCD_ENTRY_ATTRIBUTE;\r
116\r
117VOID\r
118GetExPcdTokenAttributes (\r
119 IN CONST EFI_GUID *Guid,\r
120 IN UINT32 ExTokenNumber,\r
121 OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr\r
122 )\r
123;\r
124\r
125//\r
126// Protocol Interface function declaration.\r
127//\r
128VOID\r
129EFIAPI\r
130DxePcdSetSku (\r
131 IN SKU_ID SkuId\r
132 )\r
133;\r
134\r
135\r
136UINT8\r
137EFIAPI\r
138DxePcdGet8 (\r
139 IN PCD_TOKEN_NUMBER TokenNumber\r
140 )\r
141;\r
142\r
143\r
144UINT16\r
145EFIAPI\r
146DxePcdGet16 (\r
147 IN PCD_TOKEN_NUMBER TokenNumber\r
148 )\r
149;\r
150\r
151\r
152UINT32\r
153EFIAPI\r
154DxePcdGet32 (\r
155 IN PCD_TOKEN_NUMBER TokenNumber\r
156 )\r
157;\r
158\r
159\r
160UINT64\r
161EFIAPI\r
162DxePcdGet64 (\r
163 IN PCD_TOKEN_NUMBER TokenNumber\r
164 )\r
165;\r
166\r
167\r
168VOID *\r
169EFIAPI\r
170DxePcdGetPtr (\r
171 IN PCD_TOKEN_NUMBER TokenNumber\r
172 )\r
173;\r
174\r
175\r
176BOOLEAN\r
177EFIAPI\r
178DxePcdGetBool (\r
179 IN PCD_TOKEN_NUMBER TokenNumber\r
180 )\r
181;\r
182\r
183\r
184UINTN\r
185EFIAPI\r
186DxePcdGetSize (\r
187 IN PCD_TOKEN_NUMBER TokenNumber\r
188 )\r
189;\r
190\r
191\r
192UINT8\r
193EFIAPI\r
194DxePcdGet8Ex (\r
195 IN CONST EFI_GUID *Guid,\r
196 IN PCD_TOKEN_NUMBER TokenNumber\r
197 )\r
198;\r
199\r
200\r
201UINT16\r
202EFIAPI\r
203DxePcdGet16Ex (\r
204 IN CONST EFI_GUID *Guid,\r
205 IN PCD_TOKEN_NUMBER TokenNumber\r
206 )\r
207;\r
208\r
209\r
210UINT32\r
211EFIAPI\r
212DxePcdGet32Ex (\r
213 IN CONST EFI_GUID *Guid,\r
214 IN PCD_TOKEN_NUMBER TokenNumber\r
215 )\r
216;\r
217\r
218\r
219\r
220UINT64\r
221EFIAPI\r
222DxePcdGet64Ex (\r
223 IN CONST EFI_GUID *Guid,\r
224 IN PCD_TOKEN_NUMBER TokenNumber\r
225 )\r
226;\r
227\r
228\r
229\r
230VOID *\r
231EFIAPI\r
232DxePcdGetPtrEx (\r
233 IN CONST EFI_GUID *Guid,\r
234 IN PCD_TOKEN_NUMBER TokenNumber\r
235 )\r
236;\r
237\r
238\r
239BOOLEAN\r
240EFIAPI\r
241DxePcdGetBoolEx (\r
242 IN CONST EFI_GUID *Guid,\r
243 IN PCD_TOKEN_NUMBER TokenNumber\r
244 )\r
245;\r
246\r
247\r
248UINTN\r
249EFIAPI\r
250DxePcdGetSizeEx (\r
251 IN CONST EFI_GUID *Guid,\r
252 IN PCD_TOKEN_NUMBER TokenNumber\r
253 )\r
254;\r
255\r
256\r
257EFI_STATUS\r
258EFIAPI\r
259DxePcdSet8 (\r
260 IN PCD_TOKEN_NUMBER TokenNumber,\r
261 IN UINT8 Value\r
262 )\r
263;\r
264\r
265\r
266EFI_STATUS\r
267EFIAPI\r
268DxePcdSet16 (\r
269 IN PCD_TOKEN_NUMBER TokenNumber,\r
270 IN UINT16 Value\r
271 )\r
272;\r
273\r
274\r
275EFI_STATUS\r
276EFIAPI\r
277DxePcdSet32 (\r
278 IN PCD_TOKEN_NUMBER TokenNumber,\r
279 IN UINT32 Value\r
280 )\r
281;\r
282\r
283\r
284EFI_STATUS\r
285EFIAPI\r
286DxePcdSet64 (\r
287 IN PCD_TOKEN_NUMBER TokenNumber,\r
288 IN UINT64 Value\r
289 )\r
290;\r
291\r
292\r
293EFI_STATUS\r
294EFIAPI\r
295DxePcdSetPtr (\r
296 IN PCD_TOKEN_NUMBER TokenNumber,\r
297 IN UINTN SizeOfBuffer,\r
298 IN VOID *Buffer\r
299 )\r
300;\r
301\r
302\r
303EFI_STATUS\r
304EFIAPI\r
305DxePcdSetBool (\r
306 IN PCD_TOKEN_NUMBER TokenNumber,\r
307 IN BOOLEAN Value\r
308 )\r
309;\r
310\r
311\r
312EFI_STATUS\r
313EFIAPI\r
314DxePcdSet8Ex (\r
315 IN CONST EFI_GUID *Guid,\r
316 IN PCD_TOKEN_NUMBER TokenNumber,\r
317 IN UINT8 Value\r
318 )\r
319;\r
320\r
321\r
322EFI_STATUS\r
323EFIAPI\r
324DxePcdSet16Ex (\r
325 IN CONST EFI_GUID *Guid,\r
326 IN PCD_TOKEN_NUMBER TokenNumber,\r
327 IN UINT16 Value\r
328 )\r
329;\r
330\r
331\r
332EFI_STATUS\r
333EFIAPI\r
334DxePcdSet32Ex (\r
335 IN CONST EFI_GUID *Guid,\r
336 IN PCD_TOKEN_NUMBER TokenNumber,\r
337 IN UINT32 Value\r
338 )\r
339;\r
340\r
341\r
342EFI_STATUS\r
343EFIAPI\r
344DxePcdSet64Ex (\r
345 IN CONST EFI_GUID *Guid,\r
346 IN PCD_TOKEN_NUMBER TokenNumber,\r
347 IN UINT64 Value\r
348 )\r
349;\r
350\r
351\r
352EFI_STATUS\r
353EFIAPI\r
354DxePcdSetPtrEx (\r
355 IN CONST EFI_GUID *Guid,\r
356 IN PCD_TOKEN_NUMBER TokenNumber,\r
357 IN UINTN SizeOfBuffer,\r
358 IN VOID *Buffer\r
359 )\r
360;\r
361\r
362\r
363EFI_STATUS\r
364EFIAPI\r
365DxePcdSetBoolEx (\r
366 IN CONST EFI_GUID *Guid,\r
367 IN PCD_TOKEN_NUMBER TokenNumber,\r
368 IN BOOLEAN Value\r
369 )\r
370;\r
371\r
372\r
373\r
374EFI_STATUS\r
375EFIAPI\r
376PcdRegisterCallBackOnSet (\r
377 IN PCD_TOKEN_NUMBER TokenNumber,\r
378 IN CONST EFI_GUID *Guid, OPTIONAL\r
379 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
380 )\r
381;\r
382\r
383\r
384EFI_STATUS\r
385EFIAPI\r
386PcdUnRegisterCallBackOnSet (\r
387 IN PCD_TOKEN_NUMBER TokenNumber,\r
388 IN CONST EFI_GUID *Guid, OPTIONAL\r
389 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
390 )\r
391;\r
392\r
393\r
394EFI_STATUS\r
395EFIAPI\r
396DxePcdGetNextToken (\r
397 IN CONST EFI_GUID *Guid, OPTIONAL\r
398 IN OUT PCD_TOKEN_NUMBER *TokenNumber\r
399 )\r
400;\r
401\r
402EFI_STATUS\r
403SetWorkerByLocalTokenNumber (\r
404 UINT32 LocalTokenNumber,\r
405 VOID *Data,\r
406 UINTN Size,\r
407 BOOLEAN PtrType,\r
408 BOOLEAN IsPeiDb\r
409 )\r
410;\r
411\r
412extern EFI_GUID gPcdDataBaseHobGuid;\r
413\r
414extern PCD_DATABASE * gPcdDatabase;\r
415\r
416extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;\r
417\r
418#endif\r