OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
FrameworkMpService.h
Go to the documentation of this file.
1
47#ifndef _FRAMEWORK_MP_SERVICE_PROTOCOL_H_
48#define _FRAMEWORK_MP_SERVICE_PROTOCOL_H_
49
53#define FRAMEWORK_EFI_MP_SERVICES_PROTOCOL_GUID \
54 { \
55 0xf33261e7, 0x23cb, 0x11d5, {0xbd, 0x5c, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} \
56 }
57
62
66#define DELIVERY_MODE_FIXED 0x0
67
71#define DELIVERY_MODE_LOWEST_PRIORITY 0x1
72
76#define DELIVERY_MODE_SMI 0x2
77
81#define DELIVERY_MODE_REMOTE_READ 0x3
82
86#define DELIVERY_MODE_NMI 0x4
87
91#define DELIVERY_MODE_INIT 0x5
92
96#define DELIVERY_MODE_SIPI 0x6
97
101#define DELIVERY_MODE_MAX 0x7
102
106#define EFI_MP_HEALTH_FLAGS_STATUS_HEALTHY 0x0
107
111#define EFI_MP_HEALTH_FLAGS_STATUS_PERFORMANCE_RESTRICTED 0x1
112
116#define EFI_MP_HEALTH_FLAGS_STATUS_FUNCTIONALLY_RESTRICTED 0x2
117
118typedef union {
122 struct {
123 UINT32 Status : 2;
124 UINT32 Tested : 1;
125 UINT32 Reserved1 : 13;
130 UINT32 Reserved2 : 12;
131 } Bits;
135 UINT32 Uint32;
137
158
164
225
234typedef
235VOID
236(EFIAPI *EFI_AP_PROCEDURE)(
237 IN OUT VOID *Buffer
238 );
239
247typedef
248VOID
250 IN VOID *Buffer
251 );
252
287typedef
288EFI_STATUS
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
296 );
297
340typedef
341EFI_STATUS
344 IN UINTN ProcessorNumber,
345 IN OUT UINTN *BufferLength,
346 OUT EFI_MP_PROC_CONTEXT *ProcessorContextBuffer
347 );
348
458typedef
459EFI_STATUS
462 IN FRAMEWORK_EFI_AP_PROCEDURE Procedure,
463 IN BOOLEAN SingleThread,
464 IN EFI_EVENT WaitEvent OPTIONAL,
465 IN UINTN TimeoutInMicroSecs,
466 IN VOID *ProcArguments OPTIONAL,
467 OUT UINTN *FailedCPUList OPTIONAL
468 );
469
532typedef
533EFI_STATUS
536 IN FRAMEWORK_EFI_AP_PROCEDURE Procedure,
537 IN UINTN ProcessorNumber,
538 IN EFI_EVENT WaitEvent OPTIONAL,
539 IN UINTN TimeoutInMicroSecs,
540 IN OUT VOID *ProcArguments OPTIONAL
541 );
542
568typedef
569EFI_STATUS
572 IN UINTN ProcessorNumber,
573 IN BOOLEAN EnableOldBSP
574 );
575
603typedef
604EFI_STATUS
607 IN UINTN ProcessorNumber,
608 IN UINTN VectorNumber,
609 IN UINTN DeliveryMode
610 );
611
638typedef
639EFI_STATUS
642 IN UINTN ProcessorNumber,
643 IN BOOLEAN NewAPState,
644 IN EFI_MP_HEALTH *HealthState OPTIONAL
645 );
646
664typedef
665EFI_STATUS
668 OUT UINTN *ProcessorNumber
669 );
670
684
686
687#endif
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)
EFI_CPU_DESIGNATION
@ 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]
Definition OcTypingLib.h:42
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
EFI_CPU_DESIGNATION Designation