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#ifdef INTRNG
25# define MIPS_IPI_COUNT 	1
26# define INTR_IPI_COUNT 	MIPS_IPI_COUNT
27#endif
28
29/*
30 * Interprocessor interrupts for SMP.
31 */
32#define	IPI_RENDEZVOUS		0x0002
33#define	IPI_AST			0x0004
34#define	IPI_STOP		0x0008
35#define	IPI_STOP_HARD		0x0008
36#define	IPI_PREEMPT		0x0010
37#define	IPI_HARDCLOCK		0x0020
38
39#ifndef LOCORE
40
41void	ipi_all_but_self(int ipi);
42void	ipi_cpu(int cpu, u_int ipi);
43void	ipi_selected(cpuset_t cpus, int ipi);
44void	smp_init_secondary(u_int32_t cpuid);
45void	mpentry(void);
46
47extern struct pcb stoppcbs[];
48
49#endif /* !LOCORE */
50#endif /* _KERNEL */
51
52#endif /* _MACHINE_SMP_H_ */
53