9#ifndef _SMM_CPU_SERVICE_PROTOCOL_H_
10#define _SMM_CPU_SERVICE_PROTOCOL_H_
18#define EFI_SMM_CPU_SERVICE_PROTOCOL_GUID \
20 0x1d202cab, 0xc8ab, 0x4d5c, { 0x94, 0xf7, 0x3c, 0xfc, 0xc0, 0xd3, 0xd3, 0x35 } \
111 IN UINT64 ProcessorId,
201extern EFI_GUID gEfiSmmCpuServiceProtocolGuid;
207#define EDKII_SMM_CPU_RENDEZVOUS_PROTOCOL_GUID \
209 0xaa00d50b, 0x4911, 0x428f, { 0xb9, 0x1a, 0xa5, 0x9d, 0xdb, 0x13, 0xe2, 0x4c } \
228 IN BOOLEAN BlockingMode
235extern EFI_GUID gEdkiiSmmCpuRendezvousProtocolGuid;
VOID(EFIAPI * EFI_CPU_INTERRUPT_HANDLER)(IN CONST EFI_EXCEPTION_TYPE InterruptType, IN CONST EFI_SYSTEM_CONTEXT SystemContext)
EFI_STATUS(EFIAPI * EFI_SMM_GET_PROCESSOR_INFO)(IN CONST EFI_SMM_CPU_SERVICE_PROTOCOL *This, IN UINTN ProcessorNumber, OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer)
EFI_STATUS(EFIAPI * EFI_SMM_SWITCH_BSP)(IN CONST EFI_SMM_CPU_SERVICE_PROTOCOL *This, IN UINTN ProcessorNumber)
EFI_STATUS(EFIAPI * EFI_SMM_WHOAMI)(IN CONST EFI_SMM_CPU_SERVICE_PROTOCOL *This, OUT UINTN *ProcessorNumber)
EFI_STATUS(EFIAPI * EFI_SMM_REMOVE_PROCESSOR)(IN CONST EFI_SMM_CPU_SERVICE_PROTOCOL *This, IN UINTN ProcessorNumber)
EFI_STATUS(EFIAPI * EFI_SMM_ADD_PROCESSOR)(IN CONST EFI_SMM_CPU_SERVICE_PROTOCOL *This, IN UINT64 ProcessorId, OUT UINTN *ProcessorNumber)
EFI_STATUS(EFIAPI * EDKII_WAIT_FOR_ALL_PROCESSOR)(IN EDKII_SMM_CPU_RENDEZVOUS_PROTOCOL *This, IN BOOLEAN BlockingMode)
EFI_STATUS(EFIAPI * EFI_SMM_REGISTER_EXCEPTION_HANDLER)(IN EFI_SMM_CPU_SERVICE_PROTOCOL *This, IN EFI_EXCEPTION_TYPE ExceptionType, IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler)