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
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.
18 #include "../Common/PcdCommon.h"
22 PCD_PROTOCOL mPcdInstance
= {
55 PcdRegisterCallBackOnSet
,
56 PcdUnRegisterCallBackOnSet
,
62 // Static global to reduce the code size
64 static EFI_HANDLE NewHandle
= NULL
;
69 IN EFI_HANDLE ImageHandle
,
70 IN EFI_SYSTEM_TABLE
*SystemTable
75 InitPcdDxeDataBase ();
77 Status
= gBS
->InstallProtocolInterface (
84 ASSERT_EFI_ERROR (Status
);
97 return DxeSetSku(SkuId
);
108 return DxePcdGet8Ex (NULL
, TokenNumber
);
119 return DxePcdGet16Ex (NULL
, TokenNumber
);
130 return DxePcdGet32Ex (NULL
, TokenNumber
);
141 return DxePcdGet32Ex (NULL
, TokenNumber
);
152 return DxePcdGetPtrEx (NULL
, TokenNumber
);
163 return DxePcdGetBoolEx (NULL
, TokenNumber
);
174 return DxePcdGetSizeEx (NULL
, TokenNumber
);
182 IN CONST EFI_GUID
*Guid
,
188 DxeGetPcdEntryWorker (TokenNumber
, Guid
, PcdByte8
, &Data
);
198 IN CONST EFI_GUID
*Guid
,
204 DxeGetPcdEntryWorker (TokenNumber
, Guid
, PcdByte16
, &Data
);
214 IN CONST EFI_GUID
*Guid
,
220 DxeGetPcdEntryWorker (TokenNumber
, Guid
, PcdByte32
, &Data
);
230 IN CONST EFI_GUID
*Guid
,
236 DxeGetPcdEntryWorker (TokenNumber
, Guid
, PcdByte64
, &Data
);
246 IN CONST EFI_GUID
*Guid
,
252 DxeGetPcdEntryWorker (TokenNumber
, Guid
, PcdPointer
, &Data
);
262 IN CONST EFI_GUID
*Guid
,
267 DxeGetPcdEntryWorker (TokenNumber
, Guid
, PcdBoolean
, &Data
);
276 IN CONST EFI_GUID
*Guid
,
280 return DxeGetPcdEntrySizeWorker (TokenNumber
, Guid
);
288 IN UINTN TokenNumber
,
292 return DxePcdSet8Ex (NULL
, TokenNumber
, Value
);
300 IN UINTN TokenNumber
,
304 return DxePcdSet16Ex (NULL
, TokenNumber
, Value
);
312 IN UINTN TokenNumber
,
316 return DxePcdSet32Ex (NULL
, TokenNumber
, Value
);
324 IN UINTN TokenNumber
,
328 return DxePcdSet64Ex (NULL
, TokenNumber
, Value
);
336 IN UINTN TokenNumber
,
340 return DxePcdSetPtrEx (NULL
, TokenNumber
, Value
);
348 IN UINTN TokenNumber
,
352 return DxePcdSetBoolEx (NULL
, TokenNumber
, Value
);
360 IN CONST EFI_GUID
*Guid
,
361 IN UINTN TokenNumber
,
365 return DxeSetPcdEntryWorker (TokenNumber
, Guid
, PcdByte8
, &Value
);
373 IN CONST EFI_GUID
*Guid
,
374 IN UINTN TokenNumber
,
378 return DxeSetPcdEntryWorker (TokenNumber
, Guid
, PcdByte16
, &Value
);
386 IN CONST EFI_GUID
*Guid
,
387 IN UINTN TokenNumber
,
391 return DxeSetPcdEntryWorker (TokenNumber
, Guid
, PcdByte32
, &Value
);
399 IN CONST EFI_GUID
*Guid
,
400 IN UINTN TokenNumber
,
404 return DxeSetPcdEntryWorker (TokenNumber
, Guid
, PcdByte64
, &Value
);
412 IN CONST EFI_GUID
*Guid
,
413 IN UINTN TokenNumber
,
417 return DxeSetPcdEntryWorker (TokenNumber
, Guid
, PcdPointer
, Value
);
425 IN CONST EFI_GUID
*Guid
,
426 IN UINTN TokenNumber
,
430 return DxeSetPcdEntryWorker (TokenNumber
, Guid
, PcdBoolean
, &Value
);
439 PcdRegisterCallBackOnSet (
440 IN UINTN TokenNumber
,
441 IN CONST EFI_GUID
*Guid
, OPTIONAL
442 IN PCD_PROTOCOL_CALLBACK CallBackFunction
445 return DxeRegisterCallBackWorker (TokenNumber
, Guid
, CallBackFunction
, TRUE
);
452 PcdUnRegisterCallBackOnSet (
453 IN UINTN TokenNumber
,
454 IN CONST EFI_GUID
*Guid
, OPTIONAL
455 IN PCD_PROTOCOL_CALLBACK CallBackFunction
458 return DxeRegisterCallBackWorker (TokenNumber
, Guid
, CallBackFunction
, FALSE
);
466 IN CONST EFI_GUID
*Guid
, OPTIONAL
467 IN OUT UINTN
*TokenNumber
470 return DxeGetNextTokenWorker (TokenNumber
, Guid
);