1*f334afcfSToomas Soome /** @file 2*f334afcfSToomas Soome Native Platform Configuration Database (PCD) Protocol 3*f334afcfSToomas Soome 4*f334afcfSToomas Soome Different with the EFI_PCD_PROTOCOL defined in PI 1.2 specification, the native 5*f334afcfSToomas Soome PCD protocol provide interfaces for dynamic and dynamic-ex type PCD. 6*f334afcfSToomas Soome The interfaces in dynamic type PCD do not require the token space guid as parameter, 7*f334afcfSToomas Soome but interfaces in dynamic-ex type PCD require token space guid as parameter. 8*f334afcfSToomas Soome 9*f334afcfSToomas Soome Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> 10*f334afcfSToomas Soome SPDX-License-Identifier: BSD-2-Clause-Patent 11*f334afcfSToomas Soome 12*f334afcfSToomas Soome @par Revision Reference: 13*f334afcfSToomas Soome This Protocol was introduced in PI Specification 1.2. 14*f334afcfSToomas Soome 15*f334afcfSToomas Soome **/ 16*f334afcfSToomas Soome 17*f334afcfSToomas Soome #ifndef __PCD_H__ 18*f334afcfSToomas Soome #define __PCD_H__ 19*f334afcfSToomas Soome 20*f334afcfSToomas Soome extern EFI_GUID gPcdProtocolGuid; 21*f334afcfSToomas Soome 22*f334afcfSToomas Soome #define PCD_PROTOCOL_GUID \ 23*f334afcfSToomas Soome { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7 } } 24*f334afcfSToomas Soome 25*f334afcfSToomas Soome #define PCD_INVALID_TOKEN_NUMBER ((UINTN) 0) 26*f334afcfSToomas Soome 27*f334afcfSToomas Soome /** 28*f334afcfSToomas Soome Sets the SKU value for subsequent calls to set or get PCD token values. 29*f334afcfSToomas Soome 30*f334afcfSToomas Soome SetSku() sets the SKU Id to be used for subsequent calls to set or get PCD values. 31*f334afcfSToomas Soome SetSku() is normally called only once by the system. 32*f334afcfSToomas Soome 33*f334afcfSToomas Soome For each item (token), the database can hold a single value that applies to all SKUs, 34*f334afcfSToomas Soome or multiple values, where each value is associated with a specific SKU Id. Items with multiple, 35*f334afcfSToomas Soome SKU-specific values are called SKU enabled. 36*f334afcfSToomas Soome 37*f334afcfSToomas Soome The SKU Id of zero is reserved as a default. The valid SkuId range is 1 to 255. 38*f334afcfSToomas Soome For tokens that are not SKU enabled, the system ignores any set SKU Id and works with the 39*f334afcfSToomas Soome single value for that token. For SKU-enabled tokens, the system will use the SKU Id set by the 40*f334afcfSToomas Soome last call to SetSku(). If no SKU Id is set or the currently set SKU Id isn't valid for the specified token, 41*f334afcfSToomas Soome the system uses the default SKU Id. If the system attempts to use the default SKU Id and no value has been 42*f334afcfSToomas Soome set for that Id, the results are unpredictable. 43*f334afcfSToomas Soome 44*f334afcfSToomas Soome @param[in] SkuId The SKU value that will be used when the PCD service will retrieve and 45*f334afcfSToomas Soome set values associated with a PCD token. 46*f334afcfSToomas Soome 47*f334afcfSToomas Soome 48*f334afcfSToomas Soome **/ 49*f334afcfSToomas Soome typedef 50*f334afcfSToomas Soome VOID 51*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_SKU)( 52*f334afcfSToomas Soome IN UINTN SkuId 53*f334afcfSToomas Soome ); 54*f334afcfSToomas Soome 55*f334afcfSToomas Soome /** 56*f334afcfSToomas Soome Retrieves an 8-bit value for a given PCD token. 57*f334afcfSToomas Soome 58*f334afcfSToomas Soome Retrieves the current byte-sized value for a PCD token number. 59*f334afcfSToomas Soome If the TokenNumber is invalid, the results are unpredictable. 60*f334afcfSToomas Soome 61*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 62*f334afcfSToomas Soome 63*f334afcfSToomas Soome @return The UINT8 value. 64*f334afcfSToomas Soome 65*f334afcfSToomas Soome **/ 66*f334afcfSToomas Soome typedef 67*f334afcfSToomas Soome UINT8 68*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET8)( 69*f334afcfSToomas Soome IN UINTN TokenNumber 70*f334afcfSToomas Soome ); 71*f334afcfSToomas Soome 72*f334afcfSToomas Soome /** 73*f334afcfSToomas Soome Retrieves a 16-bit value for a given PCD token. 74*f334afcfSToomas Soome 75*f334afcfSToomas Soome Retrieves the current 16-bit value for a PCD token number. 76*f334afcfSToomas Soome If the TokenNumber is invalid, the results are unpredictable. 77*f334afcfSToomas Soome 78*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 79*f334afcfSToomas Soome 80*f334afcfSToomas Soome @return The UINT16 value. 81*f334afcfSToomas Soome 82*f334afcfSToomas Soome **/ 83*f334afcfSToomas Soome typedef 84*f334afcfSToomas Soome UINT16 85*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET16)( 86*f334afcfSToomas Soome IN UINTN TokenNumber 87*f334afcfSToomas Soome ); 88*f334afcfSToomas Soome 89*f334afcfSToomas Soome /** 90*f334afcfSToomas Soome Retrieves a 32-bit value for a given PCD token. 91*f334afcfSToomas Soome 92*f334afcfSToomas Soome Retrieves the current 32-bit value for a PCD token number. 93*f334afcfSToomas Soome If the TokenNumber is invalid, the results are unpredictable. 94*f334afcfSToomas Soome 95*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 96*f334afcfSToomas Soome 97*f334afcfSToomas Soome @return The UINT32 value. 98*f334afcfSToomas Soome 99*f334afcfSToomas Soome **/ 100*f334afcfSToomas Soome typedef 101*f334afcfSToomas Soome UINT32 102*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET32)( 103*f334afcfSToomas Soome IN UINTN TokenNumber 104*f334afcfSToomas Soome ); 105*f334afcfSToomas Soome 106*f334afcfSToomas Soome /** 107*f334afcfSToomas Soome Retrieves a 64-bit value for a given PCD token. 108*f334afcfSToomas Soome 109*f334afcfSToomas Soome Retrieves the current 64-bit value for a PCD token number. 110*f334afcfSToomas Soome If the TokenNumber is invalid, the results are unpredictable. 111*f334afcfSToomas Soome 112*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 113*f334afcfSToomas Soome 114*f334afcfSToomas Soome @return The UINT64 value. 115*f334afcfSToomas Soome 116*f334afcfSToomas Soome **/ 117*f334afcfSToomas Soome typedef 118*f334afcfSToomas Soome UINT64 119*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET64)( 120*f334afcfSToomas Soome IN UINTN TokenNumber 121*f334afcfSToomas Soome ); 122*f334afcfSToomas Soome 123*f334afcfSToomas Soome /** 124*f334afcfSToomas Soome Retrieves a pointer to a value for a given PCD token. 125*f334afcfSToomas Soome 126*f334afcfSToomas Soome Retrieves the current pointer to the buffer for a PCD token number. 127*f334afcfSToomas Soome Do not make any assumptions about the alignment of the pointer that 128*f334afcfSToomas Soome is returned by this function call. If the TokenNumber is invalid, 129*f334afcfSToomas Soome the results are unpredictable. 130*f334afcfSToomas Soome 131*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 132*f334afcfSToomas Soome 133*f334afcfSToomas Soome @return The pointer to the buffer to be retrived. 134*f334afcfSToomas Soome 135*f334afcfSToomas Soome **/ 136*f334afcfSToomas Soome typedef 137*f334afcfSToomas Soome VOID * 138*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_POINTER)( 139*f334afcfSToomas Soome IN UINTN TokenNumber 140*f334afcfSToomas Soome ); 141*f334afcfSToomas Soome 142*f334afcfSToomas Soome /** 143*f334afcfSToomas Soome Retrieves a Boolean value for a given PCD token. 144*f334afcfSToomas Soome 145*f334afcfSToomas Soome Retrieves the current boolean value for a PCD token number. 146*f334afcfSToomas Soome Do not make any assumptions about the alignment of the pointer that 147*f334afcfSToomas Soome is returned by this function call. If the TokenNumber is invalid, 148*f334afcfSToomas Soome the results are unpredictable. 149*f334afcfSToomas Soome 150*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 151*f334afcfSToomas Soome 152*f334afcfSToomas Soome @return The Boolean value. 153*f334afcfSToomas Soome 154*f334afcfSToomas Soome **/ 155*f334afcfSToomas Soome typedef 156*f334afcfSToomas Soome BOOLEAN 157*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_BOOLEAN)( 158*f334afcfSToomas Soome IN UINTN TokenNumber 159*f334afcfSToomas Soome ); 160*f334afcfSToomas Soome 161*f334afcfSToomas Soome /** 162*f334afcfSToomas Soome Retrieves the size of the value for a given PCD token. 163*f334afcfSToomas Soome 164*f334afcfSToomas Soome Retrieves the current size of a particular PCD token. 165*f334afcfSToomas Soome If the TokenNumber is invalid, the results are unpredictable. 166*f334afcfSToomas Soome 167*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 168*f334afcfSToomas Soome 169*f334afcfSToomas Soome @return The size of the value for the PCD token. 170*f334afcfSToomas Soome 171*f334afcfSToomas Soome **/ 172*f334afcfSToomas Soome typedef 173*f334afcfSToomas Soome UINTN 174*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_SIZE)( 175*f334afcfSToomas Soome IN UINTN TokenNumber 176*f334afcfSToomas Soome ); 177*f334afcfSToomas Soome 178*f334afcfSToomas Soome /** 179*f334afcfSToomas Soome Retrieves an 8-bit value for a given PCD token. 180*f334afcfSToomas Soome 181*f334afcfSToomas Soome Retrieves the 8-bit value of a particular PCD token. 182*f334afcfSToomas Soome If the TokenNumber is invalid or the token space 183*f334afcfSToomas Soome specified by Guid does not exist, the results are 184*f334afcfSToomas Soome unpredictable. 185*f334afcfSToomas Soome 186*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 187*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 188*f334afcfSToomas Soome 189*f334afcfSToomas Soome @return The size 8-bit value for the PCD token. 190*f334afcfSToomas Soome 191*f334afcfSToomas Soome **/ 192*f334afcfSToomas Soome typedef 193*f334afcfSToomas Soome UINT8 194*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_8)( 195*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 196*f334afcfSToomas Soome IN UINTN TokenNumber 197*f334afcfSToomas Soome ); 198*f334afcfSToomas Soome 199*f334afcfSToomas Soome /** 200*f334afcfSToomas Soome Retrieves a 16-bit value for a given PCD token. 201*f334afcfSToomas Soome 202*f334afcfSToomas Soome Retrieves the 16-bit value of a particular PCD token. 203*f334afcfSToomas Soome If the TokenNumber is invalid or the token space 204*f334afcfSToomas Soome specified by Guid does not exist, the results are 205*f334afcfSToomas Soome unpredictable. 206*f334afcfSToomas Soome 207*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 208*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 209*f334afcfSToomas Soome 210*f334afcfSToomas Soome @return The size 16-bit value for the PCD token. 211*f334afcfSToomas Soome 212*f334afcfSToomas Soome **/ 213*f334afcfSToomas Soome typedef 214*f334afcfSToomas Soome UINT16 215*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_16)( 216*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 217*f334afcfSToomas Soome IN UINTN TokenNumber 218*f334afcfSToomas Soome ); 219*f334afcfSToomas Soome 220*f334afcfSToomas Soome /** 221*f334afcfSToomas Soome Retrieves a 32-bit value for a given PCD token. 222*f334afcfSToomas Soome 223*f334afcfSToomas Soome Retrieves the 32-bit value of a particular PCD token. 224*f334afcfSToomas Soome If the TokenNumber is invalid or the token space 225*f334afcfSToomas Soome specified by Guid does not exist, the results are 226*f334afcfSToomas Soome unpredictable. 227*f334afcfSToomas Soome 228*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 229*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 230*f334afcfSToomas Soome 231*f334afcfSToomas Soome @return The size 32-bit value for the PCD token. 232*f334afcfSToomas Soome 233*f334afcfSToomas Soome **/ 234*f334afcfSToomas Soome typedef 235*f334afcfSToomas Soome UINT32 236*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_32)( 237*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 238*f334afcfSToomas Soome IN UINTN TokenNumber 239*f334afcfSToomas Soome ); 240*f334afcfSToomas Soome 241*f334afcfSToomas Soome /** 242*f334afcfSToomas Soome Retrieves an 64-bit value for a given PCD token. 243*f334afcfSToomas Soome 244*f334afcfSToomas Soome Retrieves the 64-bit value of a particular PCD token. 245*f334afcfSToomas Soome If the TokenNumber is invalid or the token space 246*f334afcfSToomas Soome specified by Guid does not exist, the results are 247*f334afcfSToomas Soome unpredictable. 248*f334afcfSToomas Soome 249*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 250*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 251*f334afcfSToomas Soome 252*f334afcfSToomas Soome @return The size 64-bit value for the PCD token. 253*f334afcfSToomas Soome 254*f334afcfSToomas Soome **/ 255*f334afcfSToomas Soome typedef 256*f334afcfSToomas Soome UINT64 257*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_64)( 258*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 259*f334afcfSToomas Soome IN UINTN TokenNumber 260*f334afcfSToomas Soome ); 261*f334afcfSToomas Soome 262*f334afcfSToomas Soome /** 263*f334afcfSToomas Soome Retrieves a pointer to a value for a given PCD token. 264*f334afcfSToomas Soome 265*f334afcfSToomas Soome Retrieves the current pointer to the buffer for a PCD token number. 266*f334afcfSToomas Soome Do not make any assumptions about the alignment of the pointer that 267*f334afcfSToomas Soome is returned by this function call. If the TokenNumber is invalid, 268*f334afcfSToomas Soome the results are unpredictable. 269*f334afcfSToomas Soome 270*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 271*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 272*f334afcfSToomas Soome 273*f334afcfSToomas Soome @return The pointer to the buffer to be retrieved. 274*f334afcfSToomas Soome 275*f334afcfSToomas Soome **/ 276*f334afcfSToomas Soome typedef 277*f334afcfSToomas Soome VOID * 278*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_POINTER)( 279*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 280*f334afcfSToomas Soome IN UINTN TokenNumber 281*f334afcfSToomas Soome ); 282*f334afcfSToomas Soome 283*f334afcfSToomas Soome /** 284*f334afcfSToomas Soome Retrieves a Boolean value for a given PCD token. 285*f334afcfSToomas Soome 286*f334afcfSToomas Soome Retrieves the Boolean value of a particular PCD token. 287*f334afcfSToomas Soome If the TokenNumber is invalid or the token space 288*f334afcfSToomas Soome specified by Guid does not exist, the results are 289*f334afcfSToomas Soome unpredictable. 290*f334afcfSToomas Soome 291*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 292*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 293*f334afcfSToomas Soome 294*f334afcfSToomas Soome @return The size Boolean value for the PCD token. 295*f334afcfSToomas Soome 296*f334afcfSToomas Soome **/ 297*f334afcfSToomas Soome typedef 298*f334afcfSToomas Soome BOOLEAN 299*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_BOOLEAN)( 300*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 301*f334afcfSToomas Soome IN UINTN TokenNumber 302*f334afcfSToomas Soome ); 303*f334afcfSToomas Soome 304*f334afcfSToomas Soome /** 305*f334afcfSToomas Soome Retrieves the size of the value for a given PCD token. 306*f334afcfSToomas Soome 307*f334afcfSToomas Soome Retrieves the current size of a particular PCD token. 308*f334afcfSToomas Soome If the TokenNumber is invalid, the results are unpredictable. 309*f334afcfSToomas Soome 310*f334afcfSToomas Soome @param[in] Guid The token space for the token number. 311*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 312*f334afcfSToomas Soome 313*f334afcfSToomas Soome @return The size of the value for the PCD token. 314*f334afcfSToomas Soome 315*f334afcfSToomas Soome **/ 316*f334afcfSToomas Soome typedef 317*f334afcfSToomas Soome UINTN 318*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_EX_SIZE)( 319*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 320*f334afcfSToomas Soome IN UINTN TokenNumber 321*f334afcfSToomas Soome ); 322*f334afcfSToomas Soome 323*f334afcfSToomas Soome /** 324*f334afcfSToomas Soome Sets an 8-bit value for a given PCD token. 325*f334afcfSToomas Soome 326*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 327*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 328*f334afcfSToomas Soome If it is not, an error will be returned. 329*f334afcfSToomas Soome 330*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 331*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 332*f334afcfSToomas Soome 333*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 334*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 335*f334afcfSToomas Soome being set was incompatible with a call to this function. 336*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 337*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 338*f334afcfSToomas Soome 339*f334afcfSToomas Soome **/ 340*f334afcfSToomas Soome typedef 341*f334afcfSToomas Soome EFI_STATUS 342*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET8)( 343*f334afcfSToomas Soome IN UINTN TokenNumber, 344*f334afcfSToomas Soome IN UINT8 Value 345*f334afcfSToomas Soome ); 346*f334afcfSToomas Soome 347*f334afcfSToomas Soome /** 348*f334afcfSToomas Soome Sets a 16-bit value for a given PCD token. 349*f334afcfSToomas Soome 350*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 351*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 352*f334afcfSToomas Soome If it is not, an error will be returned. 353*f334afcfSToomas Soome 354*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 355*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 356*f334afcfSToomas Soome 357*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 358*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 359*f334afcfSToomas Soome being set was incompatible with a call to this function. 360*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 361*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 362*f334afcfSToomas Soome 363*f334afcfSToomas Soome **/ 364*f334afcfSToomas Soome typedef 365*f334afcfSToomas Soome EFI_STATUS 366*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET16)( 367*f334afcfSToomas Soome IN UINTN TokenNumber, 368*f334afcfSToomas Soome IN UINT16 Value 369*f334afcfSToomas Soome ); 370*f334afcfSToomas Soome 371*f334afcfSToomas Soome /** 372*f334afcfSToomas Soome Sets a 32-bit value for a given PCD token. 373*f334afcfSToomas Soome 374*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 375*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 376*f334afcfSToomas Soome If it is not, an error will be returned. 377*f334afcfSToomas Soome 378*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 379*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 380*f334afcfSToomas Soome 381*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 382*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 383*f334afcfSToomas Soome being set was incompatible with a call to this function. 384*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 385*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 386*f334afcfSToomas Soome 387*f334afcfSToomas Soome **/ 388*f334afcfSToomas Soome typedef 389*f334afcfSToomas Soome EFI_STATUS 390*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET32)( 391*f334afcfSToomas Soome IN UINTN TokenNumber, 392*f334afcfSToomas Soome IN UINT32 Value 393*f334afcfSToomas Soome ); 394*f334afcfSToomas Soome 395*f334afcfSToomas Soome /** 396*f334afcfSToomas Soome Sets a 64-bit value for a given PCD token. 397*f334afcfSToomas Soome 398*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 399*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 400*f334afcfSToomas Soome If it is not, an error will be returned. 401*f334afcfSToomas Soome 402*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 403*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 404*f334afcfSToomas Soome 405*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 406*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 407*f334afcfSToomas Soome being set was incompatible with a call to this function. 408*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 409*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 410*f334afcfSToomas Soome 411*f334afcfSToomas Soome **/ 412*f334afcfSToomas Soome typedef 413*f334afcfSToomas Soome EFI_STATUS 414*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET64)( 415*f334afcfSToomas Soome IN UINTN TokenNumber, 416*f334afcfSToomas Soome IN UINT64 Value 417*f334afcfSToomas Soome ); 418*f334afcfSToomas Soome 419*f334afcfSToomas Soome /** 420*f334afcfSToomas Soome Sets a value of a specified size for a given PCD token. 421*f334afcfSToomas Soome 422*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 423*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 424*f334afcfSToomas Soome If it is not, an error will be returned. 425*f334afcfSToomas Soome 426*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 427*f334afcfSToomas Soome @param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token. 428*f334afcfSToomas Soome On input, if the SizeOfValue is greater than the maximum size supported 429*f334afcfSToomas Soome for this TokenNumber then the output value of SizeOfValue will reflect 430*f334afcfSToomas Soome the maximum size supported for this TokenNumber. 431*f334afcfSToomas Soome @param[in] Buffer The buffer to set for the PCD token. 432*f334afcfSToomas Soome 433*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 434*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 435*f334afcfSToomas Soome being set was incompatible with a call to this function. 436*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 437*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 438*f334afcfSToomas Soome 439*f334afcfSToomas Soome **/ 440*f334afcfSToomas Soome typedef 441*f334afcfSToomas Soome EFI_STATUS 442*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_POINTER)( 443*f334afcfSToomas Soome IN UINTN TokenNumber, 444*f334afcfSToomas Soome IN OUT UINTN *SizeOfBuffer, 445*f334afcfSToomas Soome IN VOID *Buffer 446*f334afcfSToomas Soome ); 447*f334afcfSToomas Soome 448*f334afcfSToomas Soome /** 449*f334afcfSToomas Soome Sets a Boolean value for a given PCD token. 450*f334afcfSToomas Soome 451*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 452*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 453*f334afcfSToomas Soome If it is not, an error will be returned. 454*f334afcfSToomas Soome 455*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 456*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 457*f334afcfSToomas Soome 458*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 459*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 460*f334afcfSToomas Soome being set was incompatible with a call to this function. 461*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 462*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 463*f334afcfSToomas Soome 464*f334afcfSToomas Soome **/ 465*f334afcfSToomas Soome typedef 466*f334afcfSToomas Soome EFI_STATUS 467*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_BOOLEAN)( 468*f334afcfSToomas Soome IN UINTN TokenNumber, 469*f334afcfSToomas Soome IN BOOLEAN Value 470*f334afcfSToomas Soome ); 471*f334afcfSToomas Soome 472*f334afcfSToomas Soome /** 473*f334afcfSToomas Soome Sets an 8-bit value for a given PCD token. 474*f334afcfSToomas Soome 475*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 476*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 477*f334afcfSToomas Soome If it is not, an error will be returned. 478*f334afcfSToomas Soome 479*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 480*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 481*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 482*f334afcfSToomas Soome 483*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 484*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 485*f334afcfSToomas Soome being set was incompatible with a call to this function. 486*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 487*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 488*f334afcfSToomas Soome 489*f334afcfSToomas Soome **/ 490*f334afcfSToomas Soome typedef 491*f334afcfSToomas Soome EFI_STATUS 492*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_EX_8)( 493*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 494*f334afcfSToomas Soome IN UINTN TokenNumber, 495*f334afcfSToomas Soome IN UINT8 Value 496*f334afcfSToomas Soome ); 497*f334afcfSToomas Soome 498*f334afcfSToomas Soome /** 499*f334afcfSToomas Soome Sets an 16-bit value for a given PCD token. 500*f334afcfSToomas Soome 501*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 502*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 503*f334afcfSToomas Soome If it is not, an error will be returned. 504*f334afcfSToomas Soome 505*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 506*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 507*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 508*f334afcfSToomas Soome 509*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 510*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 511*f334afcfSToomas Soome being set was incompatible with a call to this function. 512*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 513*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 514*f334afcfSToomas Soome 515*f334afcfSToomas Soome **/ 516*f334afcfSToomas Soome typedef 517*f334afcfSToomas Soome EFI_STATUS 518*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_EX_16)( 519*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 520*f334afcfSToomas Soome IN UINTN TokenNumber, 521*f334afcfSToomas Soome IN UINT16 Value 522*f334afcfSToomas Soome ); 523*f334afcfSToomas Soome 524*f334afcfSToomas Soome /** 525*f334afcfSToomas Soome Sets a 32-bit value for a given PCD token. 526*f334afcfSToomas Soome 527*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 528*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 529*f334afcfSToomas Soome If it is not, an error will be returned. 530*f334afcfSToomas Soome 531*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 532*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 533*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 534*f334afcfSToomas Soome 535*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 536*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 537*f334afcfSToomas Soome being set was incompatible with a call to this function. 538*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 539*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 540*f334afcfSToomas Soome 541*f334afcfSToomas Soome **/ 542*f334afcfSToomas Soome typedef 543*f334afcfSToomas Soome EFI_STATUS 544*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_EX_32)( 545*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 546*f334afcfSToomas Soome IN UINTN TokenNumber, 547*f334afcfSToomas Soome IN UINT32 Value 548*f334afcfSToomas Soome ); 549*f334afcfSToomas Soome 550*f334afcfSToomas Soome /** 551*f334afcfSToomas Soome Sets a 64-bit value for a given PCD token. 552*f334afcfSToomas Soome 553*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 554*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 555*f334afcfSToomas Soome If it is not, an error will be returned. 556*f334afcfSToomas Soome 557*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 558*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 559*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 560*f334afcfSToomas Soome 561*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 562*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 563*f334afcfSToomas Soome being set was incompatible with a call to this function. 564*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 565*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 566*f334afcfSToomas Soome 567*f334afcfSToomas Soome **/ 568*f334afcfSToomas Soome typedef 569*f334afcfSToomas Soome EFI_STATUS 570*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_EX_64)( 571*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 572*f334afcfSToomas Soome IN UINTN TokenNumber, 573*f334afcfSToomas Soome IN UINT64 Value 574*f334afcfSToomas Soome ); 575*f334afcfSToomas Soome 576*f334afcfSToomas Soome /** 577*f334afcfSToomas Soome Sets a value of a specified size for a given PCD token. 578*f334afcfSToomas Soome 579*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 580*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 581*f334afcfSToomas Soome If it is not, an error will be returned. 582*f334afcfSToomas Soome 583*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 584*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 585*f334afcfSToomas Soome @param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token. 586*f334afcfSToomas Soome On input, if the SizeOfValue is greater than the maximum size supported 587*f334afcfSToomas Soome for this TokenNumber then the output value of SizeOfValue will reflect 588*f334afcfSToomas Soome the maximum size supported for this TokenNumber. 589*f334afcfSToomas Soome @param[in] Buffer The buffer to set for the PCD token. 590*f334afcfSToomas Soome 591*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 592*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 593*f334afcfSToomas Soome being set was incompatible with a call to this function. 594*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 595*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 596*f334afcfSToomas Soome 597*f334afcfSToomas Soome **/ 598*f334afcfSToomas Soome typedef 599*f334afcfSToomas Soome EFI_STATUS 600*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_EX_POINTER)( 601*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 602*f334afcfSToomas Soome IN UINTN TokenNumber, 603*f334afcfSToomas Soome IN OUT UINTN *SizeOfBuffer, 604*f334afcfSToomas Soome IN VOID *Buffer 605*f334afcfSToomas Soome ); 606*f334afcfSToomas Soome 607*f334afcfSToomas Soome /** 608*f334afcfSToomas Soome Sets a Boolean value for a given PCD token. 609*f334afcfSToomas Soome 610*f334afcfSToomas Soome When the PCD service sets a value, it will check to ensure that the 611*f334afcfSToomas Soome size of the value being set is compatible with the Token's existing definition. 612*f334afcfSToomas Soome If it is not, an error will be returned. 613*f334afcfSToomas Soome 614*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 615*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 616*f334afcfSToomas Soome @param[in] Value The value to set for the PCD token. 617*f334afcfSToomas Soome 618*f334afcfSToomas Soome @retval EFI_SUCCESS The procedure returned successfully. 619*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data 620*f334afcfSToomas Soome being set was incompatible with a call to this function. 621*f334afcfSToomas Soome Use GetSize() to retrieve the size of the target data. 622*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the requested token number. 623*f334afcfSToomas Soome 624*f334afcfSToomas Soome **/ 625*f334afcfSToomas Soome typedef 626*f334afcfSToomas Soome EFI_STATUS 627*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_SET_EX_BOOLEAN)( 628*f334afcfSToomas Soome IN CONST EFI_GUID *Guid, 629*f334afcfSToomas Soome IN UINTN TokenNumber, 630*f334afcfSToomas Soome IN BOOLEAN Value 631*f334afcfSToomas Soome ); 632*f334afcfSToomas Soome 633*f334afcfSToomas Soome /** 634*f334afcfSToomas Soome Callback on SET function prototype definition. 635*f334afcfSToomas Soome 636*f334afcfSToomas Soome This notification function serves two purposes. 637*f334afcfSToomas Soome Firstly, it notifies the module which did the registration that the value 638*f334afcfSToomas Soome of this PCD token has been set. Secondly, it provides a mechanism for the 639*f334afcfSToomas Soome module that did the registration to intercept the set operation and override 640*f334afcfSToomas Soome the value that has been set, if necessary. After the invocation of the callback function, 641*f334afcfSToomas Soome TokenData will be used by PCD service DXE driver to modify the internal data in 642*f334afcfSToomas Soome PCD database. 643*f334afcfSToomas Soome 644*f334afcfSToomas Soome @param[in] CallBackGuid The PCD token GUID being set. 645*f334afcfSToomas Soome @param[in] CallBackToken The PCD token number being set. 646*f334afcfSToomas Soome @param[in, out] TokenData A pointer to the token data being set. 647*f334afcfSToomas Soome @param[in] TokenDataSize The size, in bytes, of the data being set. 648*f334afcfSToomas Soome 649*f334afcfSToomas Soome @retval VOID 650*f334afcfSToomas Soome 651*f334afcfSToomas Soome **/ 652*f334afcfSToomas Soome typedef 653*f334afcfSToomas Soome VOID 654*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_CALLBACK)( 655*f334afcfSToomas Soome IN CONST EFI_GUID *CallBackGuid OPTIONAL, 656*f334afcfSToomas Soome IN UINTN CallBackToken, 657*f334afcfSToomas Soome IN OUT VOID *TokenData, 658*f334afcfSToomas Soome IN UINTN TokenDataSize 659*f334afcfSToomas Soome ); 660*f334afcfSToomas Soome 661*f334afcfSToomas Soome /** 662*f334afcfSToomas Soome Specifies a function to be called anytime the value of a designated token is changed. 663*f334afcfSToomas Soome 664*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 665*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 666*f334afcfSToomas Soome @param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set. 667*f334afcfSToomas Soome 668*f334afcfSToomas Soome @retval EFI_SUCCESS The PCD service has successfully established a call event 669*f334afcfSToomas Soome for the CallBackToken requested. 670*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the referenced token number. 671*f334afcfSToomas Soome 672*f334afcfSToomas Soome **/ 673*f334afcfSToomas Soome typedef 674*f334afcfSToomas Soome EFI_STATUS 675*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_CALLBACK_ONSET)( 676*f334afcfSToomas Soome IN CONST EFI_GUID *Guid OPTIONAL, 677*f334afcfSToomas Soome IN UINTN TokenNumber, 678*f334afcfSToomas Soome IN PCD_PROTOCOL_CALLBACK CallBackFunction 679*f334afcfSToomas Soome ); 680*f334afcfSToomas Soome 681*f334afcfSToomas Soome /** 682*f334afcfSToomas Soome Cancels a previously set callback function for a particular PCD token number. 683*f334afcfSToomas Soome 684*f334afcfSToomas Soome @param[in] TokenNumber The PCD token number. 685*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value. 686*f334afcfSToomas Soome @param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set. 687*f334afcfSToomas Soome 688*f334afcfSToomas Soome @retval EFI_SUCCESS The PCD service has successfully established a call event 689*f334afcfSToomas Soome for the CallBackToken requested. 690*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the referenced token number. 691*f334afcfSToomas Soome 692*f334afcfSToomas Soome **/ 693*f334afcfSToomas Soome typedef 694*f334afcfSToomas Soome EFI_STATUS 695*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_CANCEL_CALLBACK)( 696*f334afcfSToomas Soome IN CONST EFI_GUID *Guid OPTIONAL, 697*f334afcfSToomas Soome IN UINTN TokenNumber, 698*f334afcfSToomas Soome IN PCD_PROTOCOL_CALLBACK CallBackFunction 699*f334afcfSToomas Soome ); 700*f334afcfSToomas Soome 701*f334afcfSToomas Soome /** 702*f334afcfSToomas Soome Retrieves the next valid token number in a given namespace. 703*f334afcfSToomas Soome 704*f334afcfSToomas Soome This is useful since the PCD infrastructure contains a sparse list of token numbers, 705*f334afcfSToomas Soome and one cannot a priori know what token numbers are valid in the database. 706*f334afcfSToomas Soome 707*f334afcfSToomas Soome If TokenNumber is 0 and Guid is not NULL, then the first token from the token space specified by Guid is returned. 708*f334afcfSToomas Soome If TokenNumber is not 0 and Guid is not NULL, then the next token in the token space specified by Guid is returned. 709*f334afcfSToomas Soome If TokenNumber is 0 and Guid is NULL, then the first token in the default token space is returned. 710*f334afcfSToomas Soome If TokenNumber is not 0 and Guid is NULL, then the next token in the default token space is returned. 711*f334afcfSToomas Soome The token numbers in the default token space may not be related to token numbers in token spaces that are named by Guid. 712*f334afcfSToomas Soome If the next token number can be retrieved, then it is returned in TokenNumber, and EFI_SUCCESS is returned. 713*f334afcfSToomas Soome If TokenNumber represents the last token number in the token space specified by Guid, then EFI_NOT_FOUND is returned. 714*f334afcfSToomas Soome If TokenNumber is not present in the token space specified by Guid, then EFI_NOT_FOUND is returned. 715*f334afcfSToomas Soome 716*f334afcfSToomas Soome 717*f334afcfSToomas Soome @param[in] Guid The 128-bit unique value that designates the namespace from which to retrieve the next token. 718*f334afcfSToomas Soome This is an optional parameter that may be NULL. If this parameter is NULL, then a request is 719*f334afcfSToomas Soome being made to retrieve tokens from the default token space. 720*f334afcfSToomas Soome @param[in,out] TokenNumber 721*f334afcfSToomas Soome A pointer to the PCD token number to use to find the subsequent token number. 722*f334afcfSToomas Soome 723*f334afcfSToomas Soome @retval EFI_SUCCESS The PCD service has retrieved the next valid token number. 724*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find data from the requested token number. 725*f334afcfSToomas Soome 726*f334afcfSToomas Soome **/ 727*f334afcfSToomas Soome typedef 728*f334afcfSToomas Soome EFI_STATUS 729*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_NEXT_TOKEN)( 730*f334afcfSToomas Soome IN CONST EFI_GUID *Guid OPTIONAL, 731*f334afcfSToomas Soome IN OUT UINTN *TokenNumber 732*f334afcfSToomas Soome ); 733*f334afcfSToomas Soome 734*f334afcfSToomas Soome /** 735*f334afcfSToomas Soome Retrieves the next valid PCD token namespace for a given namespace. 736*f334afcfSToomas Soome 737*f334afcfSToomas Soome Gets the next valid token namespace for a given namespace. This is useful to traverse the valid 738*f334afcfSToomas Soome token namespaces on a platform. 739*f334afcfSToomas Soome 740*f334afcfSToomas Soome @param[in, out] Guid An indirect pointer to EFI_GUID. On input it designates a known token namespace 741*f334afcfSToomas Soome from which the search will start. On output, it designates the next valid token 742*f334afcfSToomas Soome namespace on the platform. If *Guid is NULL, then the GUID of the first token 743*f334afcfSToomas Soome space of the current platform is returned. If the search cannot locate the next valid 744*f334afcfSToomas Soome token namespace, an error is returned and the value of *Guid is undefined. 745*f334afcfSToomas Soome 746*f334afcfSToomas Soome @retval EFI_SUCCESS The PCD service retrieved the value requested. 747*f334afcfSToomas Soome @retval EFI_NOT_FOUND The PCD service could not find the next valid token namespace. 748*f334afcfSToomas Soome 749*f334afcfSToomas Soome **/ 750*f334afcfSToomas Soome typedef 751*f334afcfSToomas Soome EFI_STATUS 752*f334afcfSToomas Soome (EFIAPI *PCD_PROTOCOL_GET_NEXT_TOKENSPACE)( 753*f334afcfSToomas Soome IN OUT CONST EFI_GUID **Guid 754*f334afcfSToomas Soome ); 755*f334afcfSToomas Soome 756*f334afcfSToomas Soome /// 757*f334afcfSToomas Soome /// This service abstracts the ability to set/get Platform Configuration Database (PCD). 758*f334afcfSToomas Soome /// 759*f334afcfSToomas Soome typedef struct { 760*f334afcfSToomas Soome PCD_PROTOCOL_SET_SKU SetSku; 761*f334afcfSToomas Soome 762*f334afcfSToomas Soome PCD_PROTOCOL_GET8 Get8; 763*f334afcfSToomas Soome PCD_PROTOCOL_GET16 Get16; 764*f334afcfSToomas Soome PCD_PROTOCOL_GET32 Get32; 765*f334afcfSToomas Soome PCD_PROTOCOL_GET64 Get64; 766*f334afcfSToomas Soome PCD_PROTOCOL_GET_POINTER GetPtr; 767*f334afcfSToomas Soome PCD_PROTOCOL_GET_BOOLEAN GetBool; 768*f334afcfSToomas Soome PCD_PROTOCOL_GET_SIZE GetSize; 769*f334afcfSToomas Soome 770*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_8 Get8Ex; 771*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_16 Get16Ex; 772*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_32 Get32Ex; 773*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_64 Get64Ex; 774*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_POINTER GetPtrEx; 775*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_BOOLEAN GetBoolEx; 776*f334afcfSToomas Soome PCD_PROTOCOL_GET_EX_SIZE GetSizeEx; 777*f334afcfSToomas Soome 778*f334afcfSToomas Soome PCD_PROTOCOL_SET8 Set8; 779*f334afcfSToomas Soome PCD_PROTOCOL_SET16 Set16; 780*f334afcfSToomas Soome PCD_PROTOCOL_SET32 Set32; 781*f334afcfSToomas Soome PCD_PROTOCOL_SET64 Set64; 782*f334afcfSToomas Soome PCD_PROTOCOL_SET_POINTER SetPtr; 783*f334afcfSToomas Soome PCD_PROTOCOL_SET_BOOLEAN SetBool; 784*f334afcfSToomas Soome 785*f334afcfSToomas Soome PCD_PROTOCOL_SET_EX_8 Set8Ex; 786*f334afcfSToomas Soome PCD_PROTOCOL_SET_EX_16 Set16Ex; 787*f334afcfSToomas Soome PCD_PROTOCOL_SET_EX_32 Set32Ex; 788*f334afcfSToomas Soome PCD_PROTOCOL_SET_EX_64 Set64Ex; 789*f334afcfSToomas Soome PCD_PROTOCOL_SET_EX_POINTER SetPtrEx; 790*f334afcfSToomas Soome PCD_PROTOCOL_SET_EX_BOOLEAN SetBoolEx; 791*f334afcfSToomas Soome 792*f334afcfSToomas Soome PCD_PROTOCOL_CALLBACK_ONSET CallbackOnSet; 793*f334afcfSToomas Soome PCD_PROTOCOL_CANCEL_CALLBACK CancelCallback; 794*f334afcfSToomas Soome PCD_PROTOCOL_GET_NEXT_TOKEN GetNextToken; 795*f334afcfSToomas Soome PCD_PROTOCOL_GET_NEXT_TOKENSPACE GetNextTokenSpace; 796*f334afcfSToomas Soome } PCD_PROTOCOL; 797*f334afcfSToomas Soome 798*f334afcfSToomas Soome #endif 799