smp.h revision 66458
1/*
2 * $FreeBSD: head/sys/ia64/include/smp.h 66458 2000-09-29 13:46:07Z dfr $
3 */
4#ifndef _MACHINE_SMP_H_
5#define _MACHINE_SMP_H_
6
7#ifdef _KERNEL
8
9#include <machine/mutex.h>
10#include <machine/ipl.h>
11#include <sys/ktr.h>
12
13#ifndef LOCORE
14
15#define BETTER_CLOCK		/* unconditional on ia64 */
16
17/* global data in mp_machdep.c */
18extern volatile u_int		checkstate_probed_cpus;
19extern volatile u_int		checkstate_need_ast;
20extern volatile u_int		resched_cpus;
21extern void (*cpustop_restartfunc) __P((void));
22
23extern int			smp_active;
24extern int			mp_ncpus;
25extern u_int			all_cpus;
26extern u_int			started_cpus;
27extern u_int			stopped_cpus;
28
29/* functions in mp_machdep.c */
30void	mp_start(void);
31void	mp_announce(void);
32void	smp_invltlb(void);
33void	forward_statclock(int pscnt);
34void	forward_hardclock(int pscnt);
35void	forward_signal(struct proc *);
36void	forward_roundrobin(void);
37int	stop_cpus(u_int);
38int	restart_cpus(u_int);
39void	smp_rendezvous_action(void);
40void	smp_rendezvous(void (*)(void *),
41		       void (*)(void *),
42		       void (*)(void *),
43		       void *arg);
44void	smp_init_secondary(void);
45
46#endif /* !LOCORE */
47#endif /* _KERNEL */
48#endif
49