mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-31 06:39:42 +00:00 
			
		
		
		
	 9344f09215
			
		
	
	
		9344f09215
		
	
	
	
	
		
			
			https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			153 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @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
 |