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