]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Ppi/Pcd.h
1) Fix bug reported on the PcdSetEx* Macro.
[mirror_edk2.git] / MdePkg / Include / Ppi / Pcd.h
CommitLineData
878ddf1f 1/** @file\r
2 Platform Configuration Database (PCD) Protocol\r
3\r
4 Copyright (c) 2006, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13 Module Name: Pcd.h\r
14\r
15**/\r
16\r
17#ifndef __PCD_H__\r
18#define __PCD_H__\r
19\r
20extern EFI_GUID gPcdPpiGuid;\r
21\r
22#define PCD_PPI_GUID \\r
23 { 0x632df884, 0x8023, 0x4872, { 0xb6, 0x70, 0xb7, 0x4a, 0x30, 0x19, 0x16, 0xe9 } }\r
24\r
dbdaaec4 25typedef UINT8 SKU_ID;\r
26\r
878ddf1f 27typedef \r
28EFI_STATUS\r
29(EFIAPI *PCD_PPI_SET_SKU) (\r
30 IN UINTN SkuId\r
31 );\r
32\r
33typedef\r
34UINT8\r
35(EFIAPI *PCD_PPI_GET8) (\r
36 IN UINTN TokenNumber\r
37 );\r
38\r
39typedef\r
40UINT16\r
41(EFIAPI *PCD_PPI_GET16) (\r
42 IN UINTN TokenNumber\r
43 );\r
44\r
45typedef\r
46UINT32\r
47(EFIAPI *PCD_PPI_GET32) (\r
48 IN UINTN TokenNumber\r
49 );\r
50\r
51typedef\r
52UINT64\r
53(EFIAPI *PCD_PPI_GET64) (\r
54 IN UINTN TokenNumber\r
55 );\r
56\r
57typedef\r
58VOID *\r
59(EFIAPI *PCD_PPI_GET_POINTER) (\r
60 IN UINTN TokenNumber\r
61 );\r
62\r
63typedef\r
64BOOLEAN\r
65(EFIAPI *PCD_PPI_GET_BOOLEAN) (\r
66 IN UINTN TokenNumber\r
67 );\r
68\r
69typedef\r
70UINTN\r
71(EFIAPI *PCD_PPI_GET_SIZE) (\r
72 IN UINTN TokenNumber\r
73 );\r
74\r
75typedef\r
76UINT8\r
77(EFIAPI *PCD_PPI_GET_EX_8) (\r
78 IN CONST EFI_GUID *Guid,\r
79 IN UINTN TokenNumber\r
80 );\r
81\r
82typedef\r
83UINT16\r
84(EFIAPI *PCD_PPI_GET_EX_16) (\r
85 IN CONST EFI_GUID *Guid,\r
86 IN UINTN TokenNumber\r
87 );\r
88\r
89typedef\r
90UINT32\r
91(EFIAPI *PCD_PPI_GET_EX_32) (\r
92 IN CONST EFI_GUID *Guid,\r
93 IN UINTN TokenNumber\r
94 );\r
95\r
96typedef\r
97UINT64\r
98(EFIAPI *PCD_PPI_GET_EX_64) (\r
99 IN CONST EFI_GUID *Guid,\r
100 IN UINTN TokenNumber\r
101 );\r
102\r
103typedef\r
104VOID *\r
105(EFIAPI *PCD_PPI_GET_EX_POINTER) (\r
106 IN CONST EFI_GUID *Guid,\r
107 IN UINTN TokenNumber\r
108 );\r
109\r
110typedef\r
111BOOLEAN\r
112(EFIAPI *PCD_PPI_GET_EX_BOOLEAN) (\r
113 IN CONST EFI_GUID *Guid,\r
114 IN UINTN TokenNumber\r
115 );\r
116\r
117typedef\r
118UINTN\r
119(EFIAPI *PCD_PPI_GET_EX_SIZE) (\r
120 IN CONST EFI_GUID *Guid,\r
121 IN UINTN TokenNumber\r
122 );\r
123\r
124typedef\r
125EFI_STATUS\r
126(EFIAPI *PCD_PPI_SET8) (\r
127 IN UINTN TokenNumber,\r
128 IN UINT8 Value\r
129 );\r
130\r
131typedef\r
132EFI_STATUS\r
133(EFIAPI *PCD_PPI_SET16) (\r
134 IN UINTN TokenNumber,\r
135 IN UINT16 Value\r
136 );\r
137\r
138typedef\r
139EFI_STATUS\r
140(EFIAPI *PCD_PPI_SET32) (\r
141 IN UINTN TokenNumber,\r
142 IN UINT32 Value\r
143 );\r
144\r
145typedef\r
146EFI_STATUS\r
147(EFIAPI *PCD_PPI_SET64) (\r
148 IN UINTN TokenNumber,\r
149 IN UINT64 Value\r
150 );\r
151\r
152typedef\r
153EFI_STATUS\r
154(EFIAPI *PCD_PPI_SET_POINTER) (\r
155 IN UINTN TokenNumber,\r
156 IN CONST VOID *Value\r
157 );\r
158\r
159typedef\r
160EFI_STATUS\r
161(EFIAPI *PCD_PPI_SET_BOOLEAN) (\r
162 IN UINTN TokenNumber,\r
163 IN BOOLEAN Value\r
164 );\r
165\r
166typedef\r
167EFI_STATUS\r
168(EFIAPI *PCD_PPI_SET_EX_8) (\r
169 IN CONST EFI_GUID *Guid,\r
170 IN UINTN TokenNumber,\r
171 IN UINT8 Value\r
172 );\r
173\r
174typedef\r
175EFI_STATUS\r
176(EFIAPI *PCD_PPI_SET_EX_16) (\r
177 IN CONST EFI_GUID *Guid,\r
178 IN UINTN TokenNumber,\r
179 IN UINT16 Value\r
180 );\r
181\r
182typedef\r
183EFI_STATUS\r
184(EFIAPI *PCD_PPI_SET_EX_32) (\r
185 IN CONST EFI_GUID *Guid,\r
186 IN UINTN TokenNumber,\r
187 IN UINT32 Value\r
188 );\r
189\r
190typedef\r
191EFI_STATUS\r
192(EFIAPI *PCD_PPI_SET_EX_64) (\r
193 IN CONST EFI_GUID *Guid,\r
194 IN UINTN TokenNumber,\r
195 IN UINT64 Value\r
196 );\r
197\r
198typedef\r
199EFI_STATUS\r
200(EFIAPI *PCD_PPI_SET_EX_POINTER) (\r
201 IN CONST EFI_GUID *Guid,\r
202 IN UINTN TokenNumber,\r
203 IN CONST VOID *Value\r
204 );\r
205\r
206typedef\r
207EFI_STATUS\r
208(EFIAPI *PCD_PPI_SET_EX_BOOLEAN) (\r
209 IN CONST EFI_GUID *Guid,\r
210 IN UINTN TokenNumber,\r
211 IN BOOLEAN Value\r
212 );\r
213\r
214/**\r
215 Callback on SET function prototype definition.\r
216\r
217 @param[in] CallBackGuid The PCD token GUID being set.\r
218 @param[in] CallBackToken The PCD token number being set.\r
219 @param[in] TokenData A pointer to the token data being set.\r
220 @param[in] TokenDataSize The size, in bytes, of the data being set.\r
221\r
222 @retval VOID\r
223\r
224--*/\r
225typedef\r
226VOID\r
227(EFIAPI *PCD_PPI_CALLBACK) (\r
228 IN CONST EFI_GUID *CallBackGuid, OPTIONAL\r
229 IN UINTN CallBackToken,\r
230 IN VOID *TokenData,\r
231 IN UINTN TokenDataSize\r
232 );\r
233\r
234typedef\r
235EFI_STATUS\r
236(EFIAPI *PCD_PPI_CALLBACK_ONSET) (\r
237 IN UINTN TokenNumber,\r
238 IN CONST EFI_GUID *Guid, OPTIONAL\r
239 IN PCD_PPI_CALLBACK CallBackFunction\r
240 );\r
241\r
242typedef\r
243EFI_STATUS\r
244(EFIAPI *PCD_PPI_CANCEL_CALLBACK) (\r
245 IN UINTN TokenNumber,\r
246 IN CONST EFI_GUID *Guid, OPTIONAL\r
247 IN PCD_PPI_CALLBACK CallBackFunction\r
248 );\r
249\r
250typedef \r
251EFI_STATUS\r
252(EFIAPI *PCD_PPI_GET_NEXT_TOKEN) (\r
253 IN CONST EFI_GUID *Guid, OPTIONAL\r
254 IN OUT UINTN *TokenNumber\r
255 );\r
256\r
257typedef struct {\r
258 PCD_PPI_SET_SKU SetSku;\r
259\r
260 PCD_PPI_GET8 Get8;\r
261 PCD_PPI_GET16 Get16;\r
262 PCD_PPI_GET32 Get32;\r
263 PCD_PPI_GET64 Get64;\r
264 PCD_PPI_GET_POINTER GetPtr;\r
265 PCD_PPI_GET_BOOLEAN GetBool;\r
266 PCD_PPI_GET_SIZE GetSize;\r
267\r
268 PCD_PPI_GET_EX_8 Get8Ex;\r
269 PCD_PPI_GET_EX_16 Get16Ex;\r
270 PCD_PPI_GET_EX_32 Get32Ex;\r
271 PCD_PPI_GET_EX_64 Get64Ex;\r
272 PCD_PPI_GET_EX_POINTER GetPtrEx;\r
273 PCD_PPI_GET_EX_BOOLEAN GetBoolEx;\r
274 PCD_PPI_GET_EX_SIZE GetSizeEx;\r
275\r
276 PCD_PPI_SET8 Set8;\r
277 PCD_PPI_SET16 Set16;\r
278 PCD_PPI_SET32 Set32;\r
279 PCD_PPI_SET64 Set64;\r
280 PCD_PPI_SET_POINTER SetPtr;\r
281 PCD_PPI_SET_BOOLEAN SetBool;\r
282\r
283 PCD_PPI_SET_EX_8 Set8Ex;\r
284 PCD_PPI_SET_EX_16 Set16Ex;\r
285 PCD_PPI_SET_EX_32 Set32Ex;\r
286 PCD_PPI_SET_EX_64 Set64Ex;\r
287 PCD_PPI_SET_EX_POINTER SetPtrEx;\r
288 PCD_PPI_SET_EX_BOOLEAN SetBoolEx;\r
289\r
290 PCD_PPI_CALLBACK_ONSET CallbackOnSet;\r
291 PCD_PPI_CANCEL_CALLBACK CancelCallback;\r
292 PCD_PPI_GET_NEXT_TOKEN GetNextToken;\r
293} PCD_PPI;\r
294\r
295\r
296#endif\r