TianoCore EDK2 master
Loading...
Searching...
No Matches
HstiDxe.c File Reference
#include "HstiDxe.h"

Go to the source code of this file.

Functions

VOID * InternalHstiFindAip (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, OUT VOID **HstiData OPTIONAL, OUT UINTN *HstiSize OPTIONAL)
 
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 OPTIONAL, OUT VOID **Hsti, OUT UINTN *HstiSize)
 
EFI_STATUS InternalHstiRecordFeaturesVerified (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, IN UINT32 ByteIndex, IN UINT8 Bit, IN BOOLEAN Set)
 
EFI_STATUS EFIAPI HstiLibSetFeaturesVerified (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, IN UINT32 ByteIndex, IN UINT8 BitMask)
 
EFI_STATUS EFIAPI HstiLibClearFeaturesVerified (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, IN UINT32 ByteIndex, IN UINT8 BitMask)
 
EFI_STATUS InternalHstiRecordErrorString (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, IN CHAR16 *ErrorString, IN BOOLEAN Append)
 
EFI_STATUS EFIAPI HstiLibAppendErrorString (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, IN CHAR16 *ErrorString)
 
EFI_STATUS EFIAPI HstiLibSetErrorString (IN UINT32 Role, IN CHAR16 *ImplementationID OPTIONAL, IN CHAR16 *ErrorString)
 

Detailed Description

Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file HstiDxe.c.

Function Documentation

◆ HstiLibAppendErrorString()

EFI_STATUS EFIAPI HstiLibAppendErrorString ( IN UINT32  Role,
IN CHAR16 *ImplementationID  OPTIONAL,
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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
ErrorStringErrorString of HSTI data.
Return values
EFI_SUCCESSThe ErrorString of HSTI data is updated in AIP protocol.
EFI_NOT_STARTEDThere is not HSTI table with the Role and ImplementationID published in system.
EFI_OUT_OF_RESOURCESThere is not enough system resource to update ErrorString.

Definition at line 579 of file HstiDxe.c.

◆ HstiLibClearFeaturesVerified()

EFI_STATUS EFIAPI HstiLibClearFeaturesVerified ( 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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
ByteIndexByte index of FeaturesVerified of HSTI data.
BitMaskBit mask of FeaturesVerified of HSTI data.
Return values
EFI_SUCCESSThe FeaturesVerified of HSTI data updated in AIP protocol.
EFI_NOT_STARTEDThere is not HSTI table with the Role and ImplementationID published in system.
EFI_UNSUPPORTEDThe ByteIndex is invalid.

Definition at line 481 of file HstiDxe.c.

◆ HstiLibGetTable()

EFI_STATUS EFIAPI HstiLibGetTable ( IN UINT32  Role,
IN CHAR16 *ImplementationID  OPTIONAL,
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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
HstiHSTI data. This buffer is allocated by callee, and it is the responsibility of the caller to free it after using it.
HstiSizeHSTI size
Return values
EFI_SUCCESSThe HSTI data in AIP protocol is returned.
EFI_NOT_FOUNDThere is not HSTI table with the Role and ImplementationID published in system.

Definition at line 355 of file HstiDxe.c.

◆ HstiLibSetErrorString()

EFI_STATUS EFIAPI HstiLibSetErrorString ( 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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
ErrorStringErrorString of HSTI data.
Return values
EFI_SUCCESSThe ErrorString of HSTI data is updated in AIP protocol.
EFI_NOT_STARTEDThere is not HSTI table with the Role and ImplementationID published in system.
EFI_OUT_OF_RESOURCESThere is not enough system resource to update ErrorString.

Definition at line 609 of file HstiDxe.c.

◆ HstiLibSetFeaturesVerified()

EFI_STATUS EFIAPI HstiLibSetFeaturesVerified ( IN UINT32  Role,
IN CHAR16 *ImplementationID  OPTIONAL,
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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
ByteIndexByte index of FeaturesVerified of HSTI data.
BitMaskBit mask of FeaturesVerified of HSTI data.
Return values
EFI_SUCCESSThe FeaturesVerified of HSTI data updated in AIP protocol.
EFI_NOT_STARTEDThere is not HSTI table with the Role and ImplementationID published in system.
EFI_UNSUPPORTEDThe ByteIndex is invalid.

Definition at line 448 of file HstiDxe.c.

◆ HstiLibSetTable()

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.

Parameters
HstiHSTI data
HstiSizeHSTI size
Return values
EFI_SUCCESSThe HSTI data is published in AIP protocol.
EFI_ALREADY_STARTEDThere is already HSTI table with Role and ImplementationID published in system.
EFI_VOLUME_CORRUPTEDThe input HSTI data does not follow HSTI specification.
EFI_OUT_OF_RESOURCESThere is not enough system resource to publish HSTI data in AIP protocol.

Definition at line 275 of file HstiDxe.c.

◆ InternalHstiFindAip()

VOID * InternalHstiFindAip ( IN UINT32  Role,
IN CHAR16 *ImplementationID  OPTIONAL,
OUT VOID **HstiData  OPTIONAL,
OUT UINTN *HstiSize  OPTIONAL 
)

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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
HstiDataHSTI data. This buffer is allocated by callee, and it is the responsibility of the caller to free it after using it.
HstiSizeHSTI size
Returns
Aip The AIP protocol having this HSTI.
NULL There is not HSTI table with the Role and ImplementationID published in system.

Definition at line 27 of file HstiDxe.c.

◆ InternalHstiIsValidTable()

BOOLEAN InternalHstiIsValidTable ( IN VOID *  HstiData,
IN UINTN  HstiSize 
)

Return if input HSTI data follows HSTI specification.

Parameters
HstiDataHSTI data
HstiSizeHSTI size
Return values
TRUEHSTI data follows HSTI specification.
FALSEHSTI data does not follow HSTI specification.

Definition at line 151 of file HstiDxe.c.

◆ InternalHstiRecordErrorString()

EFI_STATUS InternalHstiRecordErrorString ( IN UINT32  Role,
IN CHAR16 *ImplementationID  OPTIONAL,
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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
ErrorStringErrorString of HSTI data.
AppendTRUE means to append the ErrorString to HSTI table. FALSE means to set the ErrorString in HSTI table.
Return values
EFI_SUCCESSThe ErrorString of HSTI data is published in AIP protocol.
EFI_NOT_STARTEDThere is not HSTI table with the Role and ImplementationID published in system.
EFI_OUT_OF_RESOURCESThere is not enough system resource to update ErrorString.

Definition at line 514 of file HstiDxe.c.

◆ InternalHstiRecordFeaturesVerified()

EFI_STATUS InternalHstiRecordFeaturesVerified ( IN UINT32  Role,
IN CHAR16 *ImplementationID  OPTIONAL,
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.

Parameters
RoleRole of HSTI data.
ImplementationIDImplementationID of HSTI data. NULL means find the first one match Role.
ByteIndexByte index of FeaturesVerified of HSTI data.
BitMaskBit mask of FeaturesVerified of HSTI data.
SetTRUE means to set the FeaturesVerified bit. FALSE means to clear the FeaturesVerified bit.
Return values
EFI_SUCCESSThe FeaturesVerified of HSTI data updated in AIP protocol.
EFI_NOT_STARTEDThere is not HSTI table with the Role and ImplementationID published in system.
EFI_UNSUPPORTEDThe ByteIndex is invalid.

Definition at line 390 of file HstiDxe.c.