47#ifndef _FRAMEWORK_MP_SERVICE_PROTOCOL_H_
48#define _FRAMEWORK_MP_SERVICE_PROTOCOL_H_
53#define FRAMEWORK_EFI_MP_SERVICES_PROTOCOL_GUID \
55 0xf33261e7, 0x23cb, 0x11d5, {0xbd, 0x5c, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} \
66#define DELIVERY_MODE_FIXED 0x0
71#define DELIVERY_MODE_LOWEST_PRIORITY 0x1
76#define DELIVERY_MODE_SMI 0x2
81#define DELIVERY_MODE_REMOTE_READ 0x3
86#define DELIVERY_MODE_NMI 0x4
91#define DELIVERY_MODE_INIT 0x5
96#define DELIVERY_MODE_SIPI 0x6
101#define DELIVERY_MODE_MAX 0x7
106#define EFI_MP_HEALTH_FLAGS_STATUS_HEALTHY 0x0
111#define EFI_MP_HEALTH_FLAGS_STATUS_PERFORMANCE_RESTRICTED 0x1
116#define EFI_MP_HEALTH_FLAGS_STATUS_FUNCTIONALLY_RESTRICTED 0x2
291 OUT UINTN *NumberOfCPUs OPTIONAL,
292 OUT UINTN *MaximumNumberOfCPUs OPTIONAL,
293 OUT UINTN *NumberOfEnabledCPUs OPTIONAL,
294 OUT UINTN *RendezvousIntNumber OPTIONAL,
295 OUT UINTN *RendezvousProcLength OPTIONAL
344 IN UINTN ProcessorNumber,
345 IN OUT UINTN *BufferLength,
463 IN BOOLEAN SingleThread,
464 IN EFI_EVENT WaitEvent OPTIONAL,
465 IN UINTN TimeoutInMicroSecs,
466 IN VOID *ProcArguments OPTIONAL,
467 OUT UINTN *FailedCPUList OPTIONAL
537 IN UINTN ProcessorNumber,
538 IN EFI_EVENT WaitEvent OPTIONAL,
539 IN UINTN TimeoutInMicroSecs,
540 IN OUT VOID *ProcArguments OPTIONAL
572 IN UINTN ProcessorNumber,
573 IN BOOLEAN EnableOldBSP
607 IN UINTN ProcessorNumber,
608 IN UINTN VectorNumber,
609 IN UINTN DeliveryMode
642 IN UINTN ProcessorNumber,
643 IN BOOLEAN NewAPState,
668 OUT UINTN *ProcessorNumber
VOID(EFIAPI * EFI_AP_PROCEDURE)(IN OUT VOID *Buffer)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_STARTUP_THIS_AP)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, IN FRAMEWORK_EFI_AP_PROCEDURE Procedure, IN UINTN ProcessorNumber, IN EFI_EVENT WaitEvent OPTIONAL, IN UINTN TimeoutInMicroSecs, IN OUT VOID *ProcArguments OPTIONAL)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_STARTUP_ALL_APS)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, IN FRAMEWORK_EFI_AP_PROCEDURE Procedure, IN BOOLEAN SingleThread, IN EFI_EVENT WaitEvent OPTIONAL, IN UINTN TimeoutInMicroSecs, IN VOID *ProcArguments OPTIONAL, OUT UINTN *FailedCPUList OPTIONAL)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_GET_PROCESSOR_CONTEXT)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN OUT UINTN *BufferLength, OUT EFI_MP_PROC_CONTEXT *ProcessorContextBuffer)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_GET_GENERAL_MP_INFO)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, OUT UINTN *NumberOfCPUs OPTIONAL, OUT UINTN *MaximumNumberOfCPUs OPTIONAL, OUT UINTN *NumberOfEnabledCPUs OPTIONAL, OUT UINTN *RendezvousIntNumber OPTIONAL, OUT UINTN *RendezvousProcLength OPTIONAL)
EFI_GUID gFrameworkEfiMpServiceProtocolGuid
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_SEND_IPI)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN UINTN VectorNumber, IN UINTN DeliveryMode)
VOID(EFIAPI * FRAMEWORK_EFI_AP_PROCEDURE)(IN VOID *Buffer)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_WHOAMI)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, OUT UINTN *ProcessorNumber)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_ENABLEDISABLEAP)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN BOOLEAN NewAPState, IN EFI_MP_HEALTH *HealthState OPTIONAL)
@ EfiCpuDesignationMaximum
@ EfiCpuAP
The CPU is an AP (Application Processor).
@ EfiCpuBSP
The CPU is the BSP (Boot-Strap Processor).
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_MP_SERVICES_SWITCH_BSP)(IN FRAMEWORK_EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN BOOLEAN EnableOldBSP)
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]
FRAMEWORK_EFI_MP_SERVICES_SWITCH_BSP SwitchBSP
FRAMEWORK_EFI_MP_SERVICES_WHOAMI WhoAmI
FRAMEWORK_EFI_MP_SERVICES_SEND_IPI SendIPI
FRAMEWORK_EFI_MP_SERVICES_STARTUP_ALL_APS StartupAllAPs
FRAMEWORK_EFI_MP_SERVICES_STARTUP_THIS_AP StartupThisAP
FRAMEWORK_EFI_MP_SERVICES_GET_GENERAL_MP_INFO GetGeneralMPInfo
FRAMEWORK_EFI_MP_SERVICES_GET_PROCESSOR_CONTEXT GetProcessorContext
FRAMEWORK_EFI_MP_SERVICES_ENABLEDISABLEAP EnableDisableAP
EFI_MP_HEALTH_FLAGS Flags
UINT64 ProcessorPALCompatibilityFlags
EFI_CPU_DESIGNATION Designation
UINT32 MiscFeaturesUnavailable
UINT32 Ia32ExecutionUnavailable
UINT32 FloatingPointUnavailable
UINT32 VirtualMemoryUnavailable