]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - sys/ia64/include/smp.h
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / sys / ia64 / include / smp.h
1 /*
2  * $FreeBSD$
3  */
4 #ifndef _MACHINE_SMP_H_
5 #define _MACHINE_SMP_H_
6
7 #ifdef _KERNEL
8
9 /*
10  * Interprocessor interrupts for SMP. The following values are indices
11  * into the IPI vector table. The SAL gives us the vector used for AP
12  * wake-up. We base the other vectors on that. Keep IPI_AP_WAKEUP at
13  * index 0. See sal.c for details.
14  */
15 /* Architecture specific IPIs. */
16 #define IPI_AP_WAKEUP           0
17 #define IPI_HIGH_FP             1
18 #define IPI_MCA_CMCV            2
19 #define IPI_MCA_RENDEZ          3
20 #define IPI_TEST                4
21 /* Machine independent IPIs. */
22 #define IPI_AST                 5
23 #define IPI_RENDEZVOUS          6
24 #define IPI_STOP                7
25 #define IPI_PREEMPT             8
26
27 #define IPI_COUNT               9
28
29 #ifndef LOCORE
30
31 struct pcpu;
32
33 extern int ipi_vector[];
34
35 void    ipi_all(int ipi);
36 void    ipi_all_but_self(int ipi);
37 void    ipi_selected(cpumask_t cpus, int ipi);
38 void    ipi_self(int ipi);
39 void    ipi_send(struct pcpu *, int ipi);
40
41 #endif /* !LOCORE */
42 #endif /* _KERNEL */
43 #endif /* !_MACHINE_SMP_H */