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