Functions | |
VOID * | InternalHstiFindAip (IN UINT32 Role, IN CHAR16 *ImplementationID, OUT VOID **HstiData, OUT UINTN *HstiSize) |
BOOLEAN | InternalHstiIsValidTable (IN VOID *HstiData, IN UINTN HstiSize) |
EFI_STATUS EFIAPI | HstiLibSetTable (IN VOID *Hsti, IN UINTN HstiSize) |
EFI_STATUS EFIAPI | HstiLibGetTable (IN UINT32 Role, IN CHAR16 *ImplementationID, OUT VOID **Hsti, OUT UINTN *HstiSize) |
EFI_STATUS | InternalHstiRecordFeaturesVerified (IN UINT32 Role, IN CHAR16 *ImplementationID, IN UINT32 ByteIndex, IN UINT8 Bit, IN BOOLEAN Set) |
EFI_STATUS EFIAPI | HstiLibSetFeaturesVerified (IN UINT32 Role, IN CHAR16 *ImplementationID, IN UINT32 ByteIndex, IN UINT8 BitMask) |
EFI_STATUS EFIAPI | HstiLibClearFeaturesVerified (IN UINT32 Role, IN CHAR16 *ImplementationID, IN UINT32 ByteIndex, IN UINT8 BitMask) |
EFI_STATUS | InternalHstiRecordErrorString (IN UINT32 Role, IN CHAR16 *ImplementationID, IN CHAR16 *ErrorString, IN BOOLEAN Append) |
EFI_STATUS EFIAPI | HstiLibAppendErrorString (IN UINT32 Role, IN CHAR16 *ImplementationID, IN CHAR16 *ErrorString) |
EFI_STATUS EFIAPI | HstiLibSetErrorString (IN UINT32 Role, IN CHAR16 *ImplementationID, IN CHAR16 *ErrorString) |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
EFI_STATUS EFIAPI HstiLibAppendErrorString | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
IN CHAR16 * | ErrorString | |||
) |
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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
ErrorString | ErrorString of HSTI data. |
EFI_SUCCESS | The ErrorString of HSTI data is updated in AIP protocol. | |
EFI_NOT_STARTED | There is not HSTI table with the Role and ImplementationID published in system. | |
EFI_OUT_OF_RESOURCES | There is not enough system resource to update ErrorString. |
References InternalHstiRecordErrorString(), and TRUE.
EFI_STATUS EFIAPI HstiLibClearFeaturesVerified | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
ByteIndex | Byte index of FeaturesVerified of HSTI data. | |
BitMask | Bit mask of FeaturesVerified of HSTI data. |
EFI_SUCCESS | The FeaturesVerified of HSTI data updated in AIP protocol. | |
EFI_NOT_STARTED | There is not HSTI table with the Role and ImplementationID published in system. | |
EFI_UNSUPPORTED | The ByteIndex is invalid. |
References FALSE, and InternalHstiRecordFeaturesVerified().
EFI_STATUS EFIAPI HstiLibGetTable | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
OUT VOID ** | Hsti, | |||
OUT 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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
Hsti | HSTI data. This buffer is allocated by callee, and it is the responsibility of the caller to free it after using it. | |
HstiSize | HSTI size |
EFI_SUCCESS | The HSTI data in AIP protocol is returned. | |
EFI_NOT_FOUND | There is not HSTI table with the Role and ImplementationID published in system. |
References EFI_NOT_FOUND, EFI_SUCCESS, InternalHstiFindAip(), and NULL.
EFI_STATUS EFIAPI HstiLibSetErrorString | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
ErrorString | ErrorString of HSTI data. |
EFI_SUCCESS | The ErrorString of HSTI data is updated in AIP protocol. | |
EFI_NOT_STARTED | There is not HSTI table with the Role and ImplementationID published in system. | |
EFI_OUT_OF_RESOURCES | There is not enough system resource to update ErrorString. |
References FALSE, and InternalHstiRecordErrorString().
EFI_STATUS EFIAPI HstiLibSetFeaturesVerified | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
IN UINT32 | ByteIndex, | |||
IN UINT8 | BitMask | |||
) |
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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
ByteIndex | Byte index of FeaturesVerified of HSTI data. | |
BitMask | Bit mask of FeaturesVerified of HSTI data. |
EFI_SUCCESS | The FeaturesVerified of HSTI data updated in AIP protocol. | |
EFI_NOT_STARTED | There is not HSTI table with the Role and ImplementationID published in system. | |
EFI_UNSUPPORTED | The ByteIndex is invalid. |
References InternalHstiRecordFeaturesVerified(), and TRUE.
EFI_STATUS EFIAPI HstiLibSetTable | ( | IN VOID * | Hsti, | |
IN UINTN | HstiSize | |||
) |
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.
Hsti | HSTI data | |
HstiSize | HSTI size |
EFI_SUCCESS | The HSTI data is published in AIP protocol. | |
EFI_ALREADY_STARTED | There is already HSTI table with Role and ImplementationID published in system. | |
EFI_VOLUME_CORRUPTED | The input HSTI data does not follow HSTI specification. | |
EFI_OUT_OF_RESOURCES | There is not enough system resource to publish HSTI data in AIP protocol. |
References HSTI_AIP_PRIVATE_DATA::Aip, AllocateCopyPool(), AllocateZeroPool(), CopyMem(), EFI_ALREADY_STARTED, EFI_ERROR, EFI_OUT_OF_RESOURCES, EFI_VOLUME_CORRUPTED, FreePool(), gBS, gEfiAdapterInformationProtocolGuid, HSTI_AIP_PRIVATE_DATA::Hsti, HSTI_AIP_PRIVATE_SIGNATURE, HSTI_AIP_PRIVATE_DATA::HstiMaxSize, HSTI_AIP_PRIVATE_DATA::HstiSize, EFI_BOOT_SERVICES::InstallMultipleProtocolInterfaces, InternalHstiFindAip(), InternalHstiIsValidTable(), mAdapterInformationProtocol, NULL, PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE, HSTI_AIP_PRIVATE_DATA::Signature, and ZeroMem().
VOID* InternalHstiFindAip | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
OUT VOID ** | HstiData, | |||
OUT UINTN * | HstiSize | |||
) |
Find 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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
HstiData | HSTI data. This buffer is allocated by callee, and it is the responsibility of the caller to free it after using it. | |
HstiSize | HSTI size |
NULL There is not HSTI table with the Role and ImplementationID published in system.
References ByProtocol, CompareGuid(), EFI_ERROR, FreePool(), gAdapterInfoPlatformSecurityGuid, gBS, gEfiAdapterInformationProtocolGuid, _EFI_ADAPTER_INFORMATION_PROTOCOL::GetInformation, EFI_BOOT_SERVICES::HandleProtocol, ADAPTER_INFO_PLATFORM_SECURITY::ImplementationID, EFI_BOOT_SERVICES::LocateHandleBuffer, NULL, ADAPTER_INFO_PLATFORM_SECURITY::Role, StrCmp(), and VOID.
Referenced by HstiLibGetTable(), HstiLibSetTable(), InternalHstiRecordErrorString(), and InternalHstiRecordFeaturesVerified().
BOOLEAN InternalHstiIsValidTable | ( | IN VOID * | HstiData, | |
IN UINTN | HstiSize | |||
) |
Return if input HSTI data follows HSTI specification.
HstiData | HSTI data | |
HstiSize | HSTI size |
TRUE | HSTI data follows HSTI specification. | |
FALSE | HSTI data does not follow HSTI specification. |
References BIT0, CopyMem(), DEBUG, EFI_D_ERROR, FALSE, ADAPTER_INFO_PLATFORM_SECURITY::ImplementationID, NULL, PLATFORM_SECURITY_ROLE_IMPLEMENTOR_ODM, PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE, PLATFORM_SECURITY_VERSION_VNEXTCS, ADAPTER_INFO_PLATFORM_SECURITY::Role, ADAPTER_INFO_PLATFORM_SECURITY::SecurityFeaturesSize, TRUE, and ADAPTER_INFO_PLATFORM_SECURITY::Version.
Referenced by HstiAipSetInfo(), and HstiLibSetTable().
EFI_STATUS InternalHstiRecordErrorString | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
IN CHAR16 * | ErrorString, | |||
IN BOOLEAN | Append | |||
) |
Record 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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
ErrorString | ErrorString of HSTI data. | |
Append | TRUE means to append the ErrorString to HSTI table. FALSE means to set the ErrorString in HSTI table. |
EFI_SUCCESS | The ErrorString of HSTI data is published in AIP protocol. | |
EFI_NOT_STARTED | There is not HSTI table with the Role and ImplementationID published in system. | |
EFI_OUT_OF_RESOURCES | There is not enough system resource to update ErrorString. |
References AllocatePool(), CopyMem(), EFI_NOT_STARTED, EFI_OUT_OF_RESOURCES, gAdapterInfoPlatformSecurityGuid, InternalHstiFindAip(), NULL, _EFI_ADAPTER_INFORMATION_PROTOCOL::SetInformation, StrSize(), and VOID.
Referenced by HstiLibAppendErrorString(), and HstiLibSetErrorString().
EFI_STATUS InternalHstiRecordFeaturesVerified | ( | IN UINT32 | Role, | |
IN CHAR16 * | ImplementationID, | |||
IN UINT32 | ByteIndex, | |||
IN UINT8 | Bit, | |||
IN BOOLEAN | Set | |||
) |
Record 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.
Role | Role of HSTI data. | |
ImplementationID | ImplementationID of HSTI data. NULL means find the first one match Role. | |
ByteIndex | Byte index of FeaturesVerified of HSTI data. | |
BitMask | Bit mask of FeaturesVerified of HSTI data. | |
Set | TRUE means to set the FeaturesVerified bit. FALSE means to clear the FeaturesVerified bit. |
EFI_SUCCESS | The FeaturesVerified of HSTI data updated in AIP protocol. | |
EFI_NOT_STARTED | There is not HSTI table with the Role and ImplementationID published in system. | |
EFI_UNSUPPORTED | The ByteIndex is invalid. |
References EFI_NOT_STARTED, EFI_UNSUPPORTED, gAdapterInfoPlatformSecurityGuid, InternalHstiFindAip(), NULL, _EFI_ADAPTER_INFORMATION_PROTOCOL::SetInformation, and VOID.
Referenced by HstiLibClearFeaturesVerified(), and HstiLibSetFeaturesVerified().