TianoCore EDK2 master
MpService.h
Go to the documentation of this file.
1
39#ifndef _MP_SERVICE_PROTOCOL_H_
40#define _MP_SERVICE_PROTOCOL_H_
41
45#define EFI_MP_SERVICES_PROTOCOL_GUID \
46 { \
47 0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} \
48 }
49
53#define CPU_V2_EXTENDED_TOPOLOGY BIT24
54
59
63#define END_OF_CPU_LIST 0xffffffff
64
70#define PROCESSOR_AS_BSP_BIT 0x00000001
71
77#define PROCESSOR_ENABLED_BIT 0x00000002
78
84#define PROCESSOR_HEALTH_STATUS_BIT 0x00000004
85
89typedef struct {
93 UINT32 Package;
97 UINT32 Core;
101 UINT32 Thread;
103
107typedef struct {
111 UINT32 Package;
115 UINT32 Module;
119 UINT32 Tile;
123 UINT32 Die;
127 UINT32 Core;
131 UINT32 Thread;
133
134typedef union {
142
146typedef struct {
184
221typedef
225 OUT UINTN *NumberOfProcessors,
226 OUT UINTN *NumberOfEnabledProcessors
227 );
228
255typedef
259 IN UINTN ProcessorNumber,
260 OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer
261 );
262
399typedef
403 IN EFI_AP_PROCEDURE Procedure,
404 IN BOOLEAN SingleThread,
405 IN EFI_EVENT WaitEvent OPTIONAL,
406 IN UINTN TimeoutInMicroSeconds,
407 IN VOID *ProcedureArgument OPTIONAL,
408 OUT UINTN **FailedCpuList OPTIONAL
409 );
410
497typedef
501 IN EFI_AP_PROCEDURE Procedure,
502 IN UINTN ProcessorNumber,
503 IN EFI_EVENT WaitEvent OPTIONAL,
504 IN UINTN TimeoutInMicroseconds,
505 IN VOID *ProcedureArgument OPTIONAL,
506 OUT BOOLEAN *Finished OPTIONAL
507 );
508
544typedef
548 IN UINTN ProcessorNumber,
549 IN BOOLEAN EnableOldBSP
550 );
551
593typedef
597 IN UINTN ProcessorNumber,
598 IN BOOLEAN EnableAP,
599 IN UINT32 *HealthFlag OPTIONAL
600 );
601
626typedef
628(EFIAPI *EFI_MP_SERVICES_WHOAMI)(
630 OUT UINTN *ProcessorNumber
631 );
632
663 EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS GetNumberOfProcessors;
664 EFI_MP_SERVICES_GET_PROCESSOR_INFO GetProcessorInfo;
668 EFI_MP_SERVICES_ENABLEDISABLEAP EnableDisableAP;
670};
671
672extern EFI_GUID gEfiMpServiceProtocolGuid;
673
674#endif
UINT64 UINTN
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_WHOAMI)(IN EFI_MP_SERVICES_PROTOCOL *This, OUT UINTN *ProcessorNumber)
Definition: MpService.h:628
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_ENABLEDISABLEAP)(IN EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN BOOLEAN EnableAP, IN UINT32 *HealthFlag OPTIONAL)
Definition: MpService.h:595
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)
Definition: MpService.h:499
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)
Definition: MpService.h:401
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_SWITCH_BSP)(IN EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, IN BOOLEAN EnableOldBSP)
Definition: MpService.h:546
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS)(IN EFI_MP_SERVICES_PROTOCOL *This, OUT UINTN *NumberOfProcessors, OUT UINTN *NumberOfEnabledProcessors)
Definition: MpService.h:223
EFI_STATUS(EFIAPI * EFI_MP_SERVICES_GET_PROCESSOR_INFO)(IN EFI_MP_SERVICES_PROTOCOL *This, IN UINTN ProcessorNumber, OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer)
Definition: MpService.h:257
VOID(EFIAPI * EFI_AP_PROCEDURE)(IN OUT VOID *Buffer)
Definition: PiMultiPhase.h:191
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:28
VOID * EFI_EVENT
Definition: UefiBaseType.h:36
EXTENDED_PROCESSOR_INFORMATION ExtendedInformation
Definition: MpService.h:182
EFI_CPU_PHYSICAL_LOCATION Location
Definition: MpService.h:178
Definition: Base.h:213
EFI_CPU_PHYSICAL_LOCATION2 Location2
Definition: MpService.h:140