2 Private functions used by PCD PEIM.
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
25 // The following definition will be generated by build tool
29 // Common definitions that is shared by PEI and DXE PCD database
31 #define PCD_TYPE_SHIFT 24
34 #define PCD_TYPE_DATA (0x00 << PCD_TYPE_SHIFT)
35 #define PCD_TYPE_HII (0x80 << PCD_TYPE_SHIFT)
36 #define PCD_TYPE_VPD (0x40 << PCD_TYPE_SHIFT)
37 #define PCD_TYPE_SKU_ENABLED (0x20 << PCD_TYPE_SHIFT)
40 #define PCD_DATABASE_OFFSET_MASK (~(PCD_TYPE_HII | PCD_TYPE_VPD | PCD_TYPE_SKU_ENABLED))
44 UINT32 LocalTokenNumber
; // PCD Number of this particular platform build
45 UINT16 ExGuidIndex
; // Index of GuidTable
50 UINT32 SkuDataStartOffset
; //We have to use offsetof MACRO as we don't know padding done by compiler
51 UINT32 SkuIdTableOffset
; //Offset from the PCD_DB
56 UINT16 GuidTableIndex
; // Offset in Guid Table in units of GUID.
57 UINT16 StringIndex
; // Offset in String Table in units of UINT16.
58 UINT16 Offset
; // Offset in Variable
67 UINT32 LocalTokenNumber
;
72 #define offsetof(s,m) (UINT32)&(((s *)0)->m)
79 // C Structure generate for PEI PCD Database
81 #define PEI_EXMAPPING_TABLE_SIZE 1
82 #define PEI_GUID_TABLE_SIZE 1
83 #define PEI_LOCAL_TOKEN_NUMBER 1
84 #define PEI_STRING_TABLE_SIZE 2
85 #define PEI_SKUID_TABLE_SIZE 3
88 #define PEI_DATABASE_EMPTRY FALSE
89 #define PEI_EXMAP_TABLE_EMPTY FALSE
90 #define PEI_GUID_TABLE_EMPTY FALSE
91 #define PEI_STRINGTABLE_EMPTY FALSE
92 #define PEI_SIZETABLE_EMPTY FALSE
93 #define PEI_SKUID_TABLE_EMPTY FALSE
98 DYNAMICEX_MAPPING ExMapTable
[PEI_EXMAPPING_TABLE_SIZE
];
99 EFI_GUID GuidTable
[PEI_GUID_TABLE_SIZE
];
101 UINT32 LocalTokenNumberTable
[PEI_LOCAL_TOKEN_NUMBER
];
104 UINT16 StringTable
[PEI_STRING_TABLE_SIZE
];
105 UINT16 SizeTable
[PEI_LOCAL_TOKEN_NUMBER
];
107 UINT8 SkuIdTable
[PEI_SKUID_TABLE_SIZE
];
111 } PEI_PCD_DATABASE_INIT
;
115 } PEI_PCD_DATABASE_UNINIT
;
117 #define PEI_PCD_DB_INIT_VALUE \
120 { /* ExTokenNumber */ 0x00000001, /* LocalTokenNumberIndex */ 0, /* ExGuidIndex */ 0} \
125 { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD }} \
128 /* LocalTokenNumberTable */ \
145 /*MaxSku*/ 2, /*SkuId*/ 100, /*SkuId*/200 \
153 // End of Autogen Code
159 PEI_PCD_DATABASE_INIT Init;
160 PEI_PCD_DATABASE_UNINIT Uninit;
164 /* Internal Function definitions */
174 IN UINTN TokenNumber
,
182 SetWorkerByLocalTokenNumber (
183 UINT32 LocalTokenNumber
,
192 IN UINT32 ExTokenNumber
,
193 IN CONST EFI_GUID
*Guid
,
209 IN CONST EFI_GUID
*Guid
,
210 IN UINT32 ExTokenNumber
,
218 UINT32 LocalTokenNumberAlias
;
219 } EX_PCD_ENTRY_ATTRIBUTE
;
222 GetExPcdTokenAttributes (
223 IN CONST EFI_GUID
*Guid
,
224 IN UINT32 ExTokenNumber
,
225 OUT EX_PCD_ENTRY_ATTRIBUTE
*ExAttr
230 PeiRegisterCallBackWorker (
231 IN UINTN TokenNumber
,
232 IN CONST GUID
*Guid
, OPTIONAL
233 IN PCD_PPI_CALLBACK CallBackFunction
,
244 extern EFI_GUID gPcdImageFileGuid
;
247 // PPI Interface Implementation Declaration.
316 IN CONST EFI_GUID
*Guid
,
325 IN CONST EFI_GUID
*Guid
,
333 IN CONST EFI_GUID
*Guid
,
342 IN CONST EFI_GUID
*Guid
,
351 IN CONST EFI_GUID
*Guid
,
360 IN CONST EFI_GUID
*Guid
,
369 IN CONST EFI_GUID
*Guid
,
378 IN UINTN TokenNumber
,
387 IN UINTN TokenNumber
,
396 IN UINTN TokenNumber
,
405 IN UINTN TokenNumber
,
413 IN UINTN TokenNumber
,
422 IN UINTN TokenNumber
,
431 IN CONST EFI_GUID
*Guid
,
432 IN UINTN TokenNumber
,
440 IN CONST EFI_GUID
*Guid
,
441 IN UINTN TokenNumber
,
450 IN CONST EFI_GUID
*Guid
,
451 IN UINTN TokenNumber
,
460 IN CONST EFI_GUID
*Guid
,
461 IN UINTN TokenNumber
,
470 IN CONST EFI_GUID
*Guid
,
471 IN UINTN TokenNumber
,
480 IN CONST EFI_GUID
*Guid
,
481 IN UINTN TokenNumber
,
490 PcdRegisterCallBackOnSet (
491 IN UINTN TokenNumber
,
492 IN CONST EFI_GUID
*Guid
, OPTIONAL
493 IN PCD_PPI_CALLBACK CallBackFunction
500 PcdUnRegisterCallBackOnSet (
501 IN UINTN TokenNumber
,
502 IN CONST EFI_GUID
*Guid
, OPTIONAL
503 IN PCD_PPI_CALLBACK CallBackFunction
511 IN CONST EFI_GUID
*Guid
, OPTIONAL
512 IN OUT UINTN
*TokenNumber
516 extern EFI_GUID gPcdDataBaseHobGuid
;
518 extern EFI_GUID gPcdPeiCallbackFnTableHobGuid
;
520 extern PEI_PCD_DATABASE_INIT gPEIPcdDbInit
;