diff options
author | piso <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
---|---|---|
committer | piso <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
commit | 6a2ffa86e5b748ba71e36d37462a936eb9101be7 (patch) | |
tree | 10833d4edb6c0d0a5efcf7762d842a4c378404b0 /sys/sys/interrupt.h | |
parent | 7b48c9d78377cdb9fc6e8bcc5406e28819aef6e3 (diff) | |
download | FreeBSD-src-6a2ffa86e5b748ba71e36d37462a936eb9101be7.zip FreeBSD-src-6a2ffa86e5b748ba71e36d37462a936eb9101be7.tar.gz |
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@
Diffstat (limited to 'sys/sys/interrupt.h')
-rw-r--r-- | sys/sys/interrupt.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/sys/interrupt.h b/sys/sys/interrupt.h index 0e73976..cfbb28f 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); |