REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Definition for the CPU_HOT_EJECT_DATA structure, which shares
 | 
						|
  CPU hot-eject state between OVMF's SmmCpuFeaturesLib instance in
 | 
						|
  PiSmmCpuDxeSmm, and CpuHotplugSmm.
 | 
						|
 | 
						|
  CPU_HOT_EJECT_DATA is allocated in SMRAM, and pointed-to by
 | 
						|
  PcdCpuHotEjectDataAddress.
 | 
						|
 | 
						|
  PcdCpuHotEjectDataAddress is valid when SMM_REQUIRE is TRUE
 | 
						|
  and PcdCpuMaxLogicalProcessorNumber > 1.
 | 
						|
 | 
						|
  Copyright (C) 2021, Oracle Corporation.
 | 
						|
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef CPU_HOT_EJECT_DATA_H_
 | 
						|
#define CPU_HOT_EJECT_DATA_H_
 | 
						|
 | 
						|
/**
 | 
						|
  CPU Hot-eject handler, called from SmmCpuFeaturesRendezvousExit()
 | 
						|
  on each CPU at exit from SMM.
 | 
						|
 | 
						|
  @param[in] ProcessorNum      ProcessorNum denotes the CPU exiting SMM,
 | 
						|
                               and will be used as an index into
 | 
						|
                               CPU_HOT_EJECT_DATA->QemuSelectorMap. It is
 | 
						|
                               identical to the processor handle in
 | 
						|
                               EFI_SMM_CPU_SERVICE_PROTOCOL.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
VOID
 | 
						|
(EFIAPI *CPU_HOT_EJECT_HANDLER)(
 | 
						|
  IN UINTN  ProcessorNum
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// CPU_EJECT_QEMU_SELECTOR_INVALID marks CPUs not being ejected in
 | 
						|
// CPU_HOT_EJECT_DATA->QemuSelectorMap.
 | 
						|
//
 | 
						|
// QEMU CPU Selector is UINT32, so we choose an invalid value larger
 | 
						|
// than that type.
 | 
						|
//
 | 
						|
#define CPU_EJECT_QEMU_SELECTOR_INVALID  (MAX_UINT64)
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  //
 | 
						|
  // Maps ProcessorNum -> QemuSelector for pending hot-ejects
 | 
						|
  //
 | 
						|
  volatile UINT64                   *QemuSelectorMap;
 | 
						|
  //
 | 
						|
  // Handler to do the CPU ejection
 | 
						|
  //
 | 
						|
  volatile CPU_HOT_EJECT_HANDLER    Handler;
 | 
						|
  //
 | 
						|
  // Entries in the QemuSelectorMap
 | 
						|
  //
 | 
						|
  UINT32                            ArrayLength;
 | 
						|
} CPU_HOT_EJECT_DATA;
 | 
						|
 | 
						|
#endif // CPU_HOT_EJECT_DATA_H_
 |