TianoCore EDK2 master
Loading...
Searching...
No Matches
Service.h File Reference

Go to the source code of this file.

Data Structures

struct  CALLBACK_FN_ENTRY
 

Macros

#define PCD_SERVICE_DXE_VERSION   7
 
#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field)   BASE_CR(Record, Type, Field)
 

Functions

EFI_STATUS EFIAPI DxeGetPcdInfoGetInfo (IN UINTN TokenNumber, OUT EFI_PCD_INFO *PcdInfo)
 
EFI_STATUS EFIAPI DxeGetPcdInfoGetInfoEx (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, OUT EFI_PCD_INFO *PcdInfo)
 
UINTN EFIAPI DxeGetPcdInfoGetSku (VOID)
 
VOID EFIAPI DxePcdSetSku (IN UINTN SkuId)
 
UINT8 EFIAPI DxePcdGet8 (IN UINTN TokenNumber)
 
UINT16 EFIAPI DxePcdGet16 (IN UINTN TokenNumber)
 
UINT32 EFIAPI DxePcdGet32 (IN UINTN TokenNumber)
 
UINT64 EFIAPI DxePcdGet64 (IN UINTN TokenNumber)
 
VOID *EFIAPI DxePcdGetPtr (IN UINTN TokenNumber)
 
BOOLEAN EFIAPI DxePcdGetBool (IN UINTN TokenNumber)
 
UINTN EFIAPI DxePcdGetSize (IN UINTN TokenNumber)
 
UINT8 EFIAPI DxePcdGet8Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
UINT16 EFIAPI DxePcdGet16Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
UINT32 EFIAPI DxePcdGet32Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
UINT64 EFIAPI DxePcdGet64Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
VOID *EFIAPI DxePcdGetPtrEx (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
BOOLEAN EFIAPI DxePcdGetBoolEx (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
UINTN EFIAPI DxePcdGetSizeEx (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber)
 
EFI_STATUS EFIAPI DxePcdSet8 (IN UINTN TokenNumber, IN UINT8 Value)
 
EFI_STATUS EFIAPI DxePcdSet16 (IN UINTN TokenNumber, IN UINT16 Value)
 
EFI_STATUS EFIAPI DxePcdSet32 (IN UINTN TokenNumber, IN UINT32 Value)
 
EFI_STATUS EFIAPI DxePcdSet64 (IN UINTN TokenNumber, IN UINT64 Value)
 
EFI_STATUS EFIAPI DxePcdSetPtr (IN UINTN TokenNumber, IN OUT UINTN *SizeOfBuffer, IN VOID *Buffer)
 
EFI_STATUS EFIAPI DxePcdSetBool (IN UINTN TokenNumber, IN BOOLEAN Value)
 
EFI_STATUS EFIAPI DxePcdSet8Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, IN UINT8 Value)
 
EFI_STATUS EFIAPI DxePcdSet16Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, IN UINT16 Value)
 
EFI_STATUS EFIAPI DxePcdSet32Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, IN UINT32 Value)
 
EFI_STATUS EFIAPI DxePcdSet64Ex (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, IN UINT64 Value)
 
EFI_STATUS EFIAPI DxePcdSetPtrEx (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, IN OUT UINTN *SizeOfBuffer, IN VOID *Buffer)
 
EFI_STATUS EFIAPI DxePcdSetBoolEx (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, IN BOOLEAN Value)
 
EFI_STATUS EFIAPI DxeRegisterCallBackOnSet (IN CONST EFI_GUID *Guid OPTIONAL, IN UINTN TokenNumber, IN PCD_PROTOCOL_CALLBACK CallBackFunction)
 
EFI_STATUS EFIAPI DxeUnRegisterCallBackOnSet (IN CONST EFI_GUID *Guid OPTIONAL, IN UINTN TokenNumber, IN PCD_PROTOCOL_CALLBACK CallBackFunction)
 
EFI_STATUS EFIAPI DxePcdGetNextToken (IN CONST EFI_GUID *Guid OPTIONAL, IN OUT UINTN *TokenNumber)
 
EFI_STATUS EFIAPI DxePcdGetNextTokenSpace (IN OUT CONST EFI_GUID **Guid)
 
EFI_STATUS DxeGetPcdInfo (IN CONST EFI_GUID *Guid, IN UINTN TokenNumber, OUT EFI_PCD_INFO *PcdInfo)
 
EFI_STATUS SetValueWorker (IN UINTN TokenNumber, IN VOID *Data, IN UINTN Size)
 
EFI_STATUS SetWorker (IN UINTN TokenNumber, IN VOID *Data, IN OUT UINTN *Size, IN BOOLEAN PtrType)
 
EFI_STATUS ExSetValueWorker (IN UINTN ExTokenNumber, IN CONST EFI_GUID *Guid, IN VOID *Data, IN UINTN SetSize)
 
EFI_STATUS ExSetWorker (IN UINTN ExTokenNumber, IN CONST EFI_GUID *Guid, IN VOID *Data, IN OUT UINTN *Size, IN BOOLEAN PtrType)
 
VOID * GetWorker (IN UINTN TokenNumber, IN UINTN GetSize)
 
VOID * ExGetWorker (IN CONST EFI_GUID *Guid, IN UINTN ExTokenNumber, IN UINTN GetSize)
 
