iPXE
Data Fields
_EFI_MP_SERVICES_PROTOCOL Struct Reference

When installed, the MP Services Protocol produces a collection of services that are needed for MP management. More...

#include <MpService.h>

Data Fields

EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS GetNumberOfProcessors
 
EFI_MP_SERVICES_GET_PROCESSOR_INFO GetProcessorInfo
 
EFI_MP_SERVICES_STARTUP_ALL_APS StartupAllAPs
 
EFI_MP_SERVICES_STARTUP_THIS_AP StartupThisAP
 
EFI_MP_SERVICES_SWITCH_BSP SwitchBSP
 
EFI_MP_SERVICES_ENABLEDISABLEAP EnableDisableAP
 
EFI_MP_SERVICES_WHOAMI WhoAmI
 

Detailed Description

When installed, the MP Services Protocol produces a collection of services that are needed for MP management.

Before the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled, the module that produces this protocol is required to place all APs into an idle state whenever the APs are disabled or the APs are not executing code as requested through the StartupAllAPs() or StartupThisAP() services. The idle state of an AP before the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled is implementation dependent.

After the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled, all the APs must be placed in the OS compatible CPU state as defined by the UEFI Specification. Implementations of this protocol may use the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT to force APs into the OS compatible state as defined by the UEFI Specification. Modules that use this protocol must guarantee that all non-blocking mode requests on all APs have been completed before the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled. Since the order that event notification functions in the same event group are executed is not deterministic, an event of type EFI_EVENT_GROUP_READY_TO_BOOT cannot be used to guarantee that APs have completed their non-blocking mode requests.

When the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled, the StartAllAPs() and StartupThisAp() services must no longer support non-blocking mode requests. The support for SwitchBSP() and EnableDisableAP() may no longer be supported after this event is signaled. Since UEFI Applications and UEFI OS Loaders execute after the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled, these UEFI images must be aware that the functionality of this protocol may be reduced.

Definition at line 664 of file MpService.h.

Field Documentation

◆ GetNumberOfProcessors

EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS _EFI_MP_SERVICES_PROTOCOL::GetNumberOfProcessors

Definition at line 665 of file MpService.h.

◆ GetProcessorInfo

EFI_MP_SERVICES_GET_PROCESSOR_INFO _EFI_MP_SERVICES_PROTOCOL::GetProcessorInfo

Definition at line 666 of file MpService.h.

◆ StartupAllAPs

EFI_MP_SERVICES_STARTUP_ALL_APS _EFI_MP_SERVICES_PROTOCOL::StartupAllAPs

Definition at line 667 of file MpService.h.

Referenced by efi_mp_start_all().

◆ StartupThisAP

EFI_MP_SERVICES_STARTUP_THIS_AP _EFI_MP_SERVICES_PROTOCOL::StartupThisAP

Definition at line 668 of file MpService.h.

◆ SwitchBSP

EFI_MP_SERVICES_SWITCH_BSP _EFI_MP_SERVICES_PROTOCOL::SwitchBSP

Definition at line 669 of file MpService.h.

◆ EnableDisableAP

EFI_MP_SERVICES_ENABLEDISABLEAP _EFI_MP_SERVICES_PROTOCOL::EnableDisableAP

Definition at line 670 of file MpService.h.

◆ WhoAmI

EFI_MP_SERVICES_WHOAMI _EFI_MP_SERVICES_PROTOCOL::WhoAmI

Definition at line 671 of file MpService.h.


The documentation for this struct was generated from the following file: