smp.h revision 148807
166458Sdfr/* 266458Sdfr * $FreeBSD: head/sys/ia64/include/smp.h 148807 2005-08-06 20:28:19Z marcel $ 366458Sdfr */ 466458Sdfr#ifndef _MACHINE_SMP_H_ 566458Sdfr#define _MACHINE_SMP_H_ 666458Sdfr 766458Sdfr#ifdef _KERNEL 866458Sdfr 976078Sjhb/* 1085656Smarcel * Interprocessor interrupts for SMP. The following values are indices 1185656Smarcel * into the IPI vector table. The SAL gives us the vector used for AP 1288691Smarcel * wake-up. We base the other vectors on that. Keep IPI_AP_WAKEUP at 13147322Smarcel * index 0. See sal.c for details. 1476078Sjhb */ 1596442Smarcel/* Architecture specific IPIs. */ 1696442Smarcel#define IPI_AP_WAKEUP 0 17115084Smarcel#define IPI_HIGH_FP 1 1896442Smarcel#define IPI_MCA_CMCV 2 19115084Smarcel#define IPI_MCA_RENDEZ 3 20115084Smarcel#define IPI_TEST 4 2196442Smarcel/* Machine independent IPIs. */ 22115084Smarcel#define IPI_AST 5 23115084Smarcel#define IPI_RENDEZVOUS 6 24115084Smarcel#define IPI_STOP 7 25147322Smarcel#define IPI_PREEMPT 8 2666458Sdfr 27147322Smarcel#define IPI_COUNT 9 2885656Smarcel 2966458Sdfr#ifndef LOCORE 3066458Sdfr 31148807Smarcelstruct pcpu; 32148807Smarcel 3396442Smarcelextern int ipi_vector[]; 3466458Sdfr 3585656Smarcelvoid ipi_all(int ipi); 3685656Smarcelvoid ipi_all_but_self(int ipi); 37148807Smarcelvoid ipi_selected(cpumask_t cpus, int ipi); 3885656Smarcelvoid ipi_self(int ipi); 39148807Smarcelvoid ipi_send(struct pcpu *, int ipi); 4066458Sdfr 4166458Sdfr#endif /* !LOCORE */ 4266458Sdfr#endif /* _KERNEL */ 4376078Sjhb#endif /* !_MACHINE_SMP_H */ 44