EFI_STATUS GetHiiVariable (IN EFI_GUID *VariableGuid, IN UINT16 *VariableName, OUT UINT8 **VariableData, OUT UINTN *VariableSize)
 
EFI_STATUS SetHiiVariable (IN EFI_GUID *VariableGuid, IN UINT16 *VariableName, IN UINT32 SetAttributes, IN CONST VOID *Data, IN UINTN DataSize, IN UINTN Offset)
 
EFI_STATUS DxeRegisterCallBackWorker (IN UINTN TokenNumber, IN CONST EFI_GUID *Guid OPTIONAL, IN PCD_PROTOCOL_CALLBACK CallBackFunction)
 
EFI_STATUS DxeUnRegisterCallBackWorker (IN UINTN TokenNumber, IN CONST EFI_GUID *Guid OPTIONAL, IN PCD_PROTOCOL_CALLBACK CallBackFunction)
 
VOID BuildPcdDxeDataBase (VOID)
 
UINTN GetExPcdTokenNumber (IN CONST EFI_GUID *Guid, IN UINT32 ExTokenNumber)
 
EFI_STATUS ExGetNextTokeNumber (IN CONST EFI_GUID *Guid, IN OUT UINTN *TokenNumber, IN EFI_GUID *GuidTable, IN UINTN SizeOfGuidTable, IN DYNAMICEX_MAPPING *ExMapTable, IN UINTN SizeOfExMapTable)
 
UINTN GetPtrTypeSize (IN UINTN LocalTokenNumberTableIdx, OUT UINTN *MaxSize)
 
BOOLEAN SetPtrTypeSize (IN UINTN LocalTokenNumberTableIdx, IN OUT UINTN *CurrentSize)
 
VOID EFIAPI VariableLockCallBack (IN EFI_EVENT Event, IN VOID *Context)
 
EFI_STATUS UpdatePcdDatabase (IN SKU_ID SkuId, IN BOOLEAN IsPeiDb)
 

Variables

UINTN mVpdBaseAddress
 
PCD_DATABASE mPcdDatabase
 
UINT32 mPcdTotalTokenCount
 
UINT32 mPeiLocalTokenCount
 
UINT32 mDxeLocalTokenCount
 
UINT32 mPeiNexTokenCount
 
UINT32 mDxeNexTokenCount
 
UINT32 mPeiExMapppingTableSize
 
UINT32 mDxeExMapppingTableSize
 
UINT32 mPeiGuidTableSize
 
UINT32 mDxeGuidTableSize
 
BOOLEAN mPeiExMapTableEmpty
 
BOOLEAN mDxeExMapTableEmpty
 
BOOLEAN mPeiDatabaseEmpty
 
EFI_GUID ** TmpTokenSpaceBuffer
 
UINTN TmpTokenSpaceBufferCount
 
EFI_LOCK mPcdDatabaseLock
 

Detailed Description

Private functions used by PCD DXE driver.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Service.h.

Macro Definition Documentation

◆ CR_FNENTRY_FROM_LISTNODE

#define CR_FNENTRY_FROM_LISTNODE (   Record,
  Type,
  Field 
)    BASE_CR(Record, Type, Field)

Definition at line 808 of file Service.h.

◆ PCD_SERVICE_DXE_VERSION

#define PCD_SERVICE_DXE_VERSION   7

Definition at line 36 of file Service.h.

Function Documentation

◆ BuildPcdDxeDataBase()

VOID BuildPcdDxeDataBase ( VOID  )

Initialize the PCD database in DXE phase.

PCD database in DXE phase also contains PCD database in PEI phase which is copied from GUID Hob.

Definition at line 858 of file Service.c.

◆ DxeGetPcdInfo()

EFI_STATUS DxeGetPcdInfo ( IN CONST EFI_GUID Guid,
IN UINTN  TokenNumber,
OUT EFI_PCD_INFO PcdInfo 
)

Retrieve additional information associated with a PCD token.

This includes information such as the type of value the TokenNumber is associated with as well as possible human readable name that is associated with the token.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[out]PcdInfoThe returned information associated with the requested TokenNumber. The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
Return values
EFI_SUCCESSThe PCD information was returned successfully
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Retrieve additional information associated with a PCD token.

This includes information such as the type of value the TokenNumber is associated with as well as possible human readable name that is associated with the token.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[out]PcdInfoThe returned information associated with the requested TokenNumber. The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
Return values
EFI_SUCCESSThe PCD information was returned successfully.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 276 of file Service.c.

◆ DxeGetPcdInfoGetInfo()

EFI_STATUS EFIAPI DxeGetPcdInfoGetInfo ( IN UINTN  TokenNumber,
OUT EFI_PCD_INFO PcdInfo 
)

Retrieve additional information associated with a PCD token in the default token space.

This includes information such as the type of value the TokenNumber is associated with as well as possible human readable name that is associated with the token.

Parameters
[in]TokenNumberThe PCD token number.
[out]PcdInfoThe returned information associated with the requested TokenNumber. The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
Return values
EFI_SUCCESSThe PCD information was returned successfully.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 210 of file Pcd.c.

◆ DxeGetPcdInfoGetInfoEx()

EFI_STATUS EFIAPI DxeGetPcdInfoGetInfoEx ( IN CONST EFI_GUID Guid,
IN UINTN  TokenNumber,
OUT EFI_PCD_INFO PcdInfo 
)

Retrieve additional information associated with a PCD token.

