REF? https://bugzilla.tianocore.org/show_bug.cgi?id=3912 UefiCpuPkg define a new Protocol with the new services SmmWaitForAllProcessor(), which can be used by SMI handler to optionally wait for other APs to complete SMM rendezvous in relaxed AP mode. VariableSmm and VariableStandaloneMM driver in MdeModulePkg need to use this services but MdeModulePkg can't depend on UefiCpuPkg. Thus, the solution is moving SmmCpuRendezvouslib.h from UefiCpuPkg to MdePkg and creating SmmCpuRendezvousLib NullLib version implementation in MdePkg as dependency for the pkg that can't depend on UefiCpuPkg. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael Kubacki <mikuback@linux.microsoft.com> Cc: Siyuan Fu <siyuan.fu@intel.com> Signed-off-by: Zhihao Li <zhihao.li@intel.com> Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
28 lines
601 B
C
28 lines
601 B
C
/** @file
|
|
SMM CPU Rendezvous library header file.
|
|
|
|
Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef SMM_CPU_RENDEZVOUS_H_
|
|
#define SMM_CPU_RENDEZVOUS_H_
|
|
|
|
/**
|
|
This routine wait for all AP processors to arrive in SMM.
|
|
|
|
@param[in] BlockingMode Blocking mode or non-blocking mode.
|
|
|
|
@retval EFI_SUCCESS All processors checked in to SMM.
|
|
@retval EFI_TIMEOUT Wait for all APs until timeout.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
SmmWaitForAllProcessor (
|
|
IN BOOLEAN BlockingMode
|
|
);
|
|
|
|
#endif
|