APs to help test system memory in parallel with other device initialization.\r
Diagnostics applications may also use this protocol for multi-processor.\r
\r
- Copyright (c) 2006 - 2009, Intel Corporation.<BR>\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at<BR>\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php. \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
@par Revision Reference:\r
This Protocol is defined in the UEFI Platform Initialization Specification 1.2, \r
#define _MP_SERVICE_PROTOCOL_H_\r
\r
///\r
-/// Global ID for the EFI_MP_SERVICES_PROTOCOL\r
+/// Global ID for the EFI_MP_SERVICES_PROTOCOL.\r
///\r
#define EFI_MP_SERVICES_PROTOCOL_GUID \\r
{ \\r
}\r
\r
///\r
-/// Forward declaration for the EFI_MP_SERVICES_PROTOCOL\r
+/// Forward declaration for the EFI_MP_SERVICES_PROTOCOL.\r
///\r
typedef struct _EFI_MP_SERVICES_PROTOCOL EFI_MP_SERVICES_PROTOCOL;\r
\r
/// 1 0 0 Invalid. The BSP can never be in the disabled state.\r
/// 1 0 1 Invalid. The BSP can never be in the disabled state.\r
/// 1 1 0 Unhealthy Enabled BSP.\r
- /// 1 1 1 Healthy Enabled BSP\r
+ /// 1 1 1 Healthy Enabled BSP.\r
/// </pre>\r
///\r
UINT32 StatusFlag;\r
///\r
/// The physical location of the processor, including the physical package number\r
/// that identifies the cartridge, the physical core number within package, and \r
- /// logical threadnumber within core.\r
+ /// logical thread number within core.\r
///\r
EFI_CPU_PHYSICAL_LOCATION Location;\r
} EFI_PROCESSOR_INFORMATION;\r
\r
-/**\r
- Functions of this type are passed into StartUpAllAPs() and StartThisAP() to\r
- execute a procedure on enabled APs. The context the AP should use durng \r
- execution is specified by ProcedureArgument.\r
- \r
- @param[in] ProcedureArgument Pointer to the procedure's argument.\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_AP_PROCEDURE)(\r
- IN VOID *ProcedureArgument\r
- );\r
-\r
/**\r
This service retrieves the number of logical processor in the platform\r
and the number of those logical processors that are enabled on this boot.\r
This service may only be called from the BSP.\r
\r
This function is used to retrieve the following information:\r
- - The number of logical processors that are present in the system\r
+ - The number of logical processors that are present in the system.\r
- The number of enabled logical processors in the system at the instant \r
this call is made.\r
\r
- Since MP Service Protocol provides services to enable and disable processors \r
+ Because MP Service Protocol provides services to enable and disable processors \r
dynamically, the number of enabled logical processors may vary during the \r
course of a boot session.\r
\r
@retval EFI_SUCCESS The number of logical processors and enabled \r
logical processors was retrieved.\r
@retval EFI_DEVICE_ERROR The calling processor is an AP.\r
- @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL\r
- @retval EFI_INVALID_PARAMETER NumberOfEnabledProcessors is NULL\r
+ @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL.\r
+ @retval EFI_INVALID_PARAMETER NumberOfEnabledProcessors is NULL.\r
\r
**/\r
typedef\r
(EFIAPI *EFI_MP_SERVICES_GET_PROCESSOR_INFO)(\r
IN EFI_MP_SERVICES_PROTOCOL *This,\r
IN UINTN ProcessorNumber,\r
- OUT EFI_PROCESSOR_INFORMATION *ProcessorContextBuffer\r
+ OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer\r
);\r
\r
/**\r
FailedCpuList is set to NULL. If not all APs return from Procedure before \r
the timeout, then FailedCpuList is filled in with the list of the failed \r
APs. The buffer is allocated by MP Service Protocol using AllocatePool(). \r
- It is the caller\92s responsibility to free the buffer with FreePool() service.\r
+ It is the caller's responsibility to free the buffer with FreePool() service.\r
-# This invocation of SignalEvent() function informs the caller that invoked\r
EFI_MP_SERVICES_PROTOCOL.StartupAllAPs() that either all the APs completed\r
the specified task or a timeout occurred. The contents of FailedCpuList \r
BSP requests the function specified by \r
Procedure to be started on all the enabled \r
APs, and go on executing immediately. If \r
- all return from Procedure or TimeoutInMicroSeconds\r
+ all return from Procedure, or TimeoutInMicroSeconds\r
expires, this event is signaled. The BSP \r
can use the CheckEvent() or WaitForEvent() \r
services to check the state of event. Type \r
\r
@param[in] This A pointer to the EFI_MP_SERVICES_PROTOCOL\r
instance.\r
- @param[in] Procedure A pointer to the function to be run on \r
- enabled APs of the system. See type\r
+ @param[in] Procedure A pointer to the function to be run on the\r
+ designated AP of the system. See type\r
EFI_AP_PROCEDURE.\r
@param[in] ProcessorNumber The handle number of the AP. The range is \r
from 0 to the total number of logical\r
EFI_MP_SERVICES_PROTOCOL.GetNumberOfProcessors().\r
@param[in] WaitEvent The event created by the caller with CreateEvent()\r
service. If it is NULL, then execute in \r
- blocking mode. BSP waits until all APs finish \r
+ blocking mode. BSP waits until this AP finish \r
or TimeoutInMicroSeconds expires. If it's \r
not NULL, then execute in non-blocking mode. \r
BSP requests the function specified by \r
- Procedure to be started on all the enabled \r
- APs, and go on executing immediately. If \r
- all return from Procedure or TimeoutInMicroSeconds\r
+ Procedure to be started on this AP, \r
+ and go on executing immediately. If this AP\r
+ return from Procedure or TimeoutInMicroSeconds\r
expires, this event is signaled. The BSP \r
can use the CheckEvent() or WaitForEvent() \r
services to check the state of event. Type \r
the Unified Extensible Firmware Interface \r
Specification. \r
@param[in] TimeoutInMicrosecsond Indicates the time limit in microseconds for \r
- APs to return from Procedure, either for \r
+ this AP to finish this Procedure, either for \r
blocking or non-blocking mode. Zero means \r
infinity. If the timeout expires before \r
- all APs return from Procedure, then Procedure\r
- on the failed APs is terminated. All enabled \r
- APs are available for next function assigned \r
+ this AP returns from Procedure, then Procedure\r
+ on the AP is terminated. The \r
+ AP is available for next function assigned \r
by EFI_MP_SERVICES_PROTOCOL.StartupAllAPs() \r
or EFI_MP_SERVICES_PROTOCOL.StartupThisAP().\r
If the timeout expires in blocking mode, \r
BSP returns EFI_TIMEOUT. If the timeout \r
expires in non-blocking mode, WaitEvent \r
is signaled with SignalEvent().\r
- @param[in] ProcedureArgument The parameter passed into Procedure for \r
- all APs.\r
+ @param[in] ProcedureArgument The parameter passed into Procedure on the\r
+ specified AP.\r
@param[out] Finished If NULL, this parameter is ignored. In \r
blocking mode, this parameter is ignored.\r
In non-blocking mode, if AP returns from \r
from this service, then EFI_UNSUPPORTED must be returned.\r
\r
@param[in] This A pointer to the EFI_MP_SERVICES_PROTOCOL instance.\r
- @param[in] ProcessorNumber The handle number of AP that is to become the new \r
- BSP. The range is from 0 to the total number of \r
+ @param[in] ProcessorNumber The handle number of AP.\r
+ The range is from 0 to the total number of \r
logical processors minus 1. The total number of \r
logical processors can be retrieved by\r
EFI_MP_SERVICES_PROTOCOL.GetNumberOfProcessors().\r
bits are ignored. If it is NULL, this parameter \r
is ignored.\r
\r
- @retval EFI_SUCCESS The specified AP successfully enabled or disabled.\r
+ @retval EFI_SUCCESS The specified AP was enabled or disabled successfully.\r
@retval EFI_UNSUPPORTED Enabling or disabling an AP cannot be completed \r
prior to this service returning.\r
@retval EFI_UNSUPPORTED Enabling or disabling an AP is not supported.\r
(EFIAPI *EFI_MP_SERVICES_ENABLEDISABLEAP)(\r
IN EFI_MP_SERVICES_PROTOCOL *This,\r
IN UINTN ProcessorNumber,\r
- IN BOOLEAN NewAPState,\r
+ IN BOOLEAN EnableAP,\r
IN UINT32 *HealthFlag OPTIONAL\r
);\r
\r
ProcessorNumber, and EFI_SUCCESS is returned.\r
\r
@param[in] This A pointer to the EFI_MP_SERVICES_PROTOCOL instance.\r
- @param[in] ProcessorNumber The handle number of AP that is to become the new \r
- BSP. The range is from 0 to the total number of \r
+ @param[in] ProcessorNumber Pointer to the handle number of AP.\r
+ The range is from 0 to the total number of \r
logical processors minus 1. The total number of \r
logical processors can be retrieved by\r
EFI_MP_SERVICES_PROTOCOL.GetNumberOfProcessors().\r
\r
@retval EFI_SUCCESS The current processor handle number was returned \r
in ProcessorNumber.\r
- @retval EFI_INVALID_PARAMETER ProcessorNumber is NULL\r
+ @retval EFI_INVALID_PARAMETER ProcessorNumber is NULL.\r
\r
**/\r
typedef\r
/// guarantee that all non-blocking mode requests on all APs have been completed \r
/// before the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled. Since the \r
/// order that event notification functions in the same event group are executed \r
-/// is not deterministic, an event of type EFI_EVENT_GROUP_READY_TO_BOOT can not \r
+/// is not deterministic, an event of type EFI_EVENT_GROUP_READY_TO_BOOT cannot \r
/// be used to guarantee that APs have completed their non-blocking mode requests.\r
///\r
/// When the UEFI event EFI_EVENT_GROUP_READY_TO_BOOT is signaled, the StartAllAPs() \r