xref: /haiku/headers/private/kernel/boot/platform/efi/arch_smp.h (revision 3d4afef9cba2f328e238089d4609d00d4b1524f3)
1 /*
2  * Copyright 2013-2019 Haiku, Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef KERNEL_BOOT_PLATFORM_EFI_ARCH_SMP_H
6 #define KERNEL_BOOT_PLATFORM_EFI_ARCH_SMP_H
7 
8 
9 #include <boot/menu.h>
10 
11 
12 #if defined(__riscv) || defined(__ARM__) || defined(__aarch64__)
13 // These platforms take inventory of cpu cores from fdt
14 
15 struct platform_cpu_info {
16 	uint32 id;
17 };
18 
19 void arch_smp_register_cpu(platform_cpu_info** cpu);
20 #endif
21 
22 
23 int arch_smp_get_current_cpu(void);
24 void arch_smp_init_other_cpus(void);
25 #ifdef __riscv
26 void arch_smp_boot_other_cpus(uint64 satp, uint64 kernel_entry);
27 #else
28 void arch_smp_boot_other_cpus(uint32 pml4, uint64 kernel_entry);
29 #endif
30 void arch_smp_add_safemode_menus(Menu *menu);
31 void arch_smp_init(void);
32 
33 
34 #endif /* KERNEL_BOOT_PLATFORM_EFI_ARCH_SMP_H */
35