]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/PCD/Pei/Service.h
Import PCD dxe and PCD pei modules.
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Pei / Service.h
CommitLineData
80408db0 1/** @file\r
2Private functions used by PCD PEIM.\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// Include common header file for this module.\r
23//\r
24#include "CommonHeader.h"\r
25\r
26//\r
27// Please make sure the PCD Serivce PEIM Version is consistent with\r
28// the version of PCD Database generation tool\r
29//\r
30#define PCD_SERVICE_PEIM_VERSION 2\r
31\r
32//\r
33// PCD_PEI_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
34// and generated by PCD Database generation tool.\r
35//\r
36#if (PCD_SERVICE_PEIM_VERSION != PCD_PEI_SERVICE_DRIVER_AUTOGEN_VERSION )\r
37 #error "Please make sure the version of PCD Service PEIM and PCD PEI Database Generation Tool matches"\r
38#endif\r
39\r
40//\r
41// PPI Interface Implementation Declaration.\r
42//\r
43VOID\r
44EFIAPI\r
45PeiPcdSetSku (\r
46 IN UINTN SkuId\r
47 )\r
48;\r
49\r
50\r
51UINT8\r
52EFIAPI\r
53PeiPcdGet8 (\r
54 IN UINTN TokenNumber\r
55 )\r
56;\r
57\r
58\r
59UINT16\r
60EFIAPI\r
61PeiPcdGet16 (\r
62 IN UINTN TokenNumber\r
63 )\r
64;\r
65\r
66\r
67UINT32\r
68EFIAPI\r
69PeiPcdGet32 (\r
70 IN UINTN TokenNumber\r
71 )\r
72;\r
73\r
74\r
75UINT64\r
76EFIAPI\r
77PeiPcdGet64 (\r
78 IN UINTN TokenNumber\r
79 )\r
80;\r
81\r
82\r
83VOID *\r
84EFIAPI\r
85PeiPcdGetPtr (\r
86 IN UINTN TokenNumber\r
87 )\r
88;\r
89\r
90\r
91BOOLEAN\r
92EFIAPI\r
93PeiPcdGetBool (\r
94 IN UINTN TokenNumber\r
95 )\r
96;\r
97\r
98\r
99UINTN\r
100EFIAPI\r
101PeiPcdGetSize (\r
102 IN UINTN TokenNumber\r
103 )\r
104;\r
105\r
106\r
107UINT8\r
108EFIAPI\r
109PeiPcdGet8Ex (\r
110 IN CONST EFI_GUID *Guid,\r
111 IN UINTN TokenNumber\r
112 )\r
113;\r
114\r
115\r
116UINT16\r
117EFIAPI\r
118PeiPcdGet16Ex (\r
119 IN CONST EFI_GUID *Guid,\r
120 IN UINTN TokenNumber\r
121 )\r
122;\r
123\r
124UINT32\r
125EFIAPI\r
126PeiPcdGet32Ex (\r
127 IN CONST EFI_GUID *Guid,\r
128 IN UINTN TokenNumber\r
129 )\r
130;\r
131\r
132\r
133UINT64\r
134EFIAPI\r
135PeiPcdGet64Ex (\r
136 IN CONST EFI_GUID *Guid,\r
137 IN UINTN TokenNumber\r
138 )\r
139;\r
140\r
141\r
142VOID *\r
143EFIAPI\r
144PeiPcdGetPtrEx (\r
145 IN CONST EFI_GUID *Guid,\r
146 IN UINTN TokenNumber\r
147 )\r
148;\r
149\r
150\r
151BOOLEAN\r
152EFIAPI\r
153PeiPcdGetBoolEx (\r
154 IN CONST EFI_GUID *Guid,\r
155 IN UINTN TokenNumber\r
156 )\r
157;\r
158\r
159\r
160UINTN\r
161EFIAPI\r
162PeiPcdGetSizeEx (\r
163 IN CONST EFI_GUID *Guid,\r
164 IN UINTN TokenNumber\r
165 )\r
166;\r
167\r
168\r
169EFI_STATUS\r
170EFIAPI\r
171PeiPcdSet8 (\r
172 IN UINTN TokenNumber,\r
173 IN UINT8 Value\r
174 )\r
175;\r
176\r
177\r
178EFI_STATUS\r
179EFIAPI\r
180PeiPcdSet16 (\r
181 IN UINTN TokenNumber,\r
182 IN UINT16 Value\r
183 )\r
184;\r
185\r
186\r
187EFI_STATUS\r
188EFIAPI\r
189PeiPcdSet32 (\r
190 IN UINTN TokenNumber,\r
191 IN UINT32 Value\r
192 )\r
193;\r
194\r
195\r
196EFI_STATUS\r
197EFIAPI\r
198PeiPcdSet64 (\r
199 IN UINTN TokenNumber,\r
200 IN UINT64 Value\r
201 )\r
202;\r
203\r
204EFI_STATUS\r
205EFIAPI\r
206PeiPcdSetPtr (\r
207 IN UINTN TokenNumber,\r
208 IN OUT UINTN *SizeOfBuffer,\r
209 IN VOID *Buffer\r
210 )\r
211;\r
212\r
213\r
214EFI_STATUS\r
215EFIAPI\r
216PeiPcdSetBool (\r
217 IN UINTN TokenNumber,\r
218 IN BOOLEAN Value\r
219 )\r
220;\r
221\r
222\r
223EFI_STATUS\r
224EFIAPI\r
225PeiPcdSet8Ex (\r
226 IN CONST EFI_GUID *Guid,\r
227 IN UINTN TokenNumber,\r
228 IN UINT8 Value\r
229 )\r
230;\r
231\r
232EFI_STATUS\r
233EFIAPI\r
234PeiPcdSet16Ex (\r
235 IN CONST EFI_GUID *Guid,\r
236 IN UINTN TokenNumber,\r
237 IN UINT16 Value\r
238 )\r
239;\r
240\r
241\r
242EFI_STATUS\r
243EFIAPI\r
244PeiPcdSet32Ex (\r
245 IN CONST EFI_GUID *Guid,\r
246 IN UINTN TokenNumber,\r
247 IN UINT32 Value\r
248 )\r
249;\r
250\r
251\r
252EFI_STATUS\r
253EFIAPI\r
254PeiPcdSet64Ex (\r
255 IN CONST EFI_GUID *Guid,\r
256 IN UINTN TokenNumber,\r
257 IN UINT64 Value\r
258 )\r
259;\r
260\r
261\r
262EFI_STATUS\r
263EFIAPI\r
264PeiPcdSetPtrEx (\r
265 IN CONST EFI_GUID *Guid,\r
266 IN UINTN TokenNumber,\r
267 IN OUT UINTN *SizeOfBuffer,\r
268 IN VOID *Buffer\r
269 )\r
270;\r
271\r
272\r
273EFI_STATUS\r
274EFIAPI\r
275PeiPcdSetBoolEx (\r
276 IN CONST EFI_GUID *Guid,\r
277 IN UINTN TokenNumber,\r
278 IN BOOLEAN Value\r
279 )\r
280;\r
281\r
282\r
283\r
284EFI_STATUS\r
285EFIAPI\r
286PeiRegisterCallBackOnSet (\r
287 IN CONST EFI_GUID *Guid, OPTIONAL\r
288 IN UINTN TokenNumber,\r
289 IN PCD_PPI_CALLBACK CallBackFunction\r
290 )\r
291;\r
292\r
293\r
294EFI_STATUS\r
295EFIAPI\r
296PcdUnRegisterCallBackOnSet (\r
297 IN CONST EFI_GUID *Guid, OPTIONAL\r
298 IN UINTN TokenNumber,\r
299 IN PCD_PPI_CALLBACK CallBackFunction\r
300 )\r
301;\r
302\r
303\r
304EFI_STATUS\r
305EFIAPI\r
306PeiPcdGetNextToken (\r
307 IN CONST EFI_GUID *Guid, OPTIONAL\r
308 IN OUT UINTN *TokenNumber\r
309 )\r
310;\r
311\r
312\r
313EFI_STATUS\r
314EFIAPI\r
315PeiPcdGetNextTokenSpace (\r
316 IN CONST EFI_GUID **Guid\r
317 )\r
318;\r
319\r
320\r
321/* Internal Function definitions */\r
322\r
323PEI_PCD_DATABASE *\r
324GetPcdDatabase (\r
325 VOID\r
326 )\r
327;\r
328\r
329\r
330EFI_STATUS\r
331SetValueWorker (\r
332 IN UINTN TokenNumber,\r
333 IN VOID *Data,\r
334 IN UINTN Size\r
335 )\r
336;\r
337\r
338\r
339EFI_STATUS\r
340SetWorker (\r
341 IN UINTN TokenNumber,\r
342 IN VOID *Data,\r
343 IN OUT UINTN *Size,\r
344 IN BOOLEAN PtrType\r
345 )\r
346;\r
347\r
348\r
349EFI_STATUS\r
350ExSetValueWorker (\r
351 IN UINTN ExTokenNumber,\r
352 IN CONST EFI_GUID *Guid,\r
353 IN VOID *Data,\r
354 IN UINTN Size\r
355 )\r
356;\r
357\r
358\r
359\r
360EFI_STATUS\r
361ExSetWorker (\r
362 IN UINTN ExTokenNumber,\r
363 IN CONST EFI_GUID *Guid,\r
364 IN VOID *Data,\r
365 IN OUT UINTN *Size,\r
366 IN BOOLEAN PtrType\r
367 )\r
368;\r
369\r
370\r
371\r
372VOID *\r
373GetWorker (\r
374 IN UINTN TokenNumber,\r
375 IN UINTN GetSize\r
376 )\r
377;\r
378\r
379\r
380\r
381VOID *\r
382ExGetWorker (\r
383 IN CONST EFI_GUID *Guid,\r
384 IN UINTN ExTokenNumber,\r
385 IN UINTN GetSize\r
386 )\r
387;\r
388\r
389typedef struct {\r
390 UINTN TokenNumber;\r
391 UINTN Size;\r
392 UINT32 LocalTokenNumberAlias;\r
393} EX_PCD_ENTRY_ATTRIBUTE;\r
394\r
395\r
396UINTN \r
397GetExPcdTokenNumber (\r
398 IN CONST EFI_GUID *Guid,\r
399 IN UINTN ExTokenNumber\r
400 )\r
401;\r
402\r
403\r
404\r
405\r
406EFI_STATUS\r
407PeiRegisterCallBackWorker (\r
408 IN UINTN TokenNumber,\r
409 IN CONST GUID *Guid, OPTIONAL\r
410 IN PCD_PPI_CALLBACK CallBackFunction,\r
411 IN BOOLEAN Register\r
412);\r
413\r
414\r
415\r
416\r
417VOID\r
418BuildPcdDatabase (\r
419 VOID\r
420 )\r
421;\r
422\r
423SKU_ID *\r
424GetSkuIdArray (\r
425 IN UINTN LocalTokenNumberTableIdx,\r
426 IN PEI_PCD_DATABASE *Database\r
427 )\r
428;\r
429\r
430UINTN\r
431GetSizeTableIndex (\r
432 IN UINTN LocalTokenNumberTableIdx,\r
433 IN PEI_PCD_DATABASE *Database\r
434 )\r
435;\r
436\r
437UINTN\r
438GetPtrTypeSize (\r
439 IN UINTN LocalTokenNumberTableIdx,\r
440 OUT UINTN *MaxSize,\r
441 IN PEI_PCD_DATABASE *Database\r
442 )\r
443;\r
444\r
445\r
446\r
447BOOLEAN\r
448SetPtrTypeSize (\r
449 IN UINTN LocalTokenNumberTableIdx,\r
450 IN OUT UINTN *CurrentSize,\r
451 IN PEI_PCD_DATABASE *Database\r
452 )\r
453;\r
454\r
455\r
456extern EFI_GUID gPcdDataBaseHobGuid;\r
457\r
458extern EFI_GUID gPcdPeiCallbackFnTableHobGuid;\r
459\r
460extern PEI_PCD_DATABASE_INIT gPEIPcdDbInit;\r
461\r
462#endif\r