]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Ppi/Pcd.h
Initial import.
[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
25typedef \r
26EFI_STATUS\r
27(EFIAPI *PCD_PPI_SET_SKU) (\r
28 IN UINTN SkuId\r
29 );\r
30\r
31typedef\r
32UINT8\r
33(EFIAPI *PCD_PPI_GET8) (\r
34 IN UINTN TokenNumber\r
35 );\r
36\r
37typedef\r
38UINT16\r
39(EFIAPI *PCD_PPI_GET16) (\r
40 IN UINTN TokenNumber\r
41 );\r
42\r
43typedef\r
44UINT32\r
45(EFIAPI *PCD_PPI_GET32) (\r
46 IN UINTN TokenNumber\r
47 );\r
48\r
49typedef\r
50UINT64\r
51(EFIAPI *PCD_PPI_GET64) (\r
52 IN UINTN TokenNumber\r
53 );\r
54\r
55typedef\r
56VOID *\r
57(EFIAPI *PCD_PPI_GET_POINTER) (\r
58 IN UINTN TokenNumber\r
59 );\r
60\r
61typedef\r
62BOOLEAN\r
63(EFIAPI *PCD_PPI_GET_BOOLEAN) (\r
64 IN UINTN TokenNumber\r
65 );\r
66\r
67typedef\r
68UINTN\r
69(EFIAPI *PCD_PPI_GET_SIZE) (\r
70 IN UINTN TokenNumber\r
71 );\r
72\r
73typedef\r
74UINT8\r
75(EFIAPI *PCD_PPI_GET_EX_8) (\r
76 IN CONST EFI_GUID *Guid,\r
77 IN UINTN TokenNumber\r
78 );\r
79\r
80typedef\r
81UINT16\r
82(EFIAPI *PCD_PPI_GET_EX_16) (\r
83 IN CONST EFI_GUID *Guid,\r
84 IN UINTN TokenNumber\r
85 );\r
86\r
87typedef\r
88UINT32\r
89(EFIAPI *PCD_PPI_GET_EX_32) (\r
90 IN CONST EFI_GUID *Guid,\r
91 IN UINTN TokenNumber\r
92 );\r
93\r
94typedef\r
95UINT64\r
96(EFIAPI *PCD_PPI_GET_EX_64) (\r
97 IN CONST EFI_GUID *Guid,\r
98 IN UINTN TokenNumber\r
99 );\r
100\r
101typedef\r
102VOID *\r
103(EFIAPI *PCD_PPI_GET_EX_POINTER) (\r
104 IN CONST EFI_GUID *Guid,\r
105 IN UINTN TokenNumber\r
106 );\r
107\r
108typedef\r
109BOOLEAN\r
110(EFIAPI *PCD_PPI_GET_EX_BOOLEAN) (\r
111 IN CONST EFI_GUID *Guid,\r
112 IN UINTN TokenNumber\r
113 );\r
114\r
115typedef\r
116UINTN\r
117(EFIAPI *PCD_PPI_GET_EX_SIZE) (\r
118 IN CONST EFI_GUID *Guid,\r
119 IN UINTN TokenNumber\r
120 );\r
121\r
122typedef\r
123EFI_STATUS\r
124(EFIAPI *PCD_PPI_SET8) (\r
125 IN UINTN TokenNumber,\r
126 IN UINT8 Value\r
127 );\r
128\r
129typedef\r
130EFI_STATUS\r
131(EFIAPI *PCD_PPI_SET16) (\r
132 IN UINTN TokenNumber,\r
133 IN UINT16 Value\r
134 );\r
135\r
136typedef\r
137EFI_STATUS\r
138(EFIAPI *PCD_PPI_SET32) (\r
139 IN UINTN TokenNumber,\r
140 IN UINT32 Value\r
141 );\r
142\r
143typedef\r
144EFI_STATUS\r
145(EFIAPI *PCD_PPI_SET64) (\r
146 IN UINTN TokenNumber,\r
147 IN UINT64 Value\r
148 );\r
149\r
150typedef\r
151EFI_STATUS\r
152(EFIAPI *PCD_PPI_SET_POINTER) (\r
153 IN UINTN TokenNumber,\r
154 IN CONST VOID *Value\r
155 );\r
156\r
157typedef\r
158EFI_STATUS\r
159(EFIAPI *PCD_PPI_SET_BOOLEAN) (\r
160 IN UINTN TokenNumber,\r
161 IN BOOLEAN Value\r
162 );\r
163\r
164typedef\r
165EFI_STATUS\r
166(EFIAPI *PCD_PPI_SET_EX_8) (\r
167 IN CONST EFI_GUID *Guid,\r
168 IN UINTN TokenNumber,\r
169 IN UINT8 Value\r
170 );\r
171\r
172typedef\r
173EFI_STATUS\r
174(EFIAPI *PCD_PPI_SET_EX_16) (\r
175 IN CONST EFI_GUID *Guid,\r
176 IN UINTN TokenNumber,\r
177 IN UINT16 Value\r
178 );\r
179\r
180typedef\r
181EFI_STATUS\r
182(EFIAPI *PCD_PPI_SET_EX_32) (\r
183 IN CONST EFI_GUID *Guid,\r
184 IN UINTN TokenNumber,\r
185 IN UINT32 Value\r
186 );\r
187\r
188typedef\r
189EFI_STATUS\r
190(EFIAPI *PCD_PPI_SET_EX_64) (\r
191 IN CONST EFI_GUID *Guid,\r
192 IN UINTN TokenNumber,\r
193 IN UINT64 Value\r
194 );\r
195\r
196typedef\r
197EFI_STATUS\r
198(EFIAPI *PCD_PPI_SET_EX_POINTER) (\r
199 IN CONST EFI_GUID *Guid,\r
200 IN UINTN TokenNumber,\r
201 IN CONST VOID *Value\r
202 );\r
203\r
204typedef\r
205EFI_STATUS\r
206(EFIAPI *PCD_PPI_SET_EX_BOOLEAN) (\r
207 IN CONST EFI_GUID *Guid,\r
208 IN UINTN TokenNumber,\r
209 IN BOOLEAN Value\r
210 );\r
211\r
212/**\r
213 Callback on SET function prototype definition.\r
214\r
215 @param[in] CallBackGuid The PCD token GUID being set.\r
216 @param[in] CallBackToken The PCD token number being set.\r
217 @param[in] TokenData A pointer to the token data being set.\r
218 @param[in] TokenDataSize The size, in bytes, of the data being set.\r
219\r
220 @retval VOID\r
221\r
222--*/\r
223typedef\r
224VOID\r
225(EFIAPI *PCD_PPI_CALLBACK) (\r
226 IN CONST EFI_GUID *CallBackGuid, OPTIONAL\r
227 IN UINTN CallBackToken,\r
228 IN VOID *TokenData,\r
229 IN UINTN TokenDataSize\r
230 );\r
231\r
232typedef\r
233EFI_STATUS\r
234(EFIAPI *PCD_PPI_CALLBACK_ONSET) (\r
235 IN UINTN TokenNumber,\r
236 IN CONST EFI_GUID *Guid, OPTIONAL\r
237 IN PCD_PPI_CALLBACK CallBackFunction\r
238 );\r
239\r
240typedef\r
241EFI_STATUS\r
242(EFIAPI *PCD_PPI_CANCEL_CALLBACK) (\r
243 IN UINTN TokenNumber,\r
244 IN CONST EFI_GUID *Guid, OPTIONAL\r
245 IN PCD_PPI_CALLBACK CallBackFunction\r
246 );\r
247\r
248typedef \r
249EFI_STATUS\r
250(EFIAPI *PCD_PPI_GET_NEXT_TOKEN) (\r
251 IN CONST EFI_GUID *Guid, OPTIONAL\r
252 IN OUT UINTN *TokenNumber\r
253 );\r
254\r
255typedef struct {\r
256 PCD_PPI_SET_SKU SetSku;\r
257\r
258 PCD_PPI_GET8 Get8;\r
259 PCD_PPI_GET16 Get16;\r
260 PCD_PPI_GET32 Get32;\r
261 PCD_PPI_GET64 Get64;\r
262 PCD_PPI_GET_POINTER GetPtr;\r
263 PCD_PPI_GET_BOOLEAN GetBool;\r
264 PCD_PPI_GET_SIZE GetSize;\r
265\r
266 PCD_PPI_GET_EX_8 Get8Ex;\r
267 PCD_PPI_GET_EX_16 Get16Ex;\r
268 PCD_PPI_GET_EX_32 Get32Ex;\r
269 PCD_PPI_GET_EX_64 Get64Ex;\r
270 PCD_PPI_GET_EX_POINTER GetPtrEx;\r
271 PCD_PPI_GET_EX_BOOLEAN GetBoolEx;\r
272 PCD_PPI_GET_EX_SIZE GetSizeEx;\r
273\r
274 PCD_PPI_SET8 Set8;\r
275 PCD_PPI_SET16 Set16;\r
276 PCD_PPI_SET32 Set32;\r
277 PCD_PPI_SET64 Set64;\r
278 PCD_PPI_SET_POINTER SetPtr;\r
279 PCD_PPI_SET_BOOLEAN SetBool;\r
280\r
281 PCD_PPI_SET_EX_8 Set8Ex;\r
282 PCD_PPI_SET_EX_16 Set16Ex;\r
283 PCD_PPI_SET_EX_32 Set32Ex;\r
284 PCD_PPI_SET_EX_64 Set64Ex;\r
285 PCD_PPI_SET_EX_POINTER SetPtrEx;\r
286 PCD_PPI_SET_EX_BOOLEAN SetBoolEx;\r
287\r
288 PCD_PPI_CALLBACK_ONSET CallbackOnSet;\r
289 PCD_PPI_CANCEL_CALLBACK CancelCallback;\r
290 PCD_PPI_GET_NEXT_TOKEN GetNextToken;\r
291} PCD_PPI;\r
292\r
293\r
294#endif\r