/** @file This file defines MM_CPU_SYNC_CONFIG which controls how BSP synchronizes with APs in x86 SMM environment. Copyright (c) 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef MM_CPU_SYNC_CONFIG_H_ #define MM_CPU_SYNC_CONFIG_H_ /// /// The GUID of the MmCpuSyncConfig GUIDed HOB. /// #define MM_CPU_SYNC_CONFIG_HOB_GUID \ { \ 0x8b90bd26, 0xe4f9, 0x45c2, {0x92, 0xa2, 0x9e, 0xac, 0xe6, 0x0e, 0x9d, 0xcc} \ } typedef enum { MmCpuSyncModeTradition, MmCpuSyncModeRelaxedAp, MmCpuSyncModeMax } MM_CPU_SYNC_MODE; /// /// The structure defines the data layout of the MmCpuSyncConfig GUIDed HOB. /// typedef struct { /// /// 0: Traditional CPU synchronization method is used when processing an SMI. /// 1: Relaxed CPU synchronization method is used when processing an SMI. /// MM_CPU_SYNC_MODE RelaxedApMode; /// /// The 1st BSP/AP synchronization timeout value in SMM. /// The value shall match with the PcdCpuSmmApSyncTimeout. /// UINT64 Timeout; /// /// The 2nd BSP/AP synchronization timeout value in SMM. /// The value shall match with the PcdCpuSmmApSyncTimeout2. /// UINT64 Timeout2; } MM_CPU_SYNC_CONFIG; extern EFI_GUID gMmCpuSyncConfigHobGuid; #endif