]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Common/PcdTemp.h
Initial import.
[mirror_edk2.git] / MdePkg / Include / Common / PcdTemp.h
CommitLineData
878ddf1f 1/** @file\r
2\r
3Copyright (c) 2006, Intel Corporation<BR>\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12**/\r
13\r
14#ifndef __PCD_TEMP_H__\r
15#define __PCD_TEMP_H__\r
16\r
17#define PCD_INVALID_TOKEN ((UINTN)(-1))\r
18\r
19/*\r
20 * The following structure will be removed soon after the real \r
21 * PCD service PEIM and DXE driver are implmented.\r
22 */\r
23\r
24///\r
25/// I have rearranged the data so that the variable length items are at the end of the structure\r
26/// and we have a reasonable change of interpreting the other stuff properly.\r
27///\r
28typedef struct {\r
29 UINTN Token;\r
30\r
31 //\r
32 // HII Knowledge - non optimized for now\r
33 //\r
34 UINT8 HiiData; // If TRUE, use Variable Data\r
35 UINT8 SKUEnabled; // If TRUE, there might be various SKU data entries for this Token\r
36 UINT8 MaxSKUCount; // Up to 256 entries - limits the search space\r
37 UINT8 SKUId; // ID of the SKU\r
38\r
39 GUID VariableGuid; // Variable GUID\r
40 UINT32 DatumSize;\r
41 UINT64 Datum;\r
42 CHAR16 *VariableName; // Null-terminated Variable Name (remember to calculate size)\r
43 // We still need Offset information for the variable\r
44 // So naturally we can use DatumSize as the Length Field\r
45 // And we can overload the use of Datum for the Offset information\r
46 VOID *ExtendedData; // VOID* data of size DatumSize\r
47} EMULATED_PCD_ENTRY;\r
48\r
49typedef\r
50VOID\r
51(EFIAPI *PCD_TEMP_CALLBACK) (\r
52 IN CONST EFI_GUID *CallBackGuid, OPTIONAL\r
53 IN UINTN CallBackToken,\r
54 IN VOID *TokenData,\r
55 IN UINTN TokenDataSize\r
56 );\r
57\r
58///\r
59/// Used by the PCD Database - never contained in an FFS file\r
60///\r
61typedef struct {\r
62 UINTN Token;\r
63\r
64 //\r
65 // HII Knowledge - non optimized for now\r
66 //\r
67 UINT8 HiiData; // If TRUE, use Variable Data\r
68 UINT8 SKUEnabled; // If TRUE, there might be various SKU data entries for this Token\r
69 UINT8 MaxSKUCount; // Up to 256 entries - limits the search space\r
70 UINT8 SKUId; // ID of the SKU\r
71\r
72 GUID VariableGuid; // Variable GUID\r
73 UINT32 DatumSize;\r
74 UINT64 Datum;\r
75 CHAR16 *VariableName; // Null-terminated Variable Name (remember to calculate size)\r
76 // We still need Offset information for the variable\r
77 // So naturally we can use DatumSize as the Length Field\r
78 // And we can overload the use of Datum for the Offset information\r
79 VOID *ExtendedData; // VOID* data of size DatumSize\r
80\r
81 PCD_TEMP_CALLBACK *CallBackList;\r
82 UINT32 CallBackEntries;\r
83 UINT32 CallBackListSize;\r
84} EMULATED_PCD_ENTRY_EX; // This exists to facilitate PCD Database implementation only\r
85\r
86typedef struct {\r
87 UINTN Count;\r
88 EMULATED_PCD_ENTRY_EX Entry[1]; // This exists to facilitate PCD Database implementation only\r
89} EMULATED_PCD_DATABASE_EX;\r
90\r
91#endif\r