This includes information such as the type of value the TokenNumber is associated with as well as possible human readable name that is associated with the token.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[out]PcdInfoThe returned information associated with the requested TokenNumber. The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
Return values
EFI_SUCCESSThe PCD information was returned successfully.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 234 of file Pcd.c.

◆ DxeGetPcdInfoGetSku()

UINTN EFIAPI DxeGetPcdInfoGetSku ( VOID  )

Retrieve the currently set SKU Id.

Returns
The currently set SKU Id. If the platform has not set at a SKU Id, then the default SKU Id value of 0 is returned. If the platform has set a SKU Id, then the currently set SKU Id is returned.

Definition at line 252 of file Pcd.c.

◆ DxePcdGet16()

UINT16 EFIAPI DxePcdGet16 ( IN UINTN  TokenNumber)

Retrieves an 16-bit value for a given PCD token.

Retrieves the current 16-bits value for a PCD token number. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The UINT16 value.

Definition at line 365 of file Pcd.c.

◆ DxePcdGet16Ex()

UINT16 EFIAPI DxePcdGet16Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves an 16-bit value for a given PCD token.

Retrieves the 16-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The size 16-bit value for the PCD token.

Retrieves an 16-bit value for a given PCD token.

Retrieves the 16-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The size 16-bit value for the PCD token.

Definition at line 559 of file Pcd.c.

◆ DxePcdGet32()

UINT32 EFIAPI DxePcdGet32 ( IN UINTN  TokenNumber)

Retrieves an 32-bit value for a given PCD token.

Retrieves the current 32-bits value for a PCD token number. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The UINT32 value.

Definition at line 385 of file Pcd.c.

◆ DxePcdGet32Ex()

UINT32 EFIAPI DxePcdGet32Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves an 32-bit value for a given PCD token.

Retrieves the 32-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The size 32-bit value for the PCD token.

Retrieves an 32-bit value for a given PCD token.

Retrieves the 32-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The size 32-bit value for the PCD token.

Definition at line 583 of file Pcd.c.

◆ DxePcdGet64()

UINT64 EFIAPI DxePcdGet64 ( IN UINTN  TokenNumber)

Retrieves an 64-bit value for a given PCD token.

Retrieves the current 64-bits value for a PCD token number. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The UINT64 value.

Definition at line 405 of file Pcd.c.

◆ DxePcdGet64Ex()

UINT64 EFIAPI DxePcdGet64Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves an 64-bit value for a given PCD token.

Retrieves the 64-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The size 64-bit value for the PCD token.

Retrieves an 64-bit value for a given PCD token.

Retrieves the 64-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The size 64-bit value for the PCD token.

Definition at line 607 of file Pcd.c.

◆ DxePcdGet8()

UINT8 EFIAPI DxePcdGet8 ( IN UINTN  TokenNumber)

Retrieves an 8-bit value for a given PCD token.

Retrieves the current byte-sized value for a PCD token number. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The UINT8 value.

Definition at line 345 of file Pcd.c.

◆ DxePcdGet8Ex()

UINT8 EFIAPI DxePcdGet8Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves an 8-bit value for a given PCD token.

Retrieves the 8-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The size 8-bit value for the PCD token.

Retrieves an 8-bit value for a given PCD token.

Retrieves the 8-bit value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The size 8-bit value for the PCD token.

Definition at line 535 of file Pcd.c.

◆ DxePcdGetBool()

BOOLEAN EFIAPI DxePcdGetBool ( IN UINTN  TokenNumber)

Retrieves a Boolean value for a given PCD token.

Retrieves the current boolean value for a PCD token number. Do not make any assumptions about the alignment of the pointer that is returned by this function call. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The Boolean value.

Definition at line 449 of file Pcd.c.

◆ DxePcdGetBoolEx()

BOOLEAN EFIAPI DxePcdGetBoolEx ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves an Boolean value for a given PCD token.

Retrieves the Boolean value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The size Boolean value for the PCD token.

Retrieves an Boolean value for a given PCD token.

Retrieves the Boolean value of a particular PCD token. If the TokenNumber is invalid or the token space specified by Guid does not exist, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The size Boolean value for the PCD token.

Definition at line 655 of file Pcd.c.

◆ DxePcdGetNextToken()

EFI_STATUS EFIAPI DxePcdGetNextToken ( IN CONST EFI_GUID *Guid  OPTIONAL,
IN OUT UINTN TokenNumber 
)

Retrieves the next valid token number in a given namespace.

This is useful since the PCD infrastructure contains a sparse list of token numbers, and one cannot a priori know what token numbers are valid in the database.

If TokenNumber is 0 and Guid is not NULL, then the first token from the token space specified by Guid is returned. If TokenNumber is not 0 and Guid is not NULL, then the next token in the token space specified by Guid is returned. If TokenNumber is 0 and Guid is NULL, then the first token in the default token space is returned. If TokenNumber is not 0 and Guid is NULL, then the next token in the default token space is returned. The token numbers in the default token space may not be related to token numbers in token spaces that are named by Guid. If the next token number can be retrieved, then it is returned in TokenNumber, and EFI_SUCCESS is returned. If TokenNumber represents the last token number in the token space specified by Guid, then EFI_NOT_FOUND is returned. If TokenNumber is not present in the token space specified by Guid, then EFI_NOT_FOUND is returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to retrieve the next token. This is an optional parameter that may be NULL. If this parameter is NULL, then a request is being made to retrieve tokens from the default token space.
[in,out]TokenNumberA pointer to the PCD token number to use to find the subsequent token number.
Return values
EFI_SUCCESSThe PCD service retrieved the next valid token number. Or the input token number is already the last valid token number in the PCD database. In the later case, *TokenNumber is updated with the value of 0.
EFI_NOT_FOUNDIf this input token number and token namespace does not exist on the platform.

