REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			795 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			795 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /** @file
 | |
|   Native Platform Configuration Database (PCD) PPI
 | |
| 
 | |
|   Different with the EFI_PCD_PPI defined in PI 1.2 specification, the native
 | |
|   PCD PPI provide interfaces for dynamic and dynamic-ex type PCD.
 | |
|   The interfaces for dynamic type PCD do not require the token space guid as parameter,
 | |
|   but interfaces for dynamic-ex type PCD require token space guid as parameter.
 | |
| 
 | |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __PCD_PPI_H__
 | |
| #define __PCD_PPI_H__
 | |
| 
 | |
| #define PCD_PPI_GUID \
 | |
|   { 0x6e81c58, 0x4ad7, 0x44bc, { 0x83, 0x90, 0xf1, 0x2, 0x65, 0xf7, 0x24, 0x80 } }
 | |
| 
 | |
| #define PCD_INVALID_TOKEN_NUMBER  ((UINTN) 0)
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]  SkuId The SKU value that will be used when the PCD service will retrieve and
 | |
|               set values associated with a PCD token.
 | |
| 
 | |
|   @retval VOID
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| VOID
 | |
| (EFIAPI *PCD_PPI_SET_SKU)(
 | |
|   IN  UINTN          SkuId
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The UINT8 value.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT8
 | |
| (EFIAPI *PCD_PPI_GET8)(
 | |
|   IN UINTN             TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a 16-bit value for a given PCD token.
 | |
| 
 | |
|   Retrieves the current 16-bit value for a PCD token number.
 | |
|   If the TokenNumber is invalid, the results are unpredictable.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The UINT16 value.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT16
 | |
| (EFIAPI *PCD_PPI_GET16)(
 | |
|   IN UINTN             TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a 32-bit value for a given PCD token.
 | |
| 
 | |
|   Retrieves the current 32-bit value for a PCD token number.
 | |
|   If the TokenNumber is invalid, the results are unpredictable.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The UINT32 value.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT32
 | |
| (EFIAPI *PCD_PPI_GET32)(
 | |
|   IN UINTN             TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a 64-bit value for a given PCD token.
 | |
| 
 | |
|   Retrieves the current 64-bit value for a PCD token number.
 | |
|   If the TokenNumber is invalid, the results are unpredictable.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The UINT64 value.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT64
 | |
| (EFIAPI *PCD_PPI_GET64)(
 | |
|   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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The pointer to the buffer to be retrieved.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| VOID *
 | |
| (EFIAPI *PCD_PPI_GET_POINTER)(
 | |
|   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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The Boolean value.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| BOOLEAN
 | |
| (EFIAPI *PCD_PPI_GET_BOOLEAN)(
 | |
|   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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size of the value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINTN
 | |
| (EFIAPI *PCD_PPI_GET_SIZE)(
 | |
|   IN UINTN             TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves an 8-bit value for a given PCD token and token space.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid        The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size 8-bit value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT8
 | |
| (EFIAPI *PCD_PPI_GET_EX_8)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a 16-bit value for a given PCD token and token space.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid        The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size 16-bit value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT16
 | |
| (EFIAPI *PCD_PPI_GET_EX_16)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a 32-bit value for a given PCD token and token space.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid        The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size 32-bit value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT32
 | |
| (EFIAPI *PCD_PPI_GET_EX_32)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a 64-bit value for a given PCD token and token space.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid        The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size 64-bit value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT64
 | |
| (EFIAPI *PCD_PPI_GET_EX_64)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves a pointer to a value for a given PCD token and token space.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid        The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The pointer to the buffer to be retrieved.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| VOID *
 | |
| (EFIAPI *PCD_PPI_GET_EX_POINTER)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves an Boolean value for a given PCD token and token space.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size Boolean value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| BOOLEAN
 | |
| (EFIAPI *PCD_PPI_GET_EX_BOOLEAN)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves the size of the value for a given PCD token and token space.
 | |
| 
 | |
|   Retrieves the current size of a particular PCD token.
 | |
|   If the TokenNumber is invalid, the results are unpredictable.
 | |
| 
 | |
|   @param[in]  Guid        The token space for the token number.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
| 
 | |
|   @return The size of the value for the PCD token.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINTN
 | |
| (EFIAPI *PCD_PPI_GET_EX_SIZE)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET8)(
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT8             Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets a 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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET16)(
 | |
|   IN UINTN              TokenNumber,
 | |
|   IN UINT16             Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets a 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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET32)(
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT32            Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets a 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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET64)(
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT64            Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]      TokenNumber  The PCD token number.
 | |
|   @param[in, out] SizeOfValue  A 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.
 | |
|   @param[in]      Buffer       The buffer to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_POINTER)(
 | |
|   IN        UINTN             TokenNumber,
 | |
|   IN OUT    UINTN             *SizeOfValue,
 | |
|   IN        VOID              *Buffer
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_BOOLEAN)(
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN BOOLEAN           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.
 | |
| 
 | |
|   @param[in]  Guid        The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_EX_8)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber,
 | |
|   IN       UINT8       Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets a 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.
 | |
| 
 | |
|   @param[in]  Guid        The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_EX_16)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber,
 | |
|   IN       UINT16      Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets a 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.
 | |
| 
 | |
|   @param[in]  Guid        The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_EX_32)(
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN       UINTN       TokenNumber,
 | |
|   IN       UINT32      Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets a 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.
 | |
| 
 | |
|   @param[in]  Guid        The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_EX_64)(
 | |
|   IN CONST EFI_GUID     *Guid,
 | |
|   IN       UINTN        TokenNumber,
 | |
|   IN       UINT64       Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]      Guid         The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]      TokenNumber  The PCD token number.
 | |
|   @param[in, out] SizeOfValue  A 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.
 | |
|   @param[in]      Buffer       The buffer to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_EX_POINTER)(
 | |
|   IN CONST EFI_GUID          *Guid,
 | |
|   IN       UINTN             TokenNumber,
 | |
|   IN OUT   UINTN             *SizeOfValue,
 | |
|   IN       VOID              *Buffer
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in]  Guid        The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Value       The value to set for the PCD token.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The procedure returned successfully.
 | |
|   @retval EFI_INVALID_PARAMETER The 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.
 | |
|   @retval EFI_NOT_FOUND         The PCD service could not find the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_SET_EX_BOOLEAN)(
 | |
|   IN CONST EFI_GUID          *Guid,
 | |
|   IN       UINTN             TokenNumber,
 | |
|   IN       BOOLEAN           Value
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Callback on SET function prototype definition.
 | |
| 
 | |
|   This notification function serves two purposes. Firstly, it notifies the module
 | |
|   which did the registration that the value of this PCD token has been set. Secondly,
 | |
|   it provides a mechanism for the module which did the registration to intercept the set
 | |
|   operation and override the value been set if necessary. After the invocation of the
 | |
|   callback function, TokenData will be used by PCD service PEIM to modify the internal data
 | |
|   in PCD database.
 | |
| 
 | |
|   @param[in]      CallBackGuid  The PCD token GUID being set.
 | |
|   @param[in]      CallBackToken The PCD token number being set.
 | |
|   @param[in, out] TokenData     A pointer to the token data being set.
 | |
|   @param[in]      TokenDataSize The size, in bytes, of the data being set.
 | |
| 
 | |
|   @retval VOID
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| VOID
 | |
| (EFIAPI *PCD_PPI_CALLBACK)(
 | |
|   IN CONST EFI_GUID         *CallBackGuid  OPTIONAL,
 | |
|   IN       UINTN            CallBackToken,
 | |
|   IN OUT   VOID             *TokenData,
 | |
|   IN       UINTN            TokenDataSize
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Specifies a function to be called anytime the value of a designated token is changed.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Guid The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  CallBackFunction The function prototype called when the value associated with the CallBackToken is set.
 | |
| 
 | |
|   @retval EFI_SUCCESS  The PCD service has successfully established a call event
 | |
|                         for the CallBackToken requested.
 | |
|   @retval EFI_NOT_FOUND The PCD service could not find the referenced token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_CALLBACK_ONSET)(
 | |
|   IN  CONST EFI_GUID               *Guid  OPTIONAL,
 | |
|   IN        UINTN                  TokenNumber,
 | |
|   IN        PCD_PPI_CALLBACK       CallBackFunction
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Cancels a previously set callback function for a particular PCD token number.
 | |
| 
 | |
|   @param[in]  TokenNumber The PCD token number.
 | |
|   @param[in]  Guid The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|   @param[in]  CallBackFunction The function prototype called when the value associated with the CallBackToken is set.
 | |
| 
 | |
|   @retval EFI_SUCCESS  The PCD service has successfully established a call event
 | |
|                         for the CallBackToken requested.
 | |
|   @retval EFI_NOT_FOUND The PCD service could not find the referenced token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_CANCEL_CALLBACK)(
 | |
|   IN  CONST EFI_GUID                *Guid  OPTIONAL,
 | |
|   IN        UINTN                   TokenNumber,
 | |
|   IN        PCD_PPI_CALLBACK        CallBackFunction
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
| 
 | |
|   @param[in]       Guid        The 128-bit unique value that designates the namespace from which to extract the value.
 | |
|                                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.
 | |
|   @param[in, out]  TokenNumber A pointer to the PCD token number to use to find the subsequent token number.
 | |
| 
 | |
|   @retval EFI_SUCCESS   The PCD service has retrieved the next valid token number.
 | |
|   @retval EFI_NOT_FOUND The PCD service could not find data from the requested token number.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_GET_NEXT_TOKEN)(
 | |
|   IN CONST EFI_GUID           *Guid  OPTIONAL,
 | |
|   IN OUT   UINTN              *TokenNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   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.
 | |
| 
 | |
|   @param[in, out]   Guid    An 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.
 | |
| 
 | |
|   @retval  EFI_SUCCESS      The PCD service retrieved the value requested.
 | |
|   @retval  EFI_NOT_FOUND    The PCD service could not find the next valid token namespace.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PCD_PPI_GET_NEXT_TOKENSPACE)(
 | |
|   IN OUT CONST EFI_GUID         **Guid
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// This service abstracts the ability to set/get Platform Configuration Database (PCD).
 | |
| ///
 | |
| typedef struct {
 | |
|   PCD_PPI_SET_SKU                SetSku;
 | |
| 
 | |
|   PCD_PPI_GET8                   Get8;
 | |
|   PCD_PPI_GET16                  Get16;
 | |
|   PCD_PPI_GET32                  Get32;
 | |
|   PCD_PPI_GET64                  Get64;
 | |
|   PCD_PPI_GET_POINTER            GetPtr;
 | |
|   PCD_PPI_GET_BOOLEAN            GetBool;
 | |
|   PCD_PPI_GET_SIZE               GetSize;
 | |
| 
 | |
|   PCD_PPI_GET_EX_8               Get8Ex;
 | |
|   PCD_PPI_GET_EX_16              Get16Ex;
 | |
|   PCD_PPI_GET_EX_32              Get32Ex;
 | |
|   PCD_PPI_GET_EX_64              Get64Ex;
 | |
|   PCD_PPI_GET_EX_POINTER         GetPtrEx;
 | |
|   PCD_PPI_GET_EX_BOOLEAN         GetBoolEx;
 | |
|   PCD_PPI_GET_EX_SIZE            GetSizeEx;
 | |
| 
 | |
|   PCD_PPI_SET8                   Set8;
 | |
|   PCD_PPI_SET16                  Set16;
 | |
|   PCD_PPI_SET32                  Set32;
 | |
|   PCD_PPI_SET64                  Set64;
 | |
|   PCD_PPI_SET_POINTER            SetPtr;
 | |
|   PCD_PPI_SET_BOOLEAN            SetBool;
 | |
| 
 | |
|   PCD_PPI_SET_EX_8               Set8Ex;
 | |
|   PCD_PPI_SET_EX_16              Set16Ex;
 | |
|   PCD_PPI_SET_EX_32              Set32Ex;
 | |
|   PCD_PPI_SET_EX_64              Set64Ex;
 | |
|   PCD_PPI_SET_EX_POINTER         SetPtrEx;
 | |
|   PCD_PPI_SET_EX_BOOLEAN         SetBoolEx;
 | |
| 
 | |
|   PCD_PPI_CALLBACK_ONSET         CallbackOnSet;
 | |
|   PCD_PPI_CANCEL_CALLBACK        CancelCallback;
 | |
|   PCD_PPI_GET_NEXT_TOKEN         GetNextToken;
 | |
|   PCD_PPI_GET_NEXT_TOKENSPACE    GetNextTokenSpace;
 | |
| } PCD_PPI;
 | |
| 
 | |
| extern EFI_GUID  gPcdPpiGuid;
 | |
| 
 | |
| #endif
 |