coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mp_service1.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <fsp/api.h>
5 #include <Ppi/MpServices.h>
6 
7 typedef EFI_PEI_MP_SERVICES_PPI efi_pei_mp_services_ppi;
8 
10  efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2,
11  efi_uintn_t *number_of_processors, efi_uintn_t *number_of_enabled_processors)
12 {
13  return mp_get_number_of_processors(number_of_processors, number_of_enabled_processors);
14 }
15 
17  efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2,
18  efi_uintn_t processor_number,
19  efi_processor_information *processor_info_buffer)
20 {
21  return mp_get_processor_info(processor_number, processor_info_buffer);
22 }
23 
25  efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2,
26  efi_ap_procedure procedure, efi_boolean_t run_serial,
27  efi_uintn_t timeout_usec, void *argument)
28 {
29  return mp_startup_all_aps(procedure, run_serial, timeout_usec, argument);
30 }
31 
33  efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2,
34  efi_ap_procedure procedure, efi_uintn_t processor_number,
35  efi_uintn_t timeout_usec, void *argument)
36 {
37  return mp_startup_this_ap(procedure, processor_number, timeout_usec, argument);
38 }
39 
41  efi_pei_mp_services_ppi *ignored2, efi_uintn_t ignored3,
42  efi_boolean_t ignored4)
43 {
44  return mp_api_unsupported();
45 }
46 
48  efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2,
49  efi_uintn_t ignored3, efi_boolean_t ignored4, efi_uint32_t *ignored5)
50 {
51  return mp_api_unsupported();
52 }
53 
55  efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2,
56  efi_uintn_t *processor_number)
57 {
58  return mp_identify_processor(processor_number);
59 }
60 
61 /* EDK2 UEFIPKG Open Source MP Service PPI to be installed */
62 
71 };
72 
74 {
75  return (void *)&mp_service1_ppi;
76 }
BOOLEAN efi_boolean_t
Definition: efi_datatype.h:45
void(EFIAPI * efi_ap_procedure)(void *buffer)
Definition: efi_datatype.h:69
UINTN efi_uintn_t
Definition: efi_datatype.h:53
EFI_PEI_SERVICES efi_pei_services
Definition: efi_datatype.h:16
UINT32 efi_uint32_t
Definition: efi_datatype.h:35
EFI_STATUS efi_return_status_t
Definition: efi_datatype.h:57
EFI_PROCESSOR_INFORMATION efi_processor_information
Definition: efi_datatype.h:18
void * mp_fill_ppi_services_data(void)
Definition: mp_service1.c:73
static efi_return_status_t mps1_startup_all_aps(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_ap_procedure procedure, efi_boolean_t run_serial, efi_uintn_t timeout_usec, void *argument)
Definition: mp_service1.c:24
EFI_PEI_MP_SERVICES_PPI efi_pei_mp_services_ppi
Definition: mp_service1.c:7
static efi_return_status_t mps1_identify_processor(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_uintn_t *processor_number)
Definition: mp_service1.c:54
static efi_pei_mp_services_ppi mp_service1_ppi
Definition: mp_service1.c:63
static efi_return_status_t mps1_enable_disable_ap(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_uintn_t ignored3, efi_boolean_t ignored4, efi_uint32_t *ignored5)
Definition: mp_service1.c:47
static efi_return_status_t mps1_get_number_of_processors(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_uintn_t *number_of_processors, efi_uintn_t *number_of_enabled_processors)
Definition: mp_service1.c:9
static efi_return_status_t mps1_switch_bsp(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_uintn_t ignored3, efi_boolean_t ignored4)
Definition: mp_service1.c:40
static efi_return_status_t mps1_get_processor_info(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_uintn_t processor_number, efi_processor_information *processor_info_buffer)
Definition: mp_service1.c:16
static efi_return_status_t mps1_startup_this_ap(const efi_pei_services **ignored1, efi_pei_mp_services_ppi *ignored2, efi_ap_procedure procedure, efi_uintn_t processor_number, efi_uintn_t timeout_usec, void *argument)
Definition: mp_service1.c:32
efi_return_status_t mp_get_number_of_processors(efi_uintn_t *number_of_processors, efi_uintn_t *number_of_enabled_processors)
efi_return_status_t mp_get_processor_info(efi_uintn_t processor_number, efi_processor_information *processor_info_buffer)
efi_return_status_t mp_identify_processor(efi_uintn_t *processor_number)
static efi_return_status_t mp_api_unsupported(void)
efi_return_status_t mp_startup_all_aps(efi_ap_procedure procedure, bool run_serial, efi_uintn_t timeout_usec, void *argument)
efi_return_status_t mp_startup_this_ap(efi_ap_procedure procedure, efi_uintn_t processor_number, efi_uintn_t timeout_usec, void *argument)