1 /* 2 ** Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. 3 ** Distributed under the terms of the NewOS License. 4 */ 5 #ifndef KERNEL_ARCH_SMP_H 6 #define KERNEL_ARCH_SMP_H 7 8 9 #include <kernel.h> 10 11 struct kernel_args; 12 13 14 // must match MAX_BOOT_CPUS in platform_kernel_args.h 15 #define SMP_MAX_CPUS MAX_BOOT_CPUS 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 status_t arch_smp_init(struct kernel_args *args); 22 status_t arch_smp_per_cpu_init(struct kernel_args *args, int32 cpu); 23 void arch_smp_send_ici(int32 target_cpu); 24 void arch_smp_send_broadcast_ici(void); 25 26 #ifdef __cplusplus 27 } 28 #endif 29 30 #endif /* KERNEL_ARCH_SMP_H */ 31