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
10typedef 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
16typedef struct gemini_ipi_softc {
17	device_t 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
27extern void *ipi_intr_establish(int (*)(void *), void *);
28extern void  ipi_intr_disestablish(void *);
29extern int   ipi_send(void);
30
31#endif /* _GEMINI_IPIVAR_H */
32