Retrieves the next valid token number in a given namespace.

This is useful since the PCD infrastructure contains a sparse list of token numbers, and one cannot a priori know what token numbers are valid in the database.

If TokenNumber is 0 and Guid is not NULL, then the first token from the token space specified by Guid is returned. If TokenNumber is not 0 and Guid is not NULL, then the next token in the token space specified by Guid is returned. If TokenNumber is 0 and Guid is NULL, then the first token in the default token space is returned. If TokenNumber is not 0 and Guid is NULL, then the next token in the default token space is returned. The token numbers in the default token space may not be related to token numbers in token spaces that are named by Guid. If the next token number can be retrieved, then it is returned in TokenNumber, and EFI_SUCCESS is returned. If TokenNumber represents the last token number in the token space specified by Guid, then EFI_NOT_FOUND is returned. If TokenNumber is not present in the token space specified by Guid, then EFI_NOT_FOUND is returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to retrieve the next token. This is an optional parameter that may be NULL. If this parameter is NULL, then a request is being made to retrieve tokens from the default token space.
[in,out]TokenNumberA pointer to the PCD token number to use to find the subsequent token number.
Return values
EFI_SUCCESSThe PCD service has retrieved the next valid token number.
EFI_NOT_FOUNDThe PCD service could not find data from the requested token number.

Definition at line 1142 of file Pcd.c.

◆ DxePcdGetNextTokenSpace()

EFI_STATUS EFIAPI DxePcdGetNextTokenSpace ( IN OUT CONST EFI_GUID **  Guid)

Get next token space in PCD database according to given token space guid.

Parameters
GuidGiven token space guid. If NULL, then Guid will be set to the first PCD token space in PCD database, If not NULL, then Guid will be set to next PCD token space.
Return values
EFI_NOT_FOUNDIf PCD database has no token space table or can not find given token space in PCD database.
EFI_SUCCESSSuccess to get next token space guid.

Retrieves the next valid PCD token namespace for a given namespace.

Gets the next valid token namespace for a given namespace. This is useful to traverse the valid token namespaces on a platform.

Parameters
[in,out]GuidAn indirect pointer to EFI_GUID. On input it designates a known token namespace from which the search will start. On output, it designates the next valid token namespace on the platform. If *Guid is NULL, then the GUID of the first token space of the current platform is returned. If the search cannot locate the next valid token namespace, an error is returned and the value of *Guid is undefined.
Return values
EFI_SUCCESSThe PCD service retrieved the value requested.
EFI_NOT_FOUNDThe PCD service could not find the next valid token namespace.

Definition at line 1298 of file Pcd.c.

◆ DxePcdGetPtr()

VOID *EFIAPI DxePcdGetPtr ( IN UINTN  TokenNumber)

Retrieves a pointer to a value for a given PCD token.

Retrieves the current pointer to the buffer for a PCD token number. Do not make any assumptions about the alignment of the pointer that is returned by this function call. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The pointer to the buffer to be retrieved.

Retrieves a pointer to a value for a given PCD token.

Retrieves the current pointer to the buffer for a PCD token number. Do not make any assumptions about the alignment of the pointer that is returned by this function call. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The pointer to the buffer to be retrived.

Definition at line 427 of file Pcd.c.

◆ DxePcdGetPtrEx()

VOID *EFIAPI DxePcdGetPtrEx ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves a pointer to a value for a given PCD token.

Retrieves the current pointer to the buffer for a PCD token number. Do not make any assumptions about the alignment of the pointer that is returned by this function call. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The pointer to the buffer to be retrieved.

Retrieves a pointer to a value for a given PCD token.

Retrieves the current pointer to the buffer for a PCD token number. Do not make any assumptions about the alignment of the pointer that is returned by this function call. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The pointer to the buffer to be retrived.

Definition at line 631 of file Pcd.c.

◆ DxePcdGetSize()

UINTN EFIAPI DxePcdGetSize ( IN UINTN  TokenNumber)

Retrieves the size of the value for a given PCD token.

Retrieves the current size of a particular PCD token. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]TokenNumberThe PCD token number.
Returns
The size of the value for the PCD token.

Definition at line 469 of file Pcd.c.

◆ DxePcdGetSizeEx()

UINTN EFIAPI DxePcdGetSizeEx ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber 
)

Retrieves the size of the value for a given PCD token.

Retrieves the current size of a particular PCD token. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]TokenNumberThe PCD token number.
Returns
The size of the value for the PCD token.

Retrieves the size of the value for a given PCD token.

Retrieves the current size of a particular PCD token. If the TokenNumber is invalid, the results are unpredictable.

Parameters
[in]GuidThe token space for the token number.
[in]ExTokenNumberThe PCD token number.
Returns
The size of the value for the PCD token.

Definition at line 677 of file Pcd.c.

◆ DxePcdSet16()

EFI_STATUS EFIAPI DxePcdSet16 ( IN UINTN  TokenNumber,
IN UINT16  Value 
)

