2 Private functions used by PCD DXE driver.
4 Copyright (c) 2006 - 2007, 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
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.
14 Module Name: Service.h
22 #include <Protocol/Pcd.h>
23 #include <Library/BaseLib.h>
24 #include <Library/DebugLib.h>
25 #include <Library/UefiLib.h>
26 #include <Library/UefiDriverEntryPoint.h>
27 #include <Library/PcdLib.h>
28 #include <Library/HobLib.h>
29 #include <Library/MemoryAllocationLib.h>
30 #include <Library/UefiBootServicesTableLib.h>
31 #include <Library/BaseMemoryLib.h>
32 #include <Library/UefiRuntimeServicesTableLib.h>
35 // Please make sure the PCD Serivce PEIM Version is consistent with
36 // the version of PCD Database generation tool
38 #define PCD_SERVICE_DXE_DRIVER_VERSION 2
41 // PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h
42 // and generated by PCD Database generation tool.
44 #if (PCD_SERVICE_DXE_DRIVER_VERSION != PCD_DXE_SERVICE_DRIVER_AUTOGEN_VERSION)
45 // #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"
49 // Protocol Interface function declaration.
118 IN CONST EFI_GUID
*Guid
,
127 IN CONST EFI_GUID
*Guid
,
136 IN CONST EFI_GUID
*Guid
,
146 IN CONST EFI_GUID
*Guid
,
156 IN CONST EFI_GUID
*Guid
,
165 IN CONST EFI_GUID
*Guid
,
174 IN CONST EFI_GUID
*Guid
,
183 IN UINTN TokenNumber
,
192 IN UINTN TokenNumber
,
201 IN UINTN TokenNumber
,
210 IN UINTN TokenNumber
,
219 IN UINTN TokenNumber
,
220 IN UINTN
*SizeOfBuffer
,
229 IN UINTN TokenNumber
,
238 IN CONST EFI_GUID
*Guid
,
239 IN UINTN TokenNumber
,
248 IN CONST EFI_GUID
*Guid
,
249 IN UINTN TokenNumber
,
258 IN CONST EFI_GUID
*Guid
,
259 IN UINTN TokenNumber
,
268 IN CONST EFI_GUID
*Guid
,
269 IN UINTN TokenNumber
,
278 IN CONST EFI_GUID
*Guid
,
279 IN UINTN TokenNumber
,
280 IN OUT UINTN
*SizeOfBuffer
,
289 IN CONST EFI_GUID
*Guid
,
290 IN UINTN TokenNumber
,
299 DxeRegisterCallBackOnSet (
300 IN CONST EFI_GUID
*Guid
, OPTIONAL
301 IN UINTN TokenNumber
,
302 IN PCD_PROTOCOL_CALLBACK CallBackFunction
309 DxeUnRegisterCallBackOnSet (
310 IN CONST EFI_GUID
*Guid
, OPTIONAL
311 IN UINTN TokenNumber
,
312 IN PCD_PROTOCOL_CALLBACK CallBackFunction
320 IN CONST EFI_GUID
*Guid
, OPTIONAL
321 IN OUT UINTN
*TokenNumber
329 DxePcdGetNextTokenSpace (
330 IN OUT CONST EFI_GUID
**Guid
337 PCD_PROTOCOL_CALLBACK CallbackFn
;
340 #define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field)
343 // Internal Functions
348 IN UINTN TokenNumber
,
356 IN UINTN TokenNumber
,
366 IN UINTN ExTokenNumber
,
367 IN CONST EFI_GUID
*Guid
,
377 IN UINTN ExTokenNumber
,
378 IN CONST EFI_GUID
*Guid
,
388 IN UINTN TokenNumber
,
395 IN CONST EFI_GUID
*Guid
,
396 IN UINTN ExTokenNumber
,
402 GetSkuEnabledTokenNumber (
403 UINT32 LocalTokenNumber
,
411 IN EFI_GUID
*VariableGuid
,
412 IN UINT16
*VariableName
,
413 OUT UINT8
**VariableData
,
414 OUT UINTN
*VariableSize
420 IN EFI_GUID
*VariableGuid
,
421 IN UINT16
*VariableName
,
429 DxeRegisterCallBackWorker (
430 IN UINTN TokenNumber
,
431 IN CONST EFI_GUID
*Guid
, OPTIONAL
432 IN PCD_PROTOCOL_CALLBACK CallBackFunction
436 DxeUnRegisterCallBackWorker (
437 IN UINTN TokenNumber
,
438 IN CONST EFI_GUID
*Guid
, OPTIONAL
439 IN PCD_PROTOCOL_CALLBACK CallBackFunction
443 BuildPcdDxeDataBase (
449 GetExPcdTokenNumber (
450 IN CONST EFI_GUID
*Guid
,
451 IN UINT32 ExTokenNumber
458 ExGetNextTokeNumber (
459 IN CONST EFI_GUID
*Guid
,
460 IN OUT UINTN
*TokenNumber
,
461 IN EFI_GUID
*GuidTable
,
462 IN UINTN SizeOfGuidTable
,
463 IN DYNAMICEX_MAPPING
*ExMapTable
,
464 IN UINTN SizeOfExMapTable
471 IN UINTN LocalTokenNumberTableIdx
,
480 IN UINTN LocalTokenNumberTableIdx
,
481 IN OUT UINTN
*CurrentSize
485 extern EFI_GUID gPcdDataBaseHobGuid
;
487 extern PCD_DATABASE
* mPcdDatabase
;
489 extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit
;
491 extern EFI_LOCK mPcdDatabaseLock
;