2 Private functions used by PCD DXE driver.
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.
14 Module Name: Service.h
22 DxeGetPcdEntryWorker (
24 IN CONST EFI_GUID
*Guid
, OPTIONAL
25 IN PCD_DATA_TYPE Type
,
30 DxeSetPcdEntryWorker (
32 IN CONST EFI_GUID
*Guid
, OPTIONAL
33 IN PCD_DATA_TYPE Type
,
38 DxeGetPcdEntrySizeWorker (
40 IN CONST EFI_GUID
*Guid OPTIONAL
44 DxeRegisterCallBackWorker (
46 IN CONST EFI_GUID
*Guid
, OPTIONAL
47 IN PCD_PROTOCOL_CALLBACK CallBackFunction
,
57 DxeGetNextTokenWorker (
59 IN CONST EFI_GUID
*Guid OPTIONAL
68 // Protocol Interface function declaration.
137 IN CONST EFI_GUID
*Guid
,
146 IN CONST EFI_GUID
*Guid
,
155 IN CONST EFI_GUID
*Guid
,
165 IN CONST EFI_GUID
*Guid
,
175 IN CONST EFI_GUID
*Guid
,
184 IN CONST EFI_GUID
*Guid
,
193 IN CONST EFI_GUID
*Guid
,
202 IN UINTN TokenNumber
,
211 IN UINTN TokenNumber
,
220 IN UINTN TokenNumber
,
229 IN UINTN TokenNumber
,
238 IN UINTN TokenNumber
,
247 IN UINTN TokenNumber
,
256 IN CONST EFI_GUID
*Guid
,
257 IN UINTN TokenNumber
,
266 IN CONST EFI_GUID
*Guid
,
267 IN UINTN TokenNumber
,
276 IN CONST EFI_GUID
*Guid
,
277 IN UINTN TokenNumber
,
286 IN CONST EFI_GUID
*Guid
,
287 IN UINTN TokenNumber
,
296 IN CONST EFI_GUID
*Guid
,
297 IN UINTN TokenNumber
,
306 IN CONST EFI_GUID
*Guid
,
307 IN UINTN TokenNumber
,
316 PcdRegisterCallBackOnSet (
317 IN UINTN TokenNumber
,
318 IN CONST EFI_GUID
*Guid
, OPTIONAL
319 IN PCD_PROTOCOL_CALLBACK CallBackFunction
326 PcdUnRegisterCallBackOnSet (
327 IN UINTN TokenNumber
,
328 IN CONST EFI_GUID
*Guid
, OPTIONAL
329 IN PCD_PROTOCOL_CALLBACK CallBackFunction
337 IN CONST EFI_GUID
*Guid
, OPTIONAL
338 IN OUT UINTN
*TokenNumber
344 This DXE_PCD_DATABASE layout. The difference of DXE_PCD_DATABASE
345 and PEI_PCD_DATABASE is as follows:
347 1) No PCD_CALL_BACK_TABLE; DXE_PCD_DATABASE maintain a LinkList for the
348 callback function registered.
350 ---------------------------
351 | LIST_ENTRY GuidSpaceHead|
352 ---------------------------
353 | PCD_DATABASE_HEADER |
354 ---------------------------
355 | GUID_TABLE | Aligned on GUID (128 bits)
356 ---------------------------
357 | PCD_INDEX_TABLE | Aligned on PCD_INDEX (see PCD_INDEX's declaration)
358 ---------------------------
359 | IMAGE_STRING_TABLE | Aligned on 16 Bits
360 ---------------------------
361 | IMAGE_PCD_INDEX | Unaligned
362 ---------------------------
363 | Data Defaults | Unaligned
364 ---------------------------
366 | for entries without |
368 ---------------------------
375 LIST_ENTRY TokenSpaceHead
;
376 CONST EFI_GUID
*GuidSpace
;
381 LIST_ENTRY CallbackListHead
;
387 PCD_PROTOCOL_CALLBACK CallbackFunction
;
388 } PCD_CALLBACK_ENTRY
;
390 #define PCD_GUID_SPACE_FROM_LISTNODE(a) \
391 _CR(a, PCD_GUID_SPACE, ListNode)
393 #define PCD_TOKEN_SPACE_FROM_LISTNODE(a) \
394 _CR(a, PCD_TOKEN_SPACE, ListNode)
396 #define PCD_CALLBACK_ENTRY_FROM_LISTNODE(a) \
397 _CR(a, PCD_CALLBACK_ENTRY, ListNode)