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