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
11struct 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
18extern "C" {
19#endif
20
21status_t arch_smp_init(struct kernel_args *args);
22status_t arch_smp_per_cpu_init(struct kernel_args *args, int32 cpu);
23void arch_smp_send_ici(int32 target_cpu);
24void arch_smp_send_broadcast_ici(void);
25
26#ifdef __cplusplus
27}
28#endif
29
30#endif	/* KERNEL_ARCH_SMP_H */
31