/** @file | |
Provides services to create, get and update HSTI table in AIP protocol. | |
Copyright (c) 2015, 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 __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 |