summaryrefslogtreecommitdiffstats
path: root/sys/sys/interrupt.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-03-17 22:42:01 +0000
committerjhb <jhb@FreeBSD.org>2008-03-17 22:42:01 +0000
commitc04bb048f627b5ef992c77aced92b491f4c8974a (patch)
tree57731c0991b2b903b93e4762f94fa493eb565f3b /sys/sys/interrupt.h
parent10c89ab0d1faf7de0ab559184da2c88cbbe093fa (diff)
downloadFreeBSD-src-c04bb048f627b5ef992c77aced92b491f4c8974a.zip
FreeBSD-src-c04bb048f627b5ef992c77aced92b491f4c8974a.tar.gz
Simplify the interrupt code a bit:
- Always include the ie_disable and ie_eoi methods in 'struct intr_event' and collapse down to one intr_event_create() routine. The disable and eoi hooks simply aren't used currently in the !INTR_FILTER case. - Expand 'disab' to 'disable' in a few places. - Use function casts for arm and i386:intr_eoi_src() instead of wrapper routines since to trim one extra indirection. Compiled on: {arm,amd64,i386,ia64,ppc,sparc64} x {FILTER, !FILTER} Tested on: {amd64,i386} x {FILTER, !FILTER}
Diffstat (limited to 'sys/sys/interrupt.h')
-rw-r--r--sys/sys/interrupt.h17
1 files changed, 4 insertions, 13 deletions
diff --git a/sys/sys/interrupt.h b/sys/sys/interrupt.h
index 54cd0e4..319c49c 100644
--- a/sys/sys/interrupt.h
+++ b/sys/sys/interrupt.h
@@ -72,12 +72,10 @@ struct intr_event {
struct mtx ie_lock;
void *ie_source; /* Cookie used by MD code. */
struct intr_thread *ie_thread; /* Thread we are connected to. */
+ void (*ie_disable)(void *);
void (*ie_enable)(void *);
- int (*ie_assign_cpu)(void *, u_char);
-#ifdef INTR_FILTER
void (*ie_eoi)(void *);
- void (*ie_disab)(void *);
-#endif
+ int (*ie_assign_cpu)(void *, u_char);
int ie_flags;
int ie_count; /* Loop counter. */
int ie_warncnt; /* Rate-check interrupt storm warns. */
@@ -130,18 +128,11 @@ int intr_event_add_handler(struct intr_event *ie, const char *name,
driver_filter_t filter, driver_intr_t handler, void *arg,
u_char pri, enum intr_type flags, void **cookiep);
int intr_event_bind(struct intr_event *ie, u_char cpu);
-#ifndef INTR_FILTER
-int intr_event_create(struct intr_event **event, void *source,
- int flags, void (*enable)(void *),
- int (*assign_cpu)(void *, u_char), const char *fmt, ...)
- __printflike(6, 7);
-#else
int intr_event_create(struct intr_event **event, void *source,
- int flags, void (*enable)(void *), void (*eoi)(void *),
- void (*disab)(void *), int (*assign_cpu)(void *, u_char),
+ int flags, void (*disable)(void *), void (*enable)(void *),
+ void (*eoi)(void *), int (*assign_cpu)(void *, u_char),
const char *fmt, ...)
__printflike(8, 9);
-#endif
int intr_event_destroy(struct intr_event *ie);
int intr_event_remove_handler(void *cookie);
#ifndef INTR_FILTER
OpenPOWER on IntegriCloud