CloverBootloader/MdePkg/Include/Protocol/PcdInfo.h
2022-04-26 00:55:56 +02:00

103 lines
3.4 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 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol was introduced in PI Specification 1.2.
**/
#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) (
CONST_EFI_GUID_PTR_T 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