/** @file Header file for PchPcrLib. Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCH_PCR_LIB_H_ #define _PCH_PCR_LIB_H_ #include /** Read PCR register. It returns PCR register and size in 4bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of this Port ID @param[out] OutData Buffer of Output Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrRead32 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, OUT UINT32 *OutData ); /** Read PCR register. It returns PCR register and size in 2bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of this Port ID @param[out] OutData Buffer of Output Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrRead16 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, OUT UINT16 *OutData ); /** Read PCR register. It returns PCR register and size in 1bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of this Port ID @param[out] OutData Buffer of Output Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrRead8 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, OUT UINT8 *OutData ); /** Write PCR register. It programs PCR register and size in 4bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of Port ID. @param[in] InData Input Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrWrite32 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, IN UINT32 InData ); /** Write PCR register. It programs PCR register and size in 2bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of Port ID. @param[in] InData Input Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrWrite16 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, IN UINT16 InData ); /** Write PCR register. It programs PCR register and size in 1bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of Port ID. @param[in] InData Input Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrWrite8 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, IN UINT8 InData ); /** Write PCR register. It programs PCR register and size in 4bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of Port ID. @param[in] AndData AND Data. Must be the same size as Size parameter. @param[in] OrData OR Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrAndThenOr32 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, IN UINT32 AndData, IN UINT32 OrData ); /** Write PCR register. It programs PCR register and size in 2bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of Port ID. @param[in] AndData AND Data. Must be the same size as Size parameter. @param[in] OrData OR Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrAndThenOr16 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, IN UINT16 AndData, IN UINT16 OrData ); /** Write PCR register. It programs PCR register and size in 1bytes. The Offset should not exceed 0xFFFF and must be aligned with size. @param[in] Pid Port ID @param[in] Offset Register offset of Port ID. @param[in] AndData AND Data. Must be the same size as Size parameter. @param[in] OrData OR Data. Must be the same size as Size parameter. @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER Invalid offset passed. **/ EFI_STATUS PchPcrAndThenOr8 ( IN PCH_SBI_PID Pid, IN UINT16 Offset, IN UINT8 AndData, IN UINT8 OrData ); #endif // _PCH_PCR_LIB_H_