Sets an 16-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 731 of file Pcd.c.

◆ DxePcdSet16Ex()

EFI_STATUS EFIAPI DxePcdSet16Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN UINT16  Value 
)

Sets an 16-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Sets an 16-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]ExTokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 901 of file Pcd.c.

◆ DxePcdSet32()

EFI_STATUS EFIAPI DxePcdSet32 ( IN UINTN  TokenNumber,
IN UINT32  Value 
)

Sets an 32-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 758 of file Pcd.c.

◆ DxePcdSet32Ex()

EFI_STATUS EFIAPI DxePcdSet32Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN UINT32  Value 
)

Sets an 32-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Sets an 32-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]ExTokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 937 of file Pcd.c.

◆ DxePcdSet64()

EFI_STATUS EFIAPI DxePcdSet64 ( IN UINTN  TokenNumber,
IN UINT64  Value 
)

Sets an 64-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 785 of file Pcd.c.

◆ DxePcdSet64Ex()

EFI_STATUS EFIAPI DxePcdSet64Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN UINT64  Value 
)

Sets an 64-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Sets an 64-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]ExTokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 966 of file Pcd.c.

◆ DxePcdSet8()

EFI_STATUS EFIAPI DxePcdSet8 ( IN UINTN  TokenNumber,
IN UINT8  Value 
)

Sets an 8-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 704 of file Pcd.c.

◆ DxePcdSet8Ex()

EFI_STATUS EFIAPI DxePcdSet8Ex ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN UINT8  Value 
)

Sets an 8-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Sets an 8-bit value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]ExTokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 872 of file Pcd.c.

◆ DxePcdSetBool()

EFI_STATUS EFIAPI DxePcdSetBool ( IN UINTN  TokenNumber,
IN BOOLEAN  Value 
)

Sets an Boolean value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 844 of file Pcd.c.

◆ DxePcdSetBoolEx()

EFI_STATUS EFIAPI DxePcdSetBoolEx ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN BOOLEAN  Value 
)

Sets an Boolean value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Sets an Boolean value for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]ExTokenNumberThe PCD token number.
[in]ValueThe value to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 1029 of file Pcd.c.

◆ DxePcdSetPtr()

EFI_STATUS EFIAPI DxePcdSetPtr ( IN UINTN  TokenNumber,
IN OUT UINTN SizeOfBuffer,
IN VOID *  Buffer 
)

Sets a value of a specified size for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]TokenNumberThe PCD token number.
[in,out]SizeOfBufferA pointer to the length of the value being set for the PCD token. On input, if the SizeOfValue is greater than the maximum size supported for this TokenNumber then the output value of SizeOfValue will reflect the maximum size supported for this TokenNumber.
[in]BufferThe buffer to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 816 of file Pcd.c.

◆ DxePcdSetPtrEx()

EFI_STATUS EFIAPI DxePcdSetPtrEx ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN OUT UINTN SizeOfBuffer,
IN VOID *  Buffer 
)

Sets a value of a specified size for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in,out]SizeOfBufferA pointer to the length of the value being set for the PCD token. On input, if the SizeOfValue is greater than the maximum size supported for this TokenNumber then the output value of SizeOfValue will reflect the maximum size supported for this TokenNumber.
[in]BufferThe buffer to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Sets a value of a specified size for a given PCD token.

When the PCD service sets a value, it will check to ensure that the size of the value being set is compatible with the Token's existing definition. If it is not, an error will be returned.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]ExTokenNumberThe PCD token number.
[in,out]SizeOfBufferA pointer to the length of the value being set for the PCD token. On input, if the SizeOfValue is greater than the maximum size supported for this TokenNumber then the output value of SizeOfValue will reflect the maximum size supported for this TokenNumber.
[in]BufferThe buffer to set for the PCD token.
Return values
EFI_SUCCESSProcedure returned successfully.
EFI_INVALID_PARAMETERThe PCD service determined that the size of the data being set was incompatible with a call to this function. Use GetSize() to retrieve the size of the target data.
EFI_NOT_FOUNDThe PCD service could not find the requested token number.

Definition at line 999 of file Pcd.c.

◆ DxePcdSetSku()

VOID EFIAPI DxePcdSetSku ( IN UINTN  SkuId)

Sets the SKU value for subsequent calls to set or get PCD token values.

SetSku() sets the SKU Id to be used for subsequent calls to set or get PCD values. SetSku() is normally called only once by the system.

For each item (token), the database can hold a single value that applies to all SKUs, or multiple values, where each value is associated with a specific SKU Id. Items with multiple, SKU-specific values are called SKU enabled.

The SKU Id of zero is reserved as a default. The valid SkuId range is 1 to 255. For tokens that are not SKU enabled, the system ignores any set SKU Id and works with the single value for that token. For SKU-enabled tokens, the system will use the SKU Id set by the last call to SetSku(). If no SKU Id is set or the currently set SKU Id isn't valid for the specified token, the system uses the default SKU Id. If the system attempts to use the default SKU Id and no value has been set for that Id, the results are unpredictable.

Parameters
[in]SkuIdThe SKU value that will be used when the PCD service will retrieve and set values associated with a PCD token.

Sets the SKU value for subsequent calls to set or get PCD token values.

SetSku() sets the SKU Id to be used for subsequent calls to set or get PCD values. SetSku() is normally called only once by the system.

