/** @file PEI TBT Task Dispatch library Header file Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __PEI_TBT_TASK_DISPATCH_LIB_H__ #define __PEI_TBT_TASK_DISPATCH_LIB_H__ #include #include #include #include #include #include #include #include #include #include typedef EFI_STATUS (EFIAPI *TBT_TASK) ( PEI_TBT_POLICY *PeiTbtConfig ); typedef enum { TBT_NULL, ///< All policy flags turned off. TBT_NORMAL = (1 << 0), ///< Execute TBT function on cold reset. TBT_S3 = (1 << 1), ///< Execute TBT function on S3 exit. TBT_S4 = (1 << 2), ///< Execute TBT function on S4 exit. TBT_ALL = MAX_UINTN ///< Execute TBT function always. } TBT_BOOT_MODE; typedef struct { TBT_TASK TbtTask; ///< Ptr to function to execute, with parameter list. TBT_BOOT_MODE TbtBootModeFlag; ///< Call table base on TbtBootModeFlag CHAR8 *String; ///< Output string describing this task. } TBT_CALL_TABLE_ENTRY; /** Covert the current EFI_BOOT_MODE to TBT_BOOT_MODE **/ TBT_BOOT_MODE TbtGetBootMode ( VOID ); /** TbtTaskDistpach: Dispatch the TBT tasks according to TBT_CALL_TABLE_ENTRY @param[in] TBT_CALL_TABLE_ENTRY TbtCallTable **/ VOID TbtTaskDistpach ( IN TBT_CALL_TABLE_ENTRY *TbtCallTable ); #endif