/* Internal worker function that transfers control to an enabled periodic SMI handler on the specified logical CPU. This worker function is only called using the SMM Services Table function SmmStartupThisAp() to execute the periodic SMI handler on a logical CPU that is different than the one that is running the SMM Foundation. When the periodic SMI handler returns, a lock is released to notify the CPU that is running the SMM Foundation that the periodic SMI handler execution has finished its execution. */
VOID EFIAPI PeriodicSmiDispatchFunctionWithLock(IN OUT VOID *Buffer)
/* Internal worker function that transfers control to an enabled periodic SMI handler on the specified logical CPU. This worker function is only called using the SMM Services Table function SmmStartupThisAp() to execute the periodic SMI handler on a logical CPU that is different than the one that is running the SMM Foundation. When the periodic SMI handler returns, a lock is released to notify the CPU that is running the SMM Foundation that the periodic SMI handler execution has finished its execution. */
VOID EFIAPI PeriodicSmiDispatchFunctionWithLock(IN OUT VOID *Buffer)
{
  PERIODIC_SMI_LIBRARY_HANDLER_CONTEXT  *PeriodicSmiLibraryHandler;
  PeriodicSmiLibraryHandler = (PERIODIC_SMI_LIBRARY_HANDLER_CONTEXT  *)Buffer;
  PeriodicSmiDispatchFunctionOnCpu (PeriodicSmiLibraryHandler);
  ReleaseSpinLock (&PeriodicSmiLibraryHandler->DispatchLock);
}