For each item (token), the database can hold a single value that applies to all SKUs, or multiple values, where each value is associated with a specific SKU Id. Items with multiple, SKU-specific values are called SKU enabled.

The SKU Id of zero is reserved as a default. For tokens that are not SKU enabled, the system ignores any set SKU Id and works with the single value for that token. For SKU-enabled tokens, the system will use the SKU Id set by the last call to SetSku(). If no SKU Id is set or the currently set SKU Id isn't valid for the specified token, the system uses the default SKU Id. If the system attempts to use the default SKU Id and no value has been set for that Id, the results are unpredictable.

Parameters
[in]SkuIdThe SKU value that will be used when the PCD service will retrieve and set values associated with a PCD token.

Definition at line 282 of file Pcd.c.

◆ DxeRegisterCallBackOnSet()

EFI_STATUS EFIAPI DxeRegisterCallBackOnSet ( IN CONST EFI_GUID *Guid  OPTIONAL,
IN UINTN  TokenNumber,
IN PCD_PROTOCOL_CALLBACK  CallBackFunction 
)

Specifies a function to be called anytime the value of a designated token is changed.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]CallBackFunctionThe function prototype called when the value associated with the CallBackToken is set.
Return values
EFI_SUCCESSThe PCD service has successfully established a call event for the CallBackToken requested.
EFI_NOT_FOUNDThe PCD service could not find the referenced token number.

Definition at line 1052 of file Pcd.c.

◆ DxeRegisterCallBackWorker()

EFI_STATUS DxeRegisterCallBackWorker ( IN UINTN  TokenNumber,
IN CONST EFI_GUID *Guid  OPTIONAL,
IN PCD_PROTOCOL_CALLBACK  CallBackFunction 
)

Register the callback function for a PCD entry.

This routine will register a callback function to a PCD entry by given token number and token space guid.

Parameters
TokenNumberPCD token's number, it is autogened by build tools.
GuidPCD token space's guid, if not NULL, this PCD is dynamicEx type PCD.
CallBackFunctionCallback function pointer
Returns
EFI_SUCCESS Always success for registering callback function.

Definition at line 528 of file Service.c.

◆ DxeUnRegisterCallBackOnSet()

EFI_STATUS EFIAPI DxeUnRegisterCallBackOnSet ( IN CONST EFI_GUID *Guid  OPTIONAL,
IN UINTN  TokenNumber,
IN PCD_PROTOCOL_CALLBACK  CallBackFunction 
)

Cancels a previously set callback function for a particular PCD token number.

Parameters
[in]GuidThe 128-bit unique value that designates the namespace from which to extract the value.
[in]TokenNumberThe PCD token number.
[in]CallBackFunctionThe function prototype called when the value associated with the CallBackToken is set.
Return values
EFI_SUCCESSThe PCD service has successfully established a call event for the CallBackToken requested.
EFI_NOT_FOUNDThe PCD service could not find the referenced token number.

Definition at line 1090 of file Pcd.c.

◆ DxeUnRegisterCallBackWorker()

EFI_STATUS DxeUnRegisterCallBackWorker ( IN UINTN  TokenNumber,
IN CONST EFI_GUID *Guid  OPTIONAL,
IN PCD_PROTOCOL_CALLBACK  CallBackFunction 
)

UnRegister the callback function for a PCD entry.

This routine will unregister a callback function to a PCD entry by given token number and token space guid.

Parameters
TokenNumberPCD token's number, it is autogened by build tools.
GuidPCD token space's guid. if not NULL, this PCD is dynamicEx type PCD.
CallBackFunctionCallback function pointer
Return values
EFI_SUCCESSCallback function is success to be unregister.
EFI_INVALID_PARAMETERCan not find the PCD entry by given token number.

Definition at line 588 of file Service.c.

◆ ExGetNextTokeNumber()

EFI_STATUS ExGetNextTokeNumber ( IN CONST EFI_GUID Guid,
IN OUT UINTN TokenNumber,
IN EFI_GUID GuidTable,
IN UINTN  SizeOfGuidTable,
IN DYNAMICEX_MAPPING ExMapTable,
IN UINTN  SizeOfExMapTable 
)

Get next token number in given token space.

This routine is used for dynamicEx type PCD. It will firstly scan token space table to get token space according to given token space guid. Then scan given token number in found token space, if found, then return next token number in this token space.

Parameters
GuidToken space guid. Next token number will be scaned in this token space.
TokenNumberToken number. If PCD_INVALID_TOKEN_NUMBER, return first token number in token space table. If not PCD_INVALID_TOKEN_NUMBER, return next token number in token space table.
GuidTableToken space guid table. It will be used for scan token space by given token space guid.
SizeOfGuidTableThe size of guid table.
ExMapTableDynamicEx token number mapping table.
SizeOfExMapTableThe size of dynamicEx token number mapping table.
Return values
EFI_NOT_FOUNDCan not given token space or token number.
EFI_SUCCESSSuccess to get next token number.

Definition at line 657 of file Service.c.

◆ ExGetWorker()

VOID * ExGetWorker ( IN CONST EFI_GUID Guid,
IN UINTN  ExTokenNumber,
IN UINTN  GetSize 
)

Wrapper function for get PCD value for dynamic-ex PCD.

Parameters
GuidToken space guid for dynamic-ex PCD.
ExTokenNumberToken number for dynamic-ex PCD.
GetSizeThe size of dynamic-ex PCD value.
Returns
PCD entry in PCD database.

