diff options
author | grehan <grehan@FreeBSD.org> | 2004-01-13 11:24:36 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2004-01-13 11:24:36 +0000 |
commit | f31f435513a72bd9462d2c1602f1a1f023f17497 (patch) | |
tree | 90c414efa278baec94d53f3908b2cf1e9a36d216 /sys/powerpc/include/openpicvar.h | |
parent | 5e6c3e74a5c479c3a0a6cf5c9aea54650ece04f5 (diff) | |
download | FreeBSD-src-f31f435513a72bd9462d2c1602f1a1f023f17497.zip FreeBSD-src-f31f435513a72bd9462d2c1602f1a1f023f17497.tar.gz |
Make the OpenPic driver bus-independent, with attachments for
the MacIO chip and PSIM's IOBus. Bus-specific drivers should
use the identify method to attach themselves to nexus so
interrupt can be allocated before the h/w is probed. The
'early attach' routine in openpic is used for this stage
of boot. When h/w is probed, the openpic can be attached
properly. It will enable interrupts allocated prior to
this.
Diffstat (limited to 'sys/powerpc/include/openpicvar.h')
-rw-r--r-- | sys/powerpc/include/openpicvar.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/sys/powerpc/include/openpicvar.h b/sys/powerpc/include/openpicvar.h index 6f7cff6..5001b9b 100644 --- a/sys/powerpc/include/openpicvar.h +++ b/sys/powerpc/include/openpicvar.h @@ -28,13 +28,41 @@ #ifndef _POWERPC_OPENPICVAR_H_ #define _POWERPC_OPENPICVAR_H_ +#define OPENPIC_DEVSTR "OpenPIC Interrupt Controller" + +#define OPENPIC_IRQMAX 256 /* h/w allows more */ + struct openpic_softc { - vm_offset_t sc_base; char *sc_version; u_int sc_ncpu; u_int sc_nirq; int sc_psim; struct rman sc_rman; + bus_space_tag_t sc_bt; + bus_space_handle_t sc_bh; + u_int sc_hwprobed; + u_int sc_early_done; + device_t sc_altdev; + u_char sc_irqrsv[OPENPIC_IRQMAX]; /* pre-h/w reservation */ }; +/* + * Bus-independent attach i/f + */ +int openpic_early_attach(device_t); +int openpic_attach(device_t); + +/* + * PIC interface. + */ +struct resource *openpic_allocate_intr(device_t, device_t, int *, + u_long, u_int); +int openpic_setup_intr(device_t, device_t, + struct resource *, int, driver_intr_t, void *, + void **); +int openpic_teardown_intr(device_t, device_t, + struct resource *, void *); +int openpic_release_intr(device_t dev, device_t, int, + struct resource *res); + #endif /* _POWERPC_OPENPICVAR_H_ */ |