39#ifndef _MP_SERVICE_PROTOCOL_H_
40#define _MP_SERVICE_PROTOCOL_H_
48#define EFI_MP_SERVICES_PROTOCOL_GUID \
50 0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} \
56#define CPU_V2_EXTENDED_TOPOLOGY BIT24
66#define END_OF_CPU_LIST 0xffffffff
73#define PROCESSOR_AS_BSP_BIT 0x00000001
80#define PROCESSOR_ENABLED_BIT 0x00000002
87#define PROCESSOR_HEALTH_STATUS_BIT 0x00000004
229 OUT UINTN *NumberOfEnabledProcessors
409 IN UINTN TimeoutInMicroSeconds,
507 IN UINTN TimeoutInMicroseconds,
unsigned char BOOLEAN
Logical Boolean.
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
#define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_WHOAMI)(IN EFI_MP_SERVICES_PROTOCOL *This, OUT UINTN *ProcessorNumber)
This return the handle number for the calling processor.
struct _EFI_MP_SERVICES_PROTOCOL EFI_MP_SERVICES_PROTOCOL
Forward declaration for the EFI_MP_SERVICES_PROTOCOL.
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_ENABLEDISABLEAP)(IN EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN BOOLEAN EnableAP, IN UINT32 *HealthFlag OPTIONAL)
This service lets the caller enable or disable an AP from this point onward.
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_STARTUP_THIS_AP)(IN EFI_MP_SERVICES_PROTOCOL *This, IN EFI_AP_PROCEDURE Procedure, IN UINTN ProcessorNumber, IN EFI_EVENT WaitEvent OPTIONAL, IN UINTN TimeoutInMicroseconds, IN VOID *ProcedureArgument OPTIONAL, OUT BOOLEAN *Finished OPTIONAL)
This service lets the caller get one enabled AP to execute a caller-provided function.
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_STARTUP_ALL_APS)(IN EFI_MP_SERVICES_PROTOCOL *This, IN EFI_AP_PROCEDURE Procedure, IN BOOLEAN SingleThread, IN EFI_EVENT WaitEvent OPTIONAL, IN UINTN TimeoutInMicroSeconds, IN VOID *ProcedureArgument OPTIONAL, OUT UINTN **FailedCpuList OPTIONAL)
This service executes a caller provided function on all enabled APs.
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_SWITCH_BSP)(IN EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN BOOLEAN EnableOldBSP)
This service switches the requested AP to be the BSP from that point onward.
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS)(IN EFI_MP_SERVICES_PROTOCOL *This, OUT UINTN *NumberOfProcessors, OUT UINTN *NumberOfEnabledProcessors)
This service retrieves the number of logical processor in the platform and the number of those logica...
EFI_GUID gEfiMpServiceProtocolGuid
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_GET_PROCESSOR_INFO)(IN EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer)
Gets detailed MP-related information on the requested processor at the instant this call is made.
VOID(EFIAPI * EFI_AP_PROCEDURE)(IN OUT VOID *Buffer)
The function prototype for invoking a function on an Application Processor.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Structure that defines the 6-level physical location of the processor.
UINT32 Module
Module Zero-based physical module number within package of the processor.
UINT32 Die
Die Zero-based physical die number within tile of the processor.
UINT32 Core
Core Zero-based physical core number within die of the processor.
UINT32 Package
Package Zero-based physical package number that identifies the cartridge of the processor.
UINT32 Tile
Tile Zero-based physical tile number within module of the processor.
UINT32 Thread
Thread Zero-based logical thread number within core of the processor.
Structure that describes the pyhiscal location of a logical CPU.
UINT32 Thread
Zero-based logical thread number within core of the processor.
UINT32 Core
Zero-based physical core number within package of the processor.
UINT32 Package
Zero-based physical package number that identifies the cartridge of the processor.
When installed, the MP Services Protocol produces a collection of services that are needed for MP man...
EFI_MP_SERVICES_WHOAMI WhoAmI
EFI_MP_SERVICES_ENABLEDISABLEAP EnableDisableAP
EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS GetNumberOfProcessors
EFI_MP_SERVICES_STARTUP_ALL_APS StartupAllAPs
EFI_MP_SERVICES_GET_PROCESSOR_INFO GetProcessorInfo
EFI_MP_SERVICES_STARTUP_THIS_AP StartupThisAP
EFI_MP_SERVICES_SWITCH_BSP SwitchBSP