Wrapper function for get PCD value for dynamic-ex PCD.

Parameters
GuidToken space guid for dynamic-ex PCD.
ExTokenNumberToken number for dyanmic-ex PCD.
GetSizeThe size of dynamic-ex PCD value.
Returns
PCD entry in PCD database.

Definition at line 1299 of file Service.c.

◆ ExSetValueWorker()

EFI_STATUS ExSetValueWorker ( IN UINTN  ExTokenNumber,
IN CONST EFI_GUID Guid,
IN VOID *  Data,
IN UINTN  Size 
)

Wrapper function for set PCD value for non-Pointer type dynamic-ex PCD.

Parameters
ExTokenNumberToken number for dynamic-ex PCD.
GuidToken space guid for dynamic-ex PCD.
DataValue want to be set.
SetSizeThe size of value.
Returns
status of ExSetWorker().

Definition at line 1320 of file Service.c.

◆ ExSetWorker()

EFI_STATUS ExSetWorker ( IN UINTN  ExTokenNumber,
IN CONST EFI_GUID Guid,
IN VOID *  Data,
IN OUT UINTN Size,
IN BOOLEAN  PtrType 
)

Set value for a dynamic PCD entry.

This routine find the local token number according to dynamic-ex PCD's token space guid and token number firstly, and invoke callback function if this PCD entry registered callback function. Finally, invoken general SetWorker to set PCD value.

Parameters
ExTokenNumberDynamic-ex PCD token number.
GuidToken space guid for dynamic-ex PCD.
DataPCD value want to be set
SetSizeSize of value.
PtrTypeIf TRUE, this PCD entry is pointer type. If FALSE, this PCD entry is not pointer type.
Returns
status of SetWorker().

Set value for a dynamic-ex PCD entry.

This routine find the local token number according to dynamic-ex PCD's token space guid and token number firstly, and invoke callback function if this PCD entry registered callback function. Finally, invoken general SetWorker to set PCD value.

Parameters
ExTokenNumberDynamic-ex PCD token number.
GuidToken space guid for dynamic-ex PCD.
DataPCD value want to be set
SetSizeSize of value.
PtrTypeIf TRUE, this PCD entry is pointer type. If FALSE, this PCD entry is not pointer type.
Returns
status of SetWorker().

Definition at line 1349 of file Service.c.

◆ GetExPcdTokenNumber()

UINTN GetExPcdTokenNumber ( IN CONST EFI_GUID Guid,
IN UINT32  ExTokenNumber 
)

Get Token Number according to dynamic-ex PCD's {token space guid:token number}

A dynamic-ex type PCD, developer must provide pair of token space guid: token number in DEC file. PCD database maintain a mapping table that translate pair of {token space guid: token number} to Token Number.

Parameters
GuidToken space guid for dynamic-ex PCD entry.
ExTokenNumberDynamic-ex PCD token number.
Returns
Token Number for dynamic-ex PCD.

Definition at line 1585 of file Service.c.

◆ GetHiiVariable()

EFI_STATUS GetHiiVariable ( IN EFI_GUID VariableGuid,
IN UINT16 *  VariableName,
OUT UINT8 **  VariableData,
OUT UINTN VariableSize 
)

Get Variable which contains HII type PCD entry.

Parameters
VariableGuidVariable's guid
VariableNameVariable's unicode name string
VariableDataVariable's data pointer,
VariableSizeVariable's size.
Returns
the status of gRT->GetVariable

Definition at line 966 of file Service.c.

◆ GetPtrTypeSize()

UINTN GetPtrTypeSize ( IN UINTN  LocalTokenNumberTableIdx,
OUT UINTN MaxSize 
)

Get size of POINTER type PCD value.

Parameters
LocalTokenNumberTableIdxIndex of local token number in local token number table.
MaxSizeMaximum size of POINTER type PCD value.
Returns
size of POINTER type PCD value.

Get size of POINTER type PCD value.

Parameters
LocalTokenNumberTableIdxIndex of local token number in local token number table.
MaxSizeMaxmium size of POINTER type PCD value.
Returns
size of POINTER type PCD value.

Definition at line 1709 of file Service.c.

◆ GetWorker()

VOID * GetWorker ( IN UINTN  TokenNumber,
IN UINTN  GetSize 
)

Get the PCD entry pointer in PCD database.

This routine will visit PCD database to find the PCD entry according to given token number. The given token number is autogened by build tools and it will be translated to local token number. Local token number contains PCD's type and offset of PCD entry in PCD database.

Parameters
TokenNumberToken's number, it is autogened by build tools
GetSizeThe size of token's value
Returns
PCD entry pointer in PCD database

Definition at line 366 of file Service.c.

◆ SetHiiVariable()

EFI_STATUS SetHiiVariable ( IN EFI_GUID VariableGuid,
IN UINT16 *  VariableName,
IN UINT32  SetAttributes,
IN CONST VOID *  Data,
IN UINTN  DataSize,
IN UINTN  Offset 
)

Set value for HII-type PCD.

A HII-type PCD's value is stored in a variable. Setting/Getting the value of HII-type PCD is to visit this variable.

Parameters
VariableGuidGuid of variable which stored value of a HII-type PCD.
VariableNameUnicode name of variable which stored value of a HII-type PCD.
SetAttributesAttributes bitmask to set for the variable.
DataValue want to be set.
DataSizeSize of value
OffsetValue offset of HII-type PCD in variable.
Returns
status of GetVariable()/SetVariable().

Definition at line 1463 of file Service.c.

◆ SetPtrTypeSize()

BOOLEAN SetPtrTypeSize ( IN UINTN  LocalTokenNumberTableIdx,
IN OUT UINTN CurrentSize 
)

Set size of POINTER type PCD value. The size should not exceed the maximum size of this PCD value.

Parameters
LocalTokenNumberTableIdxIndex of local token number in local token number table.
CurrentSizeSize of POINTER type PCD value.
Return values
TRUESuccess to set size of PCD value.
FALSEFail to set size of PCD value.

Definition at line 1774 of file Service.c.

◆ SetValueWorker()

EFI_STATUS SetValueWorker ( IN UINTN  TokenNumber,
IN VOID *  Data,
IN UINTN  Size 
)

Wrapper function for setting non-pointer type value for a PCD entry.

Parameters
TokenNumberPcd token number autogenerated by build tools.
DataValue want to be set for PCD entry
SizeSize of value.
Returns
status of SetWorker.

Definition at line 1082 of file Service.c.

◆ SetWorker()

EFI_STATUS SetWorker ( IN UINTN  TokenNumber,
IN VOID *  Data,
IN OUT UINTN Size,
IN BOOLEAN  PtrType 
)

Set value for an PCD entry

Parameters
TokenNumberPcd token number autogenerated by build tools.
DataValue want to be set for PCD entry
SizeSize of value.
PtrTypeIf TRUE, the type of PCD entry's value is Pointer. If False, the type of PCD entry's value is not Pointer.
Return values
EFI_INVALID_PARAMETERIf this PCD type is VPD, VPD PCD can not be set.
EFI_INVALID_PARAMETERIf Size can not be set to size table.
EFI_INVALID_PARAMETERIf Size of non-Ptr type PCD does not match the size information in PCD database.
EFI_NOT_FOUNDIf value type of PCD entry is intergrate, but not in range of UINT8, UINT16, UINT32, UINT64
EFI_NOT_FOUNDCan not find the PCD type according to token number.

Definition at line 1108 of file Service.c.

◆ UpdatePcdDatabase()

EFI_STATUS UpdatePcdDatabase ( IN SKU_ID  SkuId,
IN BOOLEAN  IsPeiDb 
)

Update PCD database base on current SkuId

Parameters
SkuIdCurrent SkuId
IsPeiDbWhether to update PEI PCD database.
Return values
EFI_SUCCESSUpdate PCD database successfully.
EFI_NOT_FOUNDNot found PCD database for current SkuId.

Definition at line 777 of file Service.c.

◆ VariableLockCallBack()

VOID EFIAPI VariableLockCallBack ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

VariableLockProtocol callback to lock the variables referenced by DynamicHii PCDs with RO property set in *.dsc.

Parameters
[in]EventEvent whose notification function is being invoked.
[in]ContextPointer to the notification function's context.

Definition at line 1910 of file Service.c.

Variable Documentation

◆ mDxeExMapppingTableSize

UINT32 mDxeExMapppingTableSize
extern

Definition at line 22 of file Service.c.

◆ mDxeExMapTableEmpty

BOOLEAN mDxeExMapTableEmpty
extern

Definition at line 27 of file Service.c.

◆ mDxeGuidTableSize

UINT32 mDxeGuidTableSize
extern

Definition at line 24 of file Service.c.

◆ mDxeLocalTokenCount

UINT32 mDxeLocalTokenCount
extern

Definition at line 18 of file Service.c.

◆ mDxeNexTokenCount

UINT32 mDxeNexTokenCount
extern

Definition at line 20 of file Service.c.

◆ mPcdDatabase

PCD_DATABASE mPcdDatabase
extern

Definition at line 14 of file Service.c.

◆ mPcdDatabaseLock

EFI_LOCK mPcdDatabaseLock
extern

PCD database lock.

Definition at line 16 of file Pcd.c.

◆ mPcdTotalTokenCount

UINT32 mPcdTotalTokenCount
extern

Definition at line 16 of file Service.c.

◆ mPeiDatabaseEmpty

BOOLEAN mPeiDatabaseEmpty
extern

Definition at line 28 of file Service.c.

◆ mPeiExMapppingTableSize

UINT32 mPeiExMapppingTableSize
extern

Definition at line 21 of file Service.c.

◆ mPeiExMapTableEmpty

BOOLEAN mPeiExMapTableEmpty
extern

Definition at line 26 of file Service.c.

◆ mPeiGuidTableSize

UINT32 mPeiGuidTableSize
extern

Definition at line 23 of file Service.c.

◆ mPeiLocalTokenCount

UINT32 mPeiLocalTokenCount
extern

Definition at line 17 of file Service.c.

◆ mPeiNexTokenCount

UINT32 mPeiNexTokenCount
extern

Definition at line 19 of file Service.c.

◆ mVpdBaseAddress

UINTN mVpdBaseAddress
extern

Definition at line 106 of file Pcd.c.

◆ TmpTokenSpaceBuffer

EFI_GUID** TmpTokenSpaceBuffer
extern

Definition at line 31 of file Service.c.

◆ TmpTokenSpaceBufferCount

UINTN TmpTokenSpaceBufferCount
extern

Definition at line 32 of file Service.c.