Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14866 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Native Platform Configuration Database (PCD) INFO PROTOCOL.
 | 
						|
 | 
						|
  The protocol that provides additional information about items that reside in the PCD database.
 | 
						|
 | 
						|
  Different with the EFI_GET_PCD_INFO_PROTOCOL defined in PI 1.2.1 specification,
 | 
						|
  the native PCD INFO PROTOCOL 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) 2013, Intel Corporation. All rights reserved.<BR>
 | 
						|
  This program and the accompanying materials
 | 
						|
  are licensed and made available under the terms and conditions of the BSD License
 | 
						|
  which accompanies this distribution.  The full text of the license may be found at
 | 
						|
  http://opensource.org/licenses/bsd-license.php
 | 
						|
 | 
						|
  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | 
						|
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __PCD_INFO_H__
 | 
						|
#define __PCD_INFO_H__
 | 
						|
 | 
						|
extern EFI_GUID gGetPcdInfoProtocolGuid;
 | 
						|
 | 
						|
#define GET_PCD_INFO_PROTOCOL_GUID \
 | 
						|
  { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } }
 | 
						|
 | 
						|
///
 | 
						|
/// The forward declaration for GET_PCD_INFO_PROTOCOL.
 | 
						|
///
 | 
						|
typedef struct _GET_PCD_INFO_PROTOCOL  GET_PCD_INFO_PROTOCOL;
 | 
						|
 | 
						|
/**
 | 
						|
  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.
 | 
						|
 | 
						|
  @param[in]    TokenNumber The PCD token number.
 | 
						|
  @param[out]   PcdInfo     The returned information associated with the requested TokenNumber.
 | 
						|
 | 
						|
  @retval  EFI_SUCCESS      The PCD information was returned successfully
 | 
						|
  @retval  EFI_NOT_FOUND    The PCD service could not find the requested token number.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *GET_PCD_INFO_PROTOCOL_GET_INFO) (
 | 
						|
  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.
 | 
						|
 | 
						|
  @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[out]   PcdInfo     The returned information associated with the requested TokenNumber.
 | 
						|
 | 
						|
  @retval  EFI_SUCCESS      The PCD information was returned successfully
 | 
						|
  @retval  EFI_NOT_FOUND    The PCD service could not find the requested token number.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *GET_PCD_INFO_PROTOCOL_GET_INFO_EX) (
 | 
						|
  IN CONST  EFI_GUID        *Guid,
 | 
						|
  IN        UINTN           TokenNumber,
 | 
						|
  OUT       EFI_PCD_INFO    *PcdInfo
 | 
						|
);
 | 
						|
 | 
						|
/**
 | 
						|
  Retrieve the currently set SKU Id.
 | 
						|
 | 
						|
  @return   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.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
UINTN
 | 
						|
(EFIAPI *GET_PCD_INFO_PROTOCOL_GET_SKU) (
 | 
						|
  VOID
 | 
						|
);
 | 
						|
 | 
						|
///
 | 
						|
/// This is the PCD service to use when querying for some additional data that can be contained in the
 | 
						|
/// PCD database.
 | 
						|
///
 | 
						|
struct _GET_PCD_INFO_PROTOCOL {
 | 
						|
  ///
 | 
						|
  /// Retrieve additional information associated with a PCD.
 | 
						|
  ///
 | 
						|
  GET_PCD_INFO_PROTOCOL_GET_INFO             GetInfo;
 | 
						|
  GET_PCD_INFO_PROTOCOL_GET_INFO_EX          GetInfoEx;
 | 
						|
  ///
 | 
						|
  /// Retrieve the currently set SKU Id.
 | 
						|
  ///
 | 
						|
  GET_PCD_INFO_PROTOCOL_GET_SKU              GetSku;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
 |