]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/PCD/Dxe/Service.h
Modules cleanup.
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Dxe / Service.h
CommitLineData
80408db0 1/** @file\r
2Private functions used by PCD DXE driver.\r
3\r
4Copyright (c) 2006 - 2007, 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
859b72fa
A
21#include <PiDxe.h>\r
22#include <Protocol/Pcd.h>\r
23#include <Library/BaseLib.h>\r
24#include <Library/DebugLib.h>\r
25#include <Library/UefiLib.h>\r
26#include <Library/UefiDriverEntryPoint.h>\r
27#include <Library/PcdLib.h>\r
28#include <Library/HobLib.h>\r
29#include <Library/MemoryAllocationLib.h>\r
30#include <Library/UefiBootServicesTableLib.h>\r
31#include <Library/BaseMemoryLib.h>\r
32#include <Library/UefiRuntimeServicesTableLib.h>\r
80408db0 33\r
34//\r
35// Please make sure the PCD Serivce PEIM Version is consistent with\r
36// the version of PCD Database generation tool\r
37//\r
38#define PCD_SERVICE_DXE_DRIVER_VERSION 2\r
39\r
40//\r
41// PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
42// and generated by PCD Database generation tool.\r
43//\r
44#if (PCD_SERVICE_DXE_DRIVER_VERSION != PCD_DXE_SERVICE_DRIVER_AUTOGEN_VERSION)\r
be82f9ff 45// #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"\r
80408db0 46#endif\r
47\r
48//\r
49// Protocol Interface function declaration.\r
50//\r
51VOID\r
52EFIAPI\r
53DxePcdSetSku (\r
54 IN UINTN SkuId\r
55 )\r
56;\r
57\r
58\r
59UINT8\r
60EFIAPI\r
61DxePcdGet8 (\r
62 IN UINTN TokenNumber\r
63 )\r
64;\r
65\r
66\r
67UINT16\r
68EFIAPI\r
69DxePcdGet16 (\r
70 IN UINTN TokenNumber\r
71 )\r
72;\r
73\r
74\r
75UINT32\r
76EFIAPI\r
77DxePcdGet32 (\r
78 IN UINTN TokenNumber\r
79 )\r
80;\r
81\r
82\r
83UINT64\r
84EFIAPI\r
85DxePcdGet64 (\r
86 IN UINTN TokenNumber\r
87 )\r
88;\r
89\r
90\r
91VOID *\r
92EFIAPI\r
93DxePcdGetPtr (\r
94 IN UINTN TokenNumber\r
95 )\r
96;\r
97\r
98\r
99BOOLEAN\r
100EFIAPI\r
101DxePcdGetBool (\r
102 IN UINTN TokenNumber\r
103 )\r
104;\r
105\r
106\r
107UINTN\r
108EFIAPI\r
109DxePcdGetSize (\r
110 IN UINTN TokenNumber\r
111 )\r
112;\r
113\r
114\r
115UINT8\r
116EFIAPI\r
117DxePcdGet8Ex (\r
118 IN CONST EFI_GUID *Guid,\r
119 IN UINTN TokenNumber\r
120 )\r
121;\r
122\r
123\r
124UINT16\r
125EFIAPI\r
126DxePcdGet16Ex (\r
127 IN CONST EFI_GUID *Guid,\r
128 IN UINTN TokenNumber\r
129 )\r
130;\r
131\r
132\r
133UINT32\r
134EFIAPI\r
135DxePcdGet32Ex (\r
136 IN CONST EFI_GUID *Guid,\r
137 IN UINTN TokenNumber\r
138 )\r
139;\r
140\r
141\r
142\r
143UINT64\r
144EFIAPI\r
145DxePcdGet64Ex (\r
146 IN CONST EFI_GUID *Guid,\r
147 IN UINTN TokenNumber\r
148 )\r
149;\r
150\r
151\r
152\r
153VOID *\r
154EFIAPI\r
155DxePcdGetPtrEx (\r
156 IN CONST EFI_GUID *Guid,\r
157 IN UINTN TokenNumber\r
158 )\r
159;\r
160\r
161\r
162BOOLEAN\r
163EFIAPI\r
164DxePcdGetBoolEx (\r
165 IN CONST EFI_GUID *Guid,\r
166 IN UINTN TokenNumber\r
167 )\r
168;\r
169\r
170\r
171UINTN\r
172EFIAPI\r
173DxePcdGetSizeEx (\r
174 IN CONST EFI_GUID *Guid,\r
175 IN UINTN TokenNumber\r
176 )\r
177;\r
178\r
179\r
180EFI_STATUS\r
181EFIAPI\r
182DxePcdSet8 (\r
183 IN UINTN TokenNumber,\r
184 IN UINT8 Value\r
185 )\r
186;\r
187\r
188\r
189EFI_STATUS\r
190EFIAPI\r
191DxePcdSet16 (\r
192 IN UINTN TokenNumber,\r
193 IN UINT16 Value\r
194 )\r
195;\r
196\r
197\r
198EFI_STATUS\r
199EFIAPI\r
200DxePcdSet32 (\r
201 IN UINTN TokenNumber,\r
202 IN UINT32 Value\r
203 )\r
204;\r
205\r
206\r
207EFI_STATUS\r
208EFIAPI\r
209DxePcdSet64 (\r
210 IN UINTN TokenNumber,\r
211 IN UINT64 Value\r
212 )\r
213;\r
214\r
215\r
216EFI_STATUS\r
217EFIAPI\r
218DxePcdSetPtr (\r
219 IN UINTN TokenNumber,\r
220 IN UINTN *SizeOfBuffer,\r
221 IN VOID *Buffer\r
222 )\r
223;\r
224\r
225\r
226EFI_STATUS\r
227EFIAPI\r
228DxePcdSetBool (\r
229 IN UINTN TokenNumber,\r
230 IN BOOLEAN Value\r
231 )\r
232;\r
233\r
234\r
235EFI_STATUS\r
236EFIAPI\r
237DxePcdSet8Ex (\r
238 IN CONST EFI_GUID *Guid,\r
239 IN UINTN TokenNumber,\r
240 IN UINT8 Value\r
241 )\r
242;\r
243\r
244\r
245EFI_STATUS\r
246EFIAPI\r
247DxePcdSet16Ex (\r
248 IN CONST EFI_GUID *Guid,\r
249 IN UINTN TokenNumber,\r
250 IN UINT16 Value\r
251 )\r
252;\r
253\r
254\r
255EFI_STATUS\r
256EFIAPI\r
257DxePcdSet32Ex (\r
258 IN CONST EFI_GUID *Guid,\r
259 IN UINTN TokenNumber,\r
260 IN UINT32 Value\r
261 )\r
262;\r
263\r
264\r
265EFI_STATUS\r
266EFIAPI\r
267DxePcdSet64Ex (\r
268 IN CONST EFI_GUID *Guid,\r
269 IN UINTN TokenNumber,\r
270 IN UINT64 Value\r
271 )\r
272;\r
273\r
274\r
275EFI_STATUS\r
276EFIAPI\r
277DxePcdSetPtrEx (\r
278 IN CONST EFI_GUID *Guid,\r
279 IN UINTN TokenNumber,\r
280 IN OUT UINTN *SizeOfBuffer,\r
281 IN VOID *Buffer\r
282 )\r
283;\r
284\r
285\r
286EFI_STATUS\r
287EFIAPI\r
288DxePcdSetBoolEx (\r
289 IN CONST EFI_GUID *Guid,\r
290 IN UINTN TokenNumber,\r
291 IN BOOLEAN Value\r
292 )\r
293;\r
294\r
295\r
296\r
297EFI_STATUS\r
298EFIAPI\r
299DxeRegisterCallBackOnSet (\r
300 IN CONST EFI_GUID *Guid, OPTIONAL\r
301 IN UINTN TokenNumber,\r
302 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
303 )\r
304;\r
305\r
306\r
307EFI_STATUS\r
308EFIAPI\r
309DxeUnRegisterCallBackOnSet (\r
310 IN CONST EFI_GUID *Guid, OPTIONAL\r
311 IN UINTN TokenNumber,\r
312 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
313 )\r
314;\r
315\r
316\r
317EFI_STATUS\r
318EFIAPI\r
319DxePcdGetNextToken (\r
320 IN CONST EFI_GUID *Guid, OPTIONAL\r
321 IN OUT UINTN *TokenNumber\r
322 )\r
323;\r
324\r
325\r
326\r
327EFI_STATUS\r
328EFIAPI\r
329DxePcdGetNextTokenSpace (\r
330 IN OUT CONST EFI_GUID **Guid\r
331 )\r
332;\r
333\r
334\r
335typedef struct {\r
336 LIST_ENTRY Node;\r
337 PCD_PROTOCOL_CALLBACK CallbackFn;\r
338} CALLBACK_FN_ENTRY;\r
339\r
340#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field)\r
341\r
342//\r
343// Internal Functions\r
344//\r
345\r
346EFI_STATUS\r
347SetValueWorker (\r
348 IN UINTN TokenNumber,\r
349 IN VOID *Data,\r
350 IN UINTN Size\r
351 )\r
352;\r
353\r
354EFI_STATUS\r
355SetWorker (\r
356 IN UINTN TokenNumber,\r
357 IN VOID *Data,\r
358 IN OUT UINTN *Size,\r
359 IN BOOLEAN PtrType\r
360 )\r
361;\r
362\r
363\r
364EFI_STATUS\r
365ExSetValueWorker (\r
366 IN UINTN ExTokenNumber,\r
367 IN CONST EFI_GUID *Guid,\r
368 IN VOID *Data,\r
369 IN UINTN SetSize\r
370 )\r
371;\r
372\r
373\r
374\r
375EFI_STATUS\r
376ExSetWorker (\r
377 IN UINTN ExTokenNumber,\r
378 IN CONST EFI_GUID *Guid,\r
379 IN VOID *Data,\r
380 IN OUT UINTN *Size,\r
381 IN BOOLEAN PtrType\r
382 )\r
383;\r
384\r
385\r
386VOID *\r
387GetWorker (\r
388 IN UINTN TokenNumber,\r
389 IN UINTN GetSize\r
390 )\r
391;\r
392\r
393VOID *\r
394ExGetWorker (\r
395 IN CONST EFI_GUID *Guid,\r
396 IN UINTN ExTokenNumber,\r
397 IN UINTN GetSize\r
398 ) \r
399;\r
400\r
401UINT32\r
402GetSkuEnabledTokenNumber (\r
403 UINT32 LocalTokenNumber,\r
404 UINTN Size,\r
405 BOOLEAN IsPeiDb\r
406 ) \r
407;\r
408\r
409EFI_STATUS\r
410GetHiiVariable (\r
411 IN EFI_GUID *VariableGuid,\r
412 IN UINT16 *VariableName,\r
413 OUT UINT8 **VariableData,\r
414 OUT UINTN *VariableSize\r
415 )\r
416;\r
417\r
418EFI_STATUS\r
419SetHiiVariable (\r
420 IN EFI_GUID *VariableGuid,\r
421 IN UINT16 *VariableName,\r
422 IN CONST VOID *Data,\r
423 IN UINTN DataSize,\r
424 IN UINTN Offset\r
425 )\r
426;\r
427\r
428EFI_STATUS\r
429DxeRegisterCallBackWorker (\r
430 IN UINTN TokenNumber,\r
431 IN CONST EFI_GUID *Guid, OPTIONAL\r
432 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
433);\r
434\r
435EFI_STATUS\r
436DxeUnRegisterCallBackWorker (\r
437 IN UINTN TokenNumber,\r
438 IN CONST EFI_GUID *Guid, OPTIONAL\r
439 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
440);\r
441\r
442VOID\r
443BuildPcdDxeDataBase (\r
444 VOID\r
445);\r
446\r
447\r
448UINTN \r
449GetExPcdTokenNumber (\r
450 IN CONST EFI_GUID *Guid,\r
451 IN UINT32 ExTokenNumber\r
452 )\r
453;\r
454\r
455\r
456\r
457EFI_STATUS \r
458ExGetNextTokeNumber (\r
459 IN CONST EFI_GUID *Guid,\r
460 IN OUT UINTN *TokenNumber,\r
461 IN EFI_GUID *GuidTable,\r
462 IN UINTN SizeOfGuidTable,\r
463 IN DYNAMICEX_MAPPING *ExMapTable,\r
464 IN UINTN SizeOfExMapTable\r
465 )\r
466;\r
467\r
468\r
469UINTN\r
470GetPtrTypeSize (\r
471 IN UINTN LocalTokenNumberTableIdx,\r
472 OUT UINTN *MaxSize\r
473 )\r
474;\r
475\r
476\r
477\r
478BOOLEAN\r
479SetPtrTypeSize (\r
480 IN UINTN LocalTokenNumberTableIdx,\r
481 IN OUT UINTN *CurrentSize\r
482 )\r
483;\r
484\r
485extern EFI_GUID gPcdDataBaseHobGuid;\r
486\r
487extern PCD_DATABASE * mPcdDatabase;\r
488\r
489extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;\r
490\r
491extern EFI_LOCK mPcdDatabaseLock;\r
492\r
493#endif\r