1/*-
2 * ----------------------------------------------------------------------------
3 * "THE BEER-WARE LICENSE" (Revision 42):
4 * <phk@FreeBSD.org> wrote this file.  As long as you retain this notice you
5 * can do whatever you want with this stuff. If we meet some day, and you think
6 * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
7 * ----------------------------------------------------------------------------
8 *
9 *	from: src/sys/alpha/include/smp.h,v 1.8 2005/01/05 20:05:50 imp
10 *	JNPR: smp.h,v 1.3 2006/12/02 09:53:41 katta
11 * $FreeBSD$
12 *
13 */
14
15#ifndef _MACHINE_SMP_H_
16#define	_MACHINE_SMP_H_
17
18#ifdef _KERNEL
19
20#include <sys/_cpuset.h>
21
22#include <machine/pcb.h>
23
24/*
25 * Interprocessor interrupts for SMP.
26 */
27#define	IPI_RENDEZVOUS		0x0002
28#define	IPI_AST			0x0004
29#define	IPI_STOP		0x0008
30#define	IPI_STOP_HARD		0x0008
31#define	IPI_PREEMPT		0x0010
32#define	IPI_HARDCLOCK		0x0020
33
34#ifndef LOCORE
35
36void	ipi_all_but_self(int ipi);
37void	ipi_cpu(int cpu, u_int ipi);
38void	ipi_selected(cpuset_t cpus, int ipi);
39void	smp_init_secondary(u_int32_t cpuid);
40void	mpentry(void);
41
42extern struct pcb stoppcbs[];
43
44#endif /* !LOCORE */
45#endif /* _KERNEL */
46
47#endif /* _MACHINE_SMP_H_ */
48