summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/openpicvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/powerpc/include/openpicvar.h')
-rw-r--r--sys/powerpc/include/openpicvar.h30
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_ */
OpenPOWER on IntegriCloud