3 Copyright (c) 2006, Intel Corporation<BR>
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 #ifndef __PCD_TEMP_H__
15 #define __PCD_TEMP_H__
17 #define PCD_INVALID_TOKEN ((UINTN)(-1))
20 * The following structure will be removed soon after the real
21 * PCD service PEIM and DXE driver are implmented.
25 /// I have rearranged the data so that the variable length items are at the end of the structure
26 /// and we have a reasonable change of interpreting the other stuff properly.
32 // HII Knowledge - non optimized for now
34 UINT8 HiiData
; // If TRUE, use Variable Data
35 UINT8 SKUEnabled
; // If TRUE, there might be various SKU data entries for this Token
36 UINT8 MaxSKUCount
; // Up to 256 entries - limits the search space
37 UINT8 SKUId
; // ID of the SKU
39 GUID VariableGuid
; // Variable GUID
42 CHAR16
*VariableName
; // Null-terminated Variable Name (remember to calculate size)
43 // We still need Offset information for the variable
44 // So naturally we can use DatumSize as the Length Field
45 // And we can overload the use of Datum for the Offset information
46 VOID
*ExtendedData
; // VOID* data of size DatumSize
51 (EFIAPI
*PCD_TEMP_CALLBACK
) (
52 IN CONST EFI_GUID
*CallBackGuid
, OPTIONAL
53 IN UINTN CallBackToken
,
55 IN UINTN TokenDataSize
59 /// Used by the PCD Database - never contained in an FFS file
65 // HII Knowledge - non optimized for now
67 UINT8 HiiData
; // If TRUE, use Variable Data
68 UINT8 SKUEnabled
; // If TRUE, there might be various SKU data entries for this Token
69 UINT8 MaxSKUCount
; // Up to 256 entries - limits the search space
70 UINT8 SKUId
; // ID of the SKU
72 GUID VariableGuid
; // Variable GUID
75 CHAR16
*VariableName
; // Null-terminated Variable Name (remember to calculate size)
76 // We still need Offset information for the variable
77 // So naturally we can use DatumSize as the Length Field
78 // And we can overload the use of Datum for the Offset information
79 VOID
*ExtendedData
; // VOID* data of size DatumSize
81 PCD_TEMP_CALLBACK
*CallBackList
;
82 UINT32 CallBackEntries
;
83 UINT32 CallBackListSize
;
84 } EMULATED_PCD_ENTRY_EX
; // This exists to facilitate PCD Database implementation only
88 EMULATED_PCD_ENTRY_EX Entry
[1]; // This exists to facilitate PCD Database implementation only
89 } EMULATED_PCD_DATABASE_EX
;