1 /* 2 * $FreeBSD: src/sys/ia64/include/smp.h,v 1.10 2005/08/06 20:28:19 marcel Exp $ 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 and IPI_MCA_RENDEZ at index 1. 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 26 #define IPI_COUNT 8 27 28 #ifndef LOCORE 29 30 extern int ipi_vector[]; 31 32 void ipi_all(int ipi); 33 void ipi_all_but_self(int ipi); 34 void ipi_selected(u_int64_t cpus, int ipi); 35 void ipi_self(int ipi); 36 void ipi_send(u_int64_t lid, int ipi); 37 38 #endif /* !LOCORE */ 39 #endif /* _KERNEL */ 40 #endif /* !_MACHINE_SMP_H */ 41