summaryrefslogtreecommitdiffstats
path: root/sys/sys/interrupt.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-09-13 18:33:25 +0000
committerjhb <jhb@FreeBSD.org>2000-09-13 18:33:25 +0000
commit7013b8322587468516f271030ba6f1e1e8ad2505 (patch)
tree094e936b4c4d7213d8c6c9ada2d1b54c3631a970 /sys/sys/interrupt.h
parent2bef2cffd4590e0d732ee9af20c3fc37217d6b52 (diff)
downloadFreeBSD-src-7013b8322587468516f271030ba6f1e1e8ad2505.zip
FreeBSD-src-7013b8322587468516f271030ba6f1e1e8ad2505.tar.gz
- Remove the inthand2_t type and use the equivalent driver_intr_t type from
newbus for referencing device interrupt handlers. - Move the 'struct intrec' type which describes interrupt sources into sys/interrupt.h instead of making it just be a x86 structure. - Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd' and 'struct intrec' - Move the code to translate new-bus interrupt flags into an interrupt thread priority out of the x86 nexus code and into a MI ithread_priority() function in sys/kern/kern_intr.c. - Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and sys/pci/pci_compat.c.
Diffstat (limited to 'sys/sys/interrupt.h')
-rw-r--r--sys/sys/interrupt.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/sys/interrupt.h b/sys/sys/interrupt.h
index 01b45cb..b27fc8a 100644
--- a/sys/sys/interrupt.h
+++ b/sys/sys/interrupt.h
@@ -29,6 +29,24 @@
#ifndef _SYS_INTERRUPT_H_
#define _SYS_INTERRUPT_H_
+/*
+ * Describe a hardware interrupt handler.
+ *
+ * Multiple interrupt handlers for a specific vector can be chained
+ * together via the 'next' pointer.
+ */
+
+struct ithd;
+
+struct intrec {
+ driver_intr_t *handler; /* code address of handler */
+ void *argument; /* argument to pass to handler */
+ enum intr_type flags; /* flag bits (sys/bus.h) */
+ char *name; /* name of handler */
+ struct ithd *ithd; /* handler we're connected to */
+ struct intrec *next; /* next handler for this irq */
+};
+
typedef void swihand_t __P((void));
void register_swi __P((int intr, swihand_t *handler));
@@ -36,6 +54,7 @@ void swi_dispatcher __P((int intr));
swihand_t swi_generic;
swihand_t swi_null;
void unregister_swi __P((int intr, swihand_t *handler));
+int ithread_priority __P((int flags));
extern swihand_t *ihandlers[];
OpenPOWER on IntegriCloud