Fix various typos in comments and documentation. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Antoine Coeur <coeur@gmx.fr> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> Message-Id: <20200207010831.9046-28-philmd@redhat.com>
		
			
				
	
	
		
			855 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			855 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
 |