| /** @file | |
| Provides services to create, get and update HSTI table in AIP protocol. | |
| Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __HSTI_LIB_H__ | |
| #define __HSTI_LIB_H__ | |
| /** | |
| Publish HSTI table in AIP protocol. | |
| One system should have only one PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE. | |
| If the Role is NOT PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE, | |
| SecurityFeaturesRequired field will be ignored. | |
| @param Hsti HSTI data | |
| @param HstiSize HSTI size | |
| @retval EFI_SUCCESS The HSTI data is published in AIP protocol. | |
| @retval EFI_ALREADY_STARTED There is already HSTI table with Role and ImplementationID published in system. | |
| @retval EFI_VOLUME_CORRUPTED The input HSTI data does not follow HSTI specification. | |
| @retval EFI_OUT_OF_RESOURCES There is not enough system resource to publish HSTI data in AIP protocol. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HstiLibSetTable ( | |
| IN VOID *Hsti, | |
| IN UINTN HstiSize | |
| ); | |
| /** | |
| Search HSTI table in AIP protocol, and return the data. | |
| This API will return the HSTI table with indicated Role and ImplementationID, | |
| NULL ImplementationID means to find the first HSTI table with indicated Role. | |
| @param Role Role of HSTI data. | |
| @param ImplementationID ImplementationID of HSTI data. | |
| NULL means find the first one match Role. | |
| @param Hsti HSTI data. This buffer is allocated by callee, and it | |
| is the responsibility of the caller to free it after | |
| using it. | |
| @param HstiSize HSTI size | |
| @retval EFI_SUCCESS The HSTI data in AIP protocol is returned. | |
| @retval EFI_NOT_FOUND There is not HSTI table with the Role and ImplementationID published in system. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HstiLibGetTable ( | |
| IN UINT32 Role, | |
| IN CHAR16 *ImplementationID OPTIONAL, | |
| OUT VOID **Hsti, | |
| OUT UINTN *HstiSize | |
| ); | |
| /** | |
| Set FeaturesVerified in published HSTI table. | |
| This API will update the HSTI table with indicated Role and ImplementationID, | |
| NULL ImplementationID means to find the first HSTI table with indicated Role. | |
| @param Role Role of HSTI data. | |
| @param ImplementationID ImplementationID of HSTI data. | |
| NULL means find the first one match Role. | |
| @param ByteIndex Byte index of FeaturesVerified of HSTI data. | |
| @param BitMask Bit mask of FeaturesVerified of HSTI data. | |
| @retval EFI_SUCCESS The FeaturesVerified of HSTI data updated in AIP protocol. | |
| @retval EFI_NOT_STARTED There is not HSTI table with the Role and ImplementationID published in system. | |
| @retval EFI_UNSUPPORTED The ByteIndex is invalid. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HstiLibSetFeaturesVerified ( | |
| IN UINT32 Role, | |
| IN CHAR16 *ImplementationID OPTIONAL, | |
| IN UINT32 ByteIndex, | |
| IN UINT8 BitMask | |
| ); | |
| /** | |
| Clear FeaturesVerified in published HSTI table. | |
| This API will update the HSTI table with indicated Role and ImplementationID, | |
| NULL ImplementationID means to find the first HSTI table with indicated Role. | |
| @param Role Role of HSTI data. | |
| @param ImplementationID ImplementationID of HSTI data. | |
| NULL means find the first one match Role. | |
| @param ByteIndex Byte index of FeaturesVerified of HSTI data. | |
| @param BitMask Bit mask of FeaturesVerified of HSTI data. | |
| @retval EFI_SUCCESS The FeaturesVerified of HSTI data updated in AIP protocol. | |
| @retval EFI_NOT_STARTED There is not HSTI table with the Role and ImplementationID published in system. | |
| @retval EFI_UNSUPPORTED The ByteIndex is invalid. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HstiLibClearFeaturesVerified ( | |
| IN UINT32 Role, | |
| IN CHAR16 *ImplementationID OPTIONAL, | |
| IN UINT32 ByteIndex, | |
| IN UINT8 BitMask | |
| ); | |
| /** | |
| Append ErrorString in published HSTI table. | |
| This API will update the HSTI table with indicated Role and ImplementationID, | |
| NULL ImplementationID means to find the first HSTI table with indicated Role. | |
| @param Role Role of HSTI data. | |
| @param ImplementationID ImplementationID of HSTI data. | |
| NULL means find the first one match Role. | |
| @param ErrorString ErrorString of HSTI data. | |
| @retval EFI_SUCCESS The ErrorString of HSTI data is updated in AIP protocol. | |
| @retval EFI_NOT_STARTED There is not HSTI table with the Role and ImplementationID published in system. | |
| @retval EFI_OUT_OF_RESOURCES There is not enough system resource to update ErrorString. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HstiLibAppendErrorString ( | |
| IN UINT32 Role, | |
| IN CHAR16 *ImplementationID OPTIONAL, | |
| IN CHAR16 *ErrorString | |
| ); | |
| /** | |
| Set a new ErrorString in published HSTI table. | |
| This API will update the HSTI table with indicated Role and ImplementationID, | |
| NULL ImplementationID means to find the first HSTI table with indicated Role. | |
| @param Role Role of HSTI data. | |
| @param ImplementationID ImplementationID of HSTI data. | |
| NULL means find the first one match Role. | |
| @param ErrorString ErrorString of HSTI data. | |
| @retval EFI_SUCCESS The ErrorString of HSTI data is updated in AIP protocol. | |
| @retval EFI_NOT_STARTED There is not HSTI table with the Role and ImplementationID published in system. | |
| @retval EFI_OUT_OF_RESOURCES There is not enough system resource to update ErrorString. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HstiLibSetErrorString ( | |
| IN UINT32 Role, | |
| IN CHAR16 *ImplementationID OPTIONAL, | |
| IN CHAR16 *ErrorString | |
| ); | |
| #endif |