aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/interrupt.h
diff options
context:
space:
mode:
authorPaolo Pisati <piso@FreeBSD.org>2007-02-23 12:19:07 +0000
committerPaolo Pisati <piso@FreeBSD.org>2007-02-23 12:19:07 +0000
commitef544f631226436ef590825881e7a28369df82f6 (patch)
tree10833d4edb6c0d0a5efcf7762d842a4c378404b0 /sys/sys/interrupt.h
parent68cb8659050380e1245328796e2783f030c94974 (diff)
downloadsrc-ef544f631226436ef590825881e7a28369df82f6.tar.gz
src-ef544f631226436ef590825881e7a28369df82f6.zip
o break newbus api: add a new argument of type driver_filter_t to
bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
Notes
Notes: svn path=/head/; revision=166901
Diffstat (limited to 'sys/sys/interrupt.h')
-rw-r--r--sys/sys/interrupt.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/sys/interrupt.h b/sys/sys/interrupt.h
index 0e73976819dc..cfbb28f39034 100644
--- a/sys/sys/interrupt.h
+++ b/sys/sys/interrupt.h
@@ -34,6 +34,7 @@
struct intr_event;
struct intr_thread;
+struct trapframe;
/*
* Describe a hardware interrupt handler.
@@ -42,6 +43,7 @@ struct intr_thread;
* together.
*/
struct intr_handler {
+ driver_filter_t *ih_filter; /* Filter function. */
driver_intr_t *ih_handler; /* Handler function. */
void *ih_argument; /* Argument to pass to handler. */
int ih_flags;
@@ -53,7 +55,6 @@ struct intr_handler {
};
/* Interrupt handle flags kept in ih_flags */
-#define IH_FAST 0x00000001 /* Fast interrupt. */
#define IH_EXCLUSIVE 0x00000002 /* Exclusive interrupt. */
#define IH_ENTROPY 0x00000004 /* Device is a good entropy source. */
#define IH_DEAD 0x00000008 /* Handler should be removed. */
@@ -111,10 +112,11 @@ extern char intrnames[]; /* string table containing device names */
#ifdef DDB
void db_dump_intr_event(struct intr_event *ie, int handlers);
#endif
+int intr_event_handle(struct intr_event *ie, struct trapframe *frame);
u_char intr_priority(enum intr_type flags);
int intr_event_add_handler(struct intr_event *ie, const char *name,
- driver_intr_t handler, void *arg, u_char pri, enum intr_type flags,
- void **cookiep);
+ driver_filter_t filter, driver_intr_t handler, void *arg,
+ u_char pri, enum intr_type flags, void **cookiep);
int intr_event_create(struct intr_event **event, void *source,
int flags, void (*enable)(void *), const char *fmt, ...)
__printflike(5, 6);