1 1.1 cherry /* 2 1.1 cherry * $FreeBSD: src/sys/ia64/include/smp.h,v 1.10 2005/08/06 20:28:19 marcel Exp $ 3 1.1 cherry */ 4 1.1 cherry #ifndef _MACHINE_SMP_H_ 5 1.1 cherry #define _MACHINE_SMP_H_ 6 1.1 cherry 7 1.1 cherry #ifdef _KERNEL 8 1.1 cherry 9 1.1 cherry /* 10 1.1 cherry * Interprocessor interrupts for SMP. The following values are indices 11 1.1 cherry * into the IPI vector table. The SAL gives us the vector used for AP 12 1.1 cherry * wake-up. We base the other vectors on that. Keep IPI_AP_WAKEUP at 13 1.1 cherry * index 0 and IPI_MCA_RENDEZ at index 1. See sal.c for details. 14 1.1 cherry */ 15 1.1 cherry /* Architecture specific IPIs. */ 16 1.1 cherry #define IPI_AP_WAKEUP 0 17 1.1 cherry #define IPI_HIGH_FP 1 18 1.1 cherry #define IPI_MCA_CMCV 2 19 1.1 cherry #define IPI_MCA_RENDEZ 3 20 1.1 cherry #define IPI_TEST 4 21 1.1 cherry /* Machine independent IPIs. */ 22 1.1 cherry #define IPI_AST 5 23 1.1 cherry #define IPI_RENDEZVOUS 6 24 1.1 cherry #define IPI_STOP 7 25 1.1 cherry 26 1.1 cherry #define IPI_COUNT 8 27 1.1 cherry 28 1.1 cherry #ifndef LOCORE 29 1.1 cherry 30 1.1 cherry extern int ipi_vector[]; 31 1.1 cherry 32 1.1 cherry void ipi_all(int ipi); 33 1.1 cherry void ipi_all_but_self(int ipi); 34 1.1 cherry void ipi_selected(u_int64_t cpus, int ipi); 35 1.1 cherry void ipi_self(int ipi); 36 1.1 cherry void ipi_send(u_int64_t lid, int ipi); 37 1.1 cherry 38 1.1 cherry #endif /* !LOCORE */ 39 1.1 cherry #endif /* _KERNEL */ 40 1.1 cherry #endif /* !_MACHINE_SMP_H */ 41