2 Platform Configuration Database (PCD) Protocol
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 extern EFI_GUID gPcdProtocolGuid
;
22 #define PCD_PROTOCOL_GUID \
23 { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7 } }
25 #define PCD_INVALID_TOKEN_NUMBER ((UINTN) -1)
29 (EFIAPI
*PCD_PROTOCOL_SET_SKU
) (
35 (EFIAPI
*PCD_PROTOCOL_GET8
) (
41 (EFIAPI
*PCD_PROTOCOL_GET16
) (
47 (EFIAPI
*PCD_PROTOCOL_GET32
) (
53 (EFIAPI
*PCD_PROTOCOL_GET64
) (
59 (EFIAPI
*PCD_PROTOCOL_GET_POINTER
) (
65 (EFIAPI
*PCD_PROTOCOL_GET_BOOLEAN
) (
71 (EFIAPI
*PCD_PROTOCOL_GET_SIZE
) (
77 (EFIAPI
*PCD_PROTOCOL_GET_EX_8
) (
78 IN CONST EFI_GUID
*Guid
,
84 (EFIAPI
*PCD_PROTOCOL_GET_EX_16
) (
85 IN CONST EFI_GUID
*Guid
,
91 (EFIAPI
*PCD_PROTOCOL_GET_EX_32
) (
92 IN CONST EFI_GUID
*Guid
,
98 (EFIAPI
*PCD_PROTOCOL_GET_EX_64
) (
99 IN CONST EFI_GUID
*Guid
,
105 (EFIAPI
*PCD_PROTOCOL_GET_EX_POINTER
) (
106 IN CONST EFI_GUID
*Guid
,
112 (EFIAPI
*PCD_PROTOCOL_GET_EX_BOOLEAN
) (
113 IN CONST EFI_GUID
*Guid
,
119 (EFIAPI
*PCD_PROTOCOL_GET_EX_SIZE
) (
120 IN CONST EFI_GUID
*Guid
,
126 (EFIAPI
*PCD_PROTOCOL_SET8
) (
127 IN UINTN TokenNumber
,
133 (EFIAPI
*PCD_PROTOCOL_SET16
) (
134 IN UINTN TokenNumber
,
140 (EFIAPI
*PCD_PROTOCOL_SET32
) (
141 IN UINTN TokenNumber
,
147 (EFIAPI
*PCD_PROTOCOL_SET64
) (
148 IN UINTN TokenNumber
,
154 (EFIAPI
*PCD_PROTOCOL_SET_POINTER
) (
155 IN UINTN TokenNumber
,
156 IN UINTN SizeOfBuffer
,
162 (EFIAPI
*PCD_PROTOCOL_SET_BOOLEAN
) (
163 IN UINTN TokenNumber
,
169 (EFIAPI
*PCD_PROTOCOL_SET_EX_8
) (
170 IN CONST EFI_GUID
*Guid
,
171 IN UINTN TokenNumber
,
177 (EFIAPI
*PCD_PROTOCOL_SET_EX_16
) (
178 IN CONST EFI_GUID
*Guid
,
179 IN UINTN TokenNumber
,
185 (EFIAPI
*PCD_PROTOCOL_SET_EX_32
) (
186 IN CONST EFI_GUID
*Guid
,
187 IN UINTN TokenNumber
,
193 (EFIAPI
*PCD_PROTOCOL_SET_EX_64
) (
194 IN CONST EFI_GUID
*Guid
,
195 IN UINTN TokenNumber
,
201 (EFIAPI
*PCD_PROTOCOL_SET_EX_POINTER
) (
202 IN CONST EFI_GUID
*Guid
,
203 IN UINTN TokenNumber
,
204 IN UINTN SizeOfBuffer
,
210 (EFIAPI
*PCD_PROTOCOL_SET_EX_BOOLEAN
) (
211 IN CONST EFI_GUID
*Guid
,
212 IN UINTN TokenNumber
,
217 Callback on SET function prototype definition.
219 @param[in] CallBackGuid The PCD token GUID being set.
220 @param[in] CallBackToken The PCD token number being set.
221 @param[in] TokenData A pointer to the token data being set.
222 @param[in] TokenDataSize The size, in bytes, of the data being set.
229 (EFIAPI
*PCD_PROTOCOL_CALLBACK
) (
230 IN CONST EFI_GUID
*CallBackGuid
, OPTIONAL
231 IN UINTN CallBackToken
,
232 IN OUT VOID
*TokenData
,
233 IN UINTN TokenDataSize
238 (EFIAPI
*PCD_PROTOCOL_CALLBACK_ONSET
) (
239 IN UINTN TokenNumber
,
240 IN CONST EFI_GUID
*Guid
, OPTIONAL
241 IN PCD_PROTOCOL_CALLBACK CallBackFunction
246 (EFIAPI
*PCD_PROTOCOL_CANCEL_CALLBACK
) (
247 IN UINTN TokenNumber
,
248 IN CONST EFI_GUID
*Guid
, OPTIONAL
249 IN PCD_PROTOCOL_CALLBACK CallBackFunction
254 (EFIAPI
*PCD_PROTOCOL_GET_NEXT_TOKEN
) (
255 IN CONST EFI_GUID
*Guid
, OPTIONAL
256 IN OUT UINTN
*TokenNumber
260 PCD_PROTOCOL_SET_SKU SetSku
;
262 PCD_PROTOCOL_GET8 Get8
;
263 PCD_PROTOCOL_GET16 Get16
;
264 PCD_PROTOCOL_GET32 Get32
;
265 PCD_PROTOCOL_GET64 Get64
;
266 PCD_PROTOCOL_GET_POINTER GetPtr
;
267 PCD_PROTOCOL_GET_BOOLEAN GetBool
;
268 PCD_PROTOCOL_GET_SIZE GetSize
;
270 PCD_PROTOCOL_GET_EX_8 Get8Ex
;
271 PCD_PROTOCOL_GET_EX_16 Get16Ex
;
272 PCD_PROTOCOL_GET_EX_32 Get32Ex
;
273 PCD_PROTOCOL_GET_EX_64 Get64Ex
;
274 PCD_PROTOCOL_GET_EX_POINTER GetPtrEx
;
275 PCD_PROTOCOL_GET_EX_BOOLEAN GetBoolEx
;
276 PCD_PROTOCOL_GET_EX_SIZE GetSizeEx
;
278 PCD_PROTOCOL_SET8 Set8
;
279 PCD_PROTOCOL_SET16 Set16
;
280 PCD_PROTOCOL_SET32 Set32
;
281 PCD_PROTOCOL_SET64 Set64
;
282 PCD_PROTOCOL_SET_POINTER SetPtr
;
283 PCD_PROTOCOL_SET_BOOLEAN SetBool
;
285 PCD_PROTOCOL_SET_EX_8 Set8Ex
;
286 PCD_PROTOCOL_SET_EX_16 Set16Ex
;
287 PCD_PROTOCOL_SET_EX_32 Set32Ex
;
288 PCD_PROTOCOL_SET_EX_64 Set64Ex
;
289 PCD_PROTOCOL_SET_EX_POINTER SetPtrEx
;
290 PCD_PROTOCOL_SET_EX_BOOLEAN SetBoolEx
;
292 PCD_PROTOCOL_CALLBACK_ONSET CallbackOnSet
;
293 PCD_PROTOCOL_CANCEL_CALLBACK CancelCallback
;
294 PCD_PROTOCOL_GET_NEXT_TOKEN GetNextToken
;