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