\r
PCD_PROTOCOL *mPcd = NULL;\r
\r
-/**\r
- Retrieves PCD protocol interface.\r
\r
- This function retrieves PCD protocol interface. On the first invocation, it\r
- retrieves protocol interface via UEFI boot services and cache it to accelarte\r
- further access. A module invokes this function only when it needs to access a\r
- dynamic PCD entry.\r
- If UefiBootServicesTableLib has not been initialized, then ASSERT ().\r
- If PCD protocol has not been installed, then ASSERT ().\r
+/**\r
+ The constructor function caches the PCD_PROTOCOL pointer.\r
\r
- @return mPcd The PCD protocol protocol interface.\r
+ @param[in] ImageHandle The firmware allocated handle for the EFI image. \r
+ @param[in] SystemTable A pointer to the EFI System Table.\r
+ \r
+ @retval EFI_SUCCESS The constructor always return EFI_SUCCESS.\r
\r
**/\r
-PCD_PROTOCOL*\r
-GetPcdProtocol (\r
- VOID\r
+EFI_STATUS\r
+EFIAPI\r
+PcdLibConstructor (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
EFI_STATUS Status;\r
\r
- if (mPcd == NULL) {\r
- ASSERT (gBS != NULL);\r
- //\r
- // PCD protocol has not been installed, but a module needs to access a\r
- // dynamic PCD entry.\r
- // \r
- Status = gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID **)&mPcd);\r
- ASSERT_EFI_ERROR (Status);\r
- ASSERT (mPcd!= NULL);\r
- }\r
+ //\r
+ // PCD protocol has not been installed, but a module needs to access a\r
+ // dynamic PCD entry.\r
+ // \r
+ Status = gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID **)&mPcd);\r
+ ASSERT_EFI_ERROR (Status);\r
+ ASSERT (mPcd!= NULL);\r
\r
- return mPcd;\r
+ return Status;\r
}\r
\r
\r
@param[in] SkuId System SKU ID. The SKU value that will be used when the PCD service will retrieve and \r
set values.\r
\r
- @retval SKU_ID Return the SKU ID that just be set.\r
+ @return Return the SKU ID that just be set.\r
\r
**/\r
UINTN\r
{\r
ASSERT (SkuId < PCD_MAX_SKU_ID);\r
\r
- (GetPcdProtocol ())->SetSku (SkuId);\r
+ mPcd->SetSku (SkuId);\r
\r
return SkuId;\r
}\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT8 Returns the 8-bit value for the token specified by TokenNumber. \r
+ @return Returns the 8-bit value for the token specified by TokenNumber. \r
\r
**/\r
UINT8\r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->Get8 (TokenNumber);\r
+ return mPcd->Get8 (TokenNumber);\r
}\r
\r
\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT16 Returns the 16-bit value for the token specified by TokenNumber. \r
+ @return Returns the 16-bit value for the token specified by TokenNumber. \r
\r
**/\r
UINT16\r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->Get16 (TokenNumber);\r
+ return mPcd->Get16 (TokenNumber);\r
}\r
\r
\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT32 Returns the 32-bit value for the token specified by TokenNumber.\r
+ @return Returns the 32-bit value for the token specified by TokenNumber.\r
\r
**/\r
UINT32\r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->Get32 (TokenNumber);\r
+ return mPcd->Get32 (TokenNumber);\r
}\r
\r
\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT64 Returns the 64-bit value for the token specified by TokenNumber.\r
+ @return Returns the 64-bit value for the token specified by TokenNumber.\r
\r
**/\r
UINT64\r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->Get64 (TokenNumber);\r
+ return mPcd->Get64 (TokenNumber);\r
}\r
\r
\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval VOID* Returns the pointer to the token specified by TokenNumber.\r
+ @return Returns the pointer to the token specified by TokenNumber.\r
\r
**/\r
VOID *\r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->GetPtr (TokenNumber);\r
+ return mPcd->GetPtr (TokenNumber);\r
}\r
\r
\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval BOOLEAN Returns the Boolean value of the token specified by TokenNumber. \r
+ @return Returns the Boolean value of the token specified by TokenNumber. \r
\r
**/\r
BOOLEAN \r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->GetBool (TokenNumber);\r
+ return mPcd->GetBool (TokenNumber);\r
}\r
\r
\r
\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINTN Returns the size of the token specified by TokenNumber. \r
+ @return Returns the size of the token specified by TokenNumber. \r
\r
**/\r
UINTN\r
IN UINTN TokenNumber\r
)\r
{\r
- return (GetPcdProtocol ())->GetSize (TokenNumber);\r
+ return mPcd->GetSize (TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT8 Return the UINT8.\r
+ @return Return the UINT8.\r
\r
**/\r
UINT8\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->Get8Ex (Guid, TokenNumber);\r
+ return mPcd->Get8Ex (Guid, TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT16 Return the UINT16.\r
+ @return Return the UINT16.\r
\r
**/\r
UINT16\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->Get16Ex (Guid, TokenNumber);\r
+ return mPcd->Get16Ex (Guid, TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT32 Return the UINT32.\r
+ @return Return the UINT32.\r
\r
**/\r
UINT32\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->Get32Ex (Guid, TokenNumber);\r
+ return mPcd->Get32Ex (Guid, TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINT64 Return the UINT64.\r
+ @return Return the UINT64.\r
\r
**/\r
UINT64\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->Get64Ex (Guid, TokenNumber);\r
+ return mPcd->Get64Ex (Guid, TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval VOID* Return the VOID* pointer.\r
+ @return Return the VOID* pointer.\r
\r
**/\r
VOID *\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->GetPtrEx (Guid, TokenNumber);\r
+ return mPcd->GetPtrEx (Guid, TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval BOOLEAN Return the BOOLEAN.\r
+ @return Return the BOOLEAN.\r
\r
**/\r
BOOLEAN\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->GetBoolEx (Guid, TokenNumber);\r
+ return mPcd->GetBoolEx (Guid, TokenNumber);\r
}\r
\r
\r
which namespace to retrieve a value from.\r
@param[in] TokenNumber The PCD token number to retrieve a current value for.\r
\r
- @retval UINTN Return the size.\r
+ @return Return the size.\r
\r
**/\r
UINTN\r
{\r
ASSERT (Guid != NULL);\r
\r
- return (GetPcdProtocol ())->GetSizeEx (Guid, TokenNumber);\r
+ return mPcd->GetSizeEx (Guid, TokenNumber);\r
}\r
\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 8-bit value to set.\r
\r
- @retval UINT8 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT8\r
{\r
EFI_STATUS Status;\r
\r
- Status = (GetPcdProtocol ())->Set8 (TokenNumber, Value);\r
+ Status = mPcd->Set8 (TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 16-bit value to set.\r
\r
- @retval UINT16 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT16\r
{\r
EFI_STATUS Status;\r
\r
- Status = (GetPcdProtocol ())->Set16 (TokenNumber, Value);\r
+ Status = mPcd->Set16 (TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 32-bit value to set.\r
\r
- @retval UINT32 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT32\r
)\r
{\r
EFI_STATUS Status;\r
- Status = (GetPcdProtocol ())->Set32 (TokenNumber, Value);\r
+ Status = mPcd->Set32 (TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 64-bit value to set.\r
\r
- @retval UINT64 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT64\r
{\r
EFI_STATUS Status;\r
\r
- Status = (GetPcdProtocol ())->Set64 (TokenNumber, Value);\r
+ Status = mPcd->Set64 (TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
maximum size supported by TokenNumber and return NULL to \r
indicate that the set operation was not actually performed. \r
\r
- If SizeOfValue > 0 and Buffer is NULL, then ASSERT().\r
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in, out] SizeOfBuffer The size, in bytes, of Buffer.\r
In out, returns actual size of buff is set. \r
@param[in] Buffer A pointer to the buffer to set.\r
\r
- @retval VOID* Return the pointer for the buffer been set.\r
+ @return Return the pointer for the buffer been set.\r
\r
**/\r
VOID *\r
ASSERT (Buffer != NULL);\r
}\r
\r
- Status = (GetPcdProtocol ())->SetPtr (TokenNumber, SizeOfBuffer, Buffer);\r
+ Status = mPcd->SetPtr (TokenNumber, SizeOfBuffer, Buffer);\r
\r
if (EFI_ERROR (Status)) {\r
return NULL;\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The boolean value to set.\r
\r
- @retval BOOLEAN Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
BOOLEAN\r
{\r
EFI_STATUS Status;\r
\r
- Status = (GetPcdProtocol ())->SetBool (TokenNumber, Value);\r
+ Status = mPcd->SetBool (TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 8-bit value to set.\r
\r
- @retval UINT8 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT8\r
\r
ASSERT (Guid != NULL);\r
\r
- Status = (GetPcdProtocol ())->Set8Ex (Guid, TokenNumber, Value);\r
+ Status = mPcd->Set8Ex (Guid, TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 16-bit value to set.\r
\r
- @retval UINT16 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT16\r
\r
ASSERT (Guid != NULL);\r
\r
- Status = (GetPcdProtocol ())->Set16Ex (Guid, TokenNumber, Value);\r
+ Status = mPcd->Set16Ex (Guid, TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 32-bit value to set.\r
\r
- @retval UINT32 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT32\r
\r
ASSERT (Guid != NULL);\r
\r
- Status = (GetPcdProtocol ())->Set32Ex (Guid, TokenNumber, Value);\r
+ Status = mPcd->Set32Ex (Guid, TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The 64-bit value to set.\r
\r
- @retval UINT64 Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
UINT64\r
\r
ASSERT (Guid != NULL);\r
\r
- Status = (GetPcdProtocol ())->Set64Ex (Guid, TokenNumber, Value);\r
+ Status = mPcd->Set64Ex (Guid, TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
In out, returns actual size of buffer is set.\r
@param[in] Buffer A pointer to the buffer to set.\r
\r
- @retval VOID * Return the pinter to the buffer been set.\r
+ @return Return the pinter to the buffer been set.\r
\r
**/\r
VOID *\r
ASSERT (Buffer != NULL);\r
}\r
\r
- Status = (GetPcdProtocol ())->SetPtrEx (Guid, TokenNumber, SizeOfBuffer, Buffer);\r
+ Status = mPcd->SetPtrEx (Guid, TokenNumber, SizeOfBuffer, Buffer);\r
\r
if (EFI_ERROR (Status)) {\r
return NULL;\r
@param[in] TokenNumber The PCD token number to set a current value for.\r
@param[in] Value The Boolean value to set.\r
\r
- @retval Boolean Return the value been set.\r
+ @return Return the value been set.\r
\r
**/\r
BOOLEAN\r
\r
ASSERT (Guid != NULL);\r
\r
- Status = (GetPcdProtocol ())->SetBoolEx (Guid, TokenNumber, Value);\r
+ Status = mPcd->SetBoolEx (Guid, TokenNumber, Value);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
\r
ASSERT (NotificationFunction != NULL);\r
\r
- Status = (GetPcdProtocol ())->CallbackOnSet (Guid, TokenNumber, NotificationFunction);\r
+ Status = mPcd->CallbackOnSet (Guid, TokenNumber, NotificationFunction);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
\r
ASSERT (NotificationFunction != NULL);\r
\r
- Status = (GetPcdProtocol ())->CancelCallback (Guid, TokenNumber, NotificationFunction);\r
+ Status = mPcd->CancelCallback (Guid, TokenNumber, NotificationFunction);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] TokenNumber The previous PCD token number. If 0, then retrieves the first PCD \r
token number.\r
\r
- @retval UINTN The next valid token number.\r
+ @return The next valid token number.\r
\r
**/\r
UINTN \r
{\r
EFI_STATUS Status;\r
\r
- Status = (GetPcdProtocol ())->GetNextToken (Guid, &TokenNumber);\r
+ Status = mPcd->GetNextToken (Guid, &TokenNumber);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
@param[in] Guid Pointer to a 128-bit unique value that designates from which namespace \r
to start the search.\r
\r
- @retval CONST GUID * The next valid token namespace.\r
+ @return The next valid token namespace.\r
\r
**/\r
GUID * \r
{\r
EFI_STATUS Status;\r
\r
- Status = (GetPcdProtocol ())->GetNextTokenSpace (&Guid);\r
+ Status = mPcd->GetNextTokenSpace (&Guid);\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
In out, returns actual size of buffer is set.\r
@param[in] Buffer A pointer to the buffer to used to set the target variable.\r
\r
+ @return Return the pinter to the buffer been set.\r
+\r
**/\r
VOID *\r
EFIAPI\r