Gets processor information on the requested processor at the instant this call is made. This service may only be called from the BSP.
- Parameters
-
[in] | This | A pointer to the EFI_SMM_CPU_SERVICE_PROTOCOL instance. |
[in] | ProcessorNumber | The handle number of processor. |
[out] | ProcessorInfoBuffer | A pointer to the buffer where information for the requested processor is deposited. |
- Return values
-
EFI_SUCCESS | Processor information was returned. |
EFI_DEVICE_ERROR | The calling processor is an AP. |
EFI_INVALID_PARAMETER | ProcessorInfoBuffer is NULL. |
EFI_NOT_FOUND | The processor with the handle specified by ProcessorNumber does not exist in the platform. |
This service switches the requested AP to be the BSP from that point onward. This service changes the BSP for all purposes. This call can only be performed by the current BSP.
This service switches the requested AP to be the BSP from that point onward. This service changes the BSP for all purposes. The new BSP can take over the execution of the old BSP and continue seamlessly from where the old one left off.
If the BSP cannot be switched prior to the return from this service, then EFI_UNSUPPORTED must be returned.
- Parameters
-
[in] | This | A pointer to the EFI_SMM_CPU_SERVICE_PROTOCOL instance. |
[in] | ProcessorNumber | The handle number of AP that is to become the new BSP. The range is from 0 to the total number of logical processors minus 1. |
- Return values
-
EFI_SUCCESS | BSP successfully switched. |
EFI_UNSUPPORTED | Switching the BSP cannot be completed prior to this service returning. |
EFI_UNSUPPORTED | Switching the BSP is not supported. |
EFI_SUCCESS | The calling processor is an AP. |
EFI_NOT_FOUND | The processor with the handle specified by ProcessorNumber does not exist. |
EFI_INVALID_PARAMETER | ProcessorNumber specifies the current BSP or a disabled AP. |
EFI_NOT_READY | The specified AP is busy. |
Notify that a new processor has been added to the system.
The SMM CPU driver should add the processor to the SMM CPU list.
If the processor is disabled it won't participate any SMI handler during subsequent SMIs.
- Parameters
-
This | A pointer to the EFI_SMM_CPU_SERVICE_PROTOCOL instance. |
ProcessorId | The hardware ID of the processor. |
ProcessorNumber | The handle number of processor. |
ProcessorResource | A pointer to EFI_SMM_PROCESSOR_RESOURCE which holds the assigned resources. |
- Return values
-
EFI_SUCCESS | The function completed successfully. |
EFI_ALREADY_STARTED | Processor already present. |
EFI_NOT_READY | Space for a new handle could not be allocated. |
Notify that a processor is hot-removed.
Remove a processor from the CPU list of the SMM CPU driver. After this API is called, the removed processor must not respond to SMIs in the coherence domain.
- Parameters
-
This | A pointer to the EFI_SMM_CPU_SERVICE_PROTOCOL instance. |
ProcessorId | The hardware ID of the processor. |
- Return values
-
EFI_SUCCESS | The function completed successfully. |
EFI_NOT_FOUND | Processor with the hardware ID specified by ProcessorId does not exist. |
EFI_NOT_READY | Specified AP is busy. |
This return the handle number for the calling processor. This service may be called from the BSP and APs.
This service returns the processor handle number for the calling processor. The returned value is in the range from 0 to the total number of logical processors minus 1. This service may be called from the BSP and APs. If ProcessorNumber is NULL, then EFI_INVALID_PARAMETER is returned. Otherwise, the current processors handle number is returned in ProcessorNumber, and EFI_SUCCESS is returned.
- Parameters
-
[in] | This | A pointer to the EFI_SMM_CPU_SERVICE_PROTOCOL instance. |
[in] | ProcessorNumber | The handle number of AP that is to become the new BSP. The range is from 0 to the total number of logical processors minus 1. |
- Return values
-
EFI_SUCCESS | The current processor handle number was returned in ProcessorNumber. |
EFI_INVALID_PARAMETER | ProcessorNumber is NULL. |
Register exception handler.
- Parameters
-
This | A pointer to the SMM_CPU_SERVICE_PROTOCOL instance. |
ExceptionType | Defines which interrupt or exception to hook. Type EFI_EXCEPTION_TYPE and the valid values for this parameter are defined in EFI_DEBUG_SUPPORT_PROTOCOL of the UEFI 2.0 specification. |
InterruptHandler | A pointer to a function of type EFI_CPU_INTERRUPT_HANDLER that is called when a processor interrupt occurs. If this parameter is NULL, then the handler will be uninstalled. |
- Return values
-
EFI_SUCCESS | The handler for the processor interrupt was successfully installed or uninstalled. |
EFI_ALREADY_STARTED | InterruptHandler is not NULL, and a handler for InterruptType was previously installed. |
EFI_INVALID_PARAMETER | InterruptHandler is NULL, and a handler for InterruptType was not previously installed. |
EFI_UNSUPPORTED | The interrupt specified by InterruptType is not supported. |