]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/Pcd.h
1) remove some dead code from WinNtBusDriver.c
[mirror_edk2.git] / MdePkg / Include / Protocol / 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 gPcdProtocolGuid;\r
21\r
22#define PCD_PROTOCOL_GUID \\r
23 { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7 } }\r
24\r
58f1099f 25#define PCD_INVALID_TOKEN_NUMBER ((UINTN) 0)\r
8a43e8dd 26\r
878ddf1f 27typedef \r
b16ef805 28VOID\r
878ddf1f 29(EFIAPI *PCD_PROTOCOL_SET_SKU) (\r
8a43e8dd 30 IN UINTN SkuId\r
878ddf1f 31 );\r
32\r
33typedef\r
34UINT8\r
35(EFIAPI *PCD_PROTOCOL_GET8) (\r
8a43e8dd 36 IN UINTN TokenNumber\r
878ddf1f 37 );\r
38\r
39typedef\r
40UINT16\r
41(EFIAPI *PCD_PROTOCOL_GET16) (\r
8a43e8dd 42 IN UINTN TokenNumber\r
878ddf1f 43 );\r
44\r
45typedef\r
46UINT32\r
47(EFIAPI *PCD_PROTOCOL_GET32) (\r
8a43e8dd 48 IN UINTN TokenNumber\r
878ddf1f 49 );\r
50\r
51typedef\r
52UINT64\r
53(EFIAPI *PCD_PROTOCOL_GET64) (\r
8a43e8dd 54 IN UINTN TokenNumber\r
878ddf1f 55 );\r
56\r
57typedef\r
58VOID *\r
59(EFIAPI *PCD_PROTOCOL_GET_POINTER) (\r
8a43e8dd 60 IN UINTN TokenNumber\r
878ddf1f 61 );\r
62\r
63typedef\r
64BOOLEAN\r
65(EFIAPI *PCD_PROTOCOL_GET_BOOLEAN) (\r
8a43e8dd 66 IN UINTN TokenNumber\r
878ddf1f 67 );\r
68\r
69typedef\r
70UINTN\r
71(EFIAPI *PCD_PROTOCOL_GET_SIZE) (\r
8a43e8dd 72 IN UINTN TokenNumber\r
878ddf1f 73 );\r
74\r
75typedef\r
76UINT8\r
77(EFIAPI *PCD_PROTOCOL_GET_EX_8) (\r
78 IN CONST EFI_GUID *Guid,\r
8a43e8dd 79 IN UINTN TokenNumber\r
878ddf1f 80 );\r
81\r
82typedef\r
83UINT16\r
84(EFIAPI *PCD_PROTOCOL_GET_EX_16) (\r
85 IN CONST EFI_GUID *Guid,\r
8a43e8dd 86 IN UINTN TokenNumber\r
878ddf1f 87 );\r
88\r
89typedef\r
90UINT32\r
91(EFIAPI *PCD_PROTOCOL_GET_EX_32) (\r
92 IN CONST EFI_GUID *Guid,\r
8a43e8dd 93 IN UINTN TokenNumber\r
878ddf1f 94 );\r
95\r
96typedef\r
97UINT64\r
98(EFIAPI *PCD_PROTOCOL_GET_EX_64) (\r
99 IN CONST EFI_GUID *Guid,\r
8a43e8dd 100 IN UINTN TokenNumber\r
878ddf1f 101 );\r
102\r
103typedef\r
104VOID *\r
105(EFIAPI *PCD_PROTOCOL_GET_EX_POINTER) (\r
106 IN CONST EFI_GUID *Guid,\r
8a43e8dd 107 IN UINTN TokenNumber\r
878ddf1f 108 );\r
109\r
110typedef\r
111BOOLEAN\r
112(EFIAPI *PCD_PROTOCOL_GET_EX_BOOLEAN) (\r
113 IN CONST EFI_GUID *Guid,\r
8a43e8dd 114 IN UINTN TokenNumber\r
878ddf1f 115 );\r
116\r
117typedef\r
118UINTN\r
119(EFIAPI *PCD_PROTOCOL_GET_EX_SIZE) (\r
120 IN CONST EFI_GUID *Guid,\r
8a43e8dd 121 IN UINTN TokenNumber\r
878ddf1f 122 );\r
123\r
124typedef\r
125EFI_STATUS\r
126(EFIAPI *PCD_PROTOCOL_SET8) (\r
8a43e8dd 127 IN UINTN TokenNumber,\r
878ddf1f 128 IN UINT8 Value\r
129 );\r
130\r
131typedef\r
132EFI_STATUS\r
133(EFIAPI *PCD_PROTOCOL_SET16) (\r
8a43e8dd 134 IN UINTN TokenNumber,\r
878ddf1f 135 IN UINT16 Value\r
136 );\r
137\r
138typedef\r
139EFI_STATUS\r
140(EFIAPI *PCD_PROTOCOL_SET32) (\r
8a43e8dd 141 IN UINTN TokenNumber,\r
878ddf1f 142 IN UINT32 Value\r
143 );\r
144\r
145typedef\r
146EFI_STATUS\r
147(EFIAPI *PCD_PROTOCOL_SET64) (\r
8a43e8dd 148 IN UINTN TokenNumber,\r
878ddf1f 149 IN UINT64 Value\r
150 );\r
151\r
152typedef\r
153EFI_STATUS\r
154(EFIAPI *PCD_PROTOCOL_SET_POINTER) (\r
8a43e8dd 155 IN UINTN TokenNumber,\r
b16ef805 156 IN UINTN SizeOfBuffer,\r
157 IN VOID *Buffer\r
878ddf1f 158 );\r
159\r
160typedef\r
161EFI_STATUS\r
162(EFIAPI *PCD_PROTOCOL_SET_BOOLEAN) (\r
8a43e8dd 163 IN UINTN TokenNumber,\r
878ddf1f 164 IN BOOLEAN Value\r
165 );\r
166\r
167typedef\r
168EFI_STATUS\r
169(EFIAPI *PCD_PROTOCOL_SET_EX_8) (\r
170 IN CONST EFI_GUID *Guid,\r
8a43e8dd 171 IN UINTN TokenNumber,\r
878ddf1f 172 IN UINT8 Value\r
173 );\r
174\r
175typedef\r
176EFI_STATUS\r
177(EFIAPI *PCD_PROTOCOL_SET_EX_16) (\r
178 IN CONST EFI_GUID *Guid,\r
8a43e8dd 179 IN UINTN TokenNumber,\r
878ddf1f 180 IN UINT16 Value\r
181 );\r
182\r
183typedef\r
184EFI_STATUS\r
185(EFIAPI *PCD_PROTOCOL_SET_EX_32) (\r
186 IN CONST EFI_GUID *Guid,\r
8a43e8dd 187 IN UINTN TokenNumber,\r
878ddf1f 188 IN UINT32 Value\r
189 );\r
190\r
191typedef\r
192EFI_STATUS\r
193(EFIAPI *PCD_PROTOCOL_SET_EX_64) (\r
194 IN CONST EFI_GUID *Guid,\r
8a43e8dd 195 IN UINTN TokenNumber,\r
878ddf1f 196 IN UINT64 Value\r
197 );\r
198\r
199typedef\r
200EFI_STATUS\r
201(EFIAPI *PCD_PROTOCOL_SET_EX_POINTER) (\r
202 IN CONST EFI_GUID *Guid,\r
8a43e8dd 203 IN UINTN TokenNumber,\r
b16ef805 204 IN UINTN SizeOfBuffer,\r
205 IN VOID *Buffer\r
878ddf1f 206 );\r
207\r
208typedef\r
209EFI_STATUS\r
210(EFIAPI *PCD_PROTOCOL_SET_EX_BOOLEAN) (\r
211 IN CONST EFI_GUID *Guid,\r
8a43e8dd 212 IN UINTN TokenNumber,\r
878ddf1f 213 IN BOOLEAN Value\r
214 );\r
215 \r
216/**\r
217 Callback on SET function prototype definition.\r
218\r
219 @param[in] CallBackGuid The PCD token GUID being set.\r
220 @param[in] CallBackToken The PCD token number being set.\r
221 @param[in] TokenData A pointer to the token data being set.\r
222 @param[in] TokenDataSize The size, in bytes, of the data being set.\r
223\r
224 @retval VOID\r
225\r
226--*/\r
227typedef\r
228VOID\r
229(EFIAPI *PCD_PROTOCOL_CALLBACK) (\r
b16ef805 230 IN CONST EFI_GUID *CallBackGuid, OPTIONAL\r
8a43e8dd 231 IN UINTN CallBackToken,\r
b16ef805 232 IN OUT VOID *TokenData,\r
233 IN UINTN TokenDataSize\r
878ddf1f 234 );\r
235\r
236typedef\r
237EFI_STATUS\r
238(EFIAPI *PCD_PROTOCOL_CALLBACK_ONSET) (\r
8a43e8dd 239 IN UINTN TokenNumber,\r
878ddf1f 240 IN CONST EFI_GUID *Guid, OPTIONAL\r
241 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
242 );\r
243\r
244typedef\r
245EFI_STATUS\r
246(EFIAPI *PCD_PROTOCOL_CANCEL_CALLBACK) (\r
8a43e8dd 247 IN UINTN TokenNumber,\r
878ddf1f 248 IN CONST EFI_GUID *Guid, OPTIONAL\r
249 IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
250 );\r
251\r
252typedef \r
253EFI_STATUS\r
254(EFIAPI *PCD_PROTOCOL_GET_NEXT_TOKEN) (\r
255 IN CONST EFI_GUID *Guid, OPTIONAL\r
8a43e8dd 256 IN OUT UINTN *TokenNumber\r
878ddf1f 257 );\r
258\r
259typedef struct {\r
260 PCD_PROTOCOL_SET_SKU SetSku;\r
261\r
262 PCD_PROTOCOL_GET8 Get8;\r
263 PCD_PROTOCOL_GET16 Get16;\r
264 PCD_PROTOCOL_GET32 Get32;\r
265 PCD_PROTOCOL_GET64 Get64;\r
266 PCD_PROTOCOL_GET_POINTER GetPtr;\r
267 PCD_PROTOCOL_GET_BOOLEAN GetBool;\r
268 PCD_PROTOCOL_GET_SIZE GetSize;\r
269\r
270 PCD_PROTOCOL_GET_EX_8 Get8Ex;\r
271 PCD_PROTOCOL_GET_EX_16 Get16Ex;\r
272 PCD_PROTOCOL_GET_EX_32 Get32Ex;\r
273 PCD_PROTOCOL_GET_EX_64 Get64Ex;\r
274 PCD_PROTOCOL_GET_EX_POINTER GetPtrEx;\r
275 PCD_PROTOCOL_GET_EX_BOOLEAN GetBoolEx;\r
276 PCD_PROTOCOL_GET_EX_SIZE GetSizeEx;\r
277\r
278 PCD_PROTOCOL_SET8 Set8;\r
279 PCD_PROTOCOL_SET16 Set16;\r
280 PCD_PROTOCOL_SET32 Set32;\r
281 PCD_PROTOCOL_SET64 Set64;\r
282 PCD_PROTOCOL_SET_POINTER SetPtr;\r
283 PCD_PROTOCOL_SET_BOOLEAN SetBool;\r
284\r
285 PCD_PROTOCOL_SET_EX_8 Set8Ex;\r
286 PCD_PROTOCOL_SET_EX_16 Set16Ex;\r
287 PCD_PROTOCOL_SET_EX_32 Set32Ex;\r
288 PCD_PROTOCOL_SET_EX_64 Set64Ex;\r
289 PCD_PROTOCOL_SET_EX_POINTER SetPtrEx;\r
290 PCD_PROTOCOL_SET_EX_BOOLEAN SetBoolEx;\r
291\r
292 PCD_PROTOCOL_CALLBACK_ONSET CallbackOnSet;\r
293 PCD_PROTOCOL_CANCEL_CALLBACK CancelCallback;\r
294 PCD_PROTOCOL_GET_NEXT_TOKEN GetNextToken;\r
295} PCD_PROTOCOL;\r
296\r
297#endif\r