1 /* $NetBSD: gemini_ipivar.h,v 1.1 2008/11/20 08:02:48 cliff Exp $ */ 2 3 #ifndef _GEMINI_IPIVAR_H 4 #define _GEMINI_IPIVAR_H 5 6 #include <sys/param.h> 7 #include <sys/systm.h> 8 #include <sys/device.h> 9 10 typedef struct gemini_ipi_intrq { 11 SIMPLEQ_ENTRY(gemini_ipi_intrq) iq_q; 12 int (*iq_func)(void *); 13 void *iq_arg; 14 } gemini_ipi_intrq_t; 15 16 typedef struct gemini_ipi_softc { 17 struct device sc_dev; 18 bus_space_tag_t sc_iot; 19 bus_space_handle_t sc_ioh; 20 bus_addr_t sc_addr; 21 bus_size_t sc_size; 22 int sc_intr; 23 void *sc_ih; 24 SIMPLEQ_HEAD(, gemini_ipi_intrq) sc_intrq; 25 } gemini_ipi_softc_t; 26 27 extern void *ipi_intr_establish(int (*)(void *), void *); 28 extern void ipi_intr_disestablish(void *); 29 extern int ipi_send(void); 30 31 #endif /* _GEMINI_IPIVAR_H */ 32