iPXE
|
EFI multiprocessor API implementation. More...
#include <string.h>
#include <errno.h>
#include <ipxe/mp.h>
#include <ipxe/efi/efi.h>
#include <ipxe/efi/Protocol/MpService.h>
Go to the source code of this file.
Data Structures | |
struct | efi_mp_func_data |
EFI multiprocessor function call data. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
EFI_REQUEST_PROTOCOL (EFI_MP_SERVICES_PROTOCOL, &efimp) | |
static EFIAPI VOID | efi_mp_call (VOID *buffer) |
Call multiprocessor function on current CPU. More... | |
static void | efi_mp_exec_boot (mp_func_t func, void *opaque) |
Execute a multiprocessor function on the boot processor. More... | |
static void | efi_mp_start_all (mp_func_t func, void *opaque) |
Start a multiprocessor function on all application processors. More... | |
PROVIDE_MPAPI_INLINE (efi, mp_address) | |
PROVIDE_MPAPI (efi, mp_exec_boot, efi_mp_exec_boot) | |
PROVIDE_MPAPI (efi, mp_start_all, efi_mp_start_all) | |
Variables | |
static EFI_MP_SERVICES_PROTOCOL * | efimp |
Multiprocessor services protocol. More... | |
EFI multiprocessor API implementation.
Definition in file efi_mp.c.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
EFI_REQUEST_PROTOCOL | ( | EFI_MP_SERVICES_PROTOCOL | , |
& | efimp | ||
) |
Call multiprocessor function on current CPU.
buffer | Multiprocessor function call data |
Definition at line 55 of file efi_mp.c.
References buffer, data, and mp_call().
Referenced by efi_mp_exec_boot(), and efi_mp_start_all().
|
static |
Execute a multiprocessor function on the boot processor.
func | Multiprocessor function |
opaque | Opaque data pointer |
Definition at line 68 of file efi_mp.c.
References data, efi_mp_call(), efi_mp_func_data::func, mp_address(), and efi_mp_func_data::opaque.
|
static |
Start a multiprocessor function on all application processors.
func | Multiprocessor function |
opaque | Opaque data pointer |
Definition at line 85 of file efi_mp.c.
References data, DBGC, EEFI, efi_mp_call(), efimp, FALSE, efi_mp_func_data::func, mp_address(), NULL, efi_mp_func_data::opaque, rc, _EFI_MP_SERVICES_PROTOCOL::StartupAllAPs, and strerror().
PROVIDE_MPAPI_INLINE | ( | efi | , |
mp_address | |||
) |
PROVIDE_MPAPI | ( | efi | , |
mp_exec_boot | , | ||
efi_mp_exec_boot | |||
) |
PROVIDE_MPAPI | ( | efi | , |
mp_start_all | , | ||
efi_mp_start_all | |||
) |
|
static |
Multiprocessor services protocol.
Definition at line 47 of file efi_mp.c.
Referenced by efi_mp_start_all().