diff options
author | jhb <jhb@FreeBSD.org> | 2000-09-13 18:33:25 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2000-09-13 18:33:25 +0000 |
commit | 7013b8322587468516f271030ba6f1e1e8ad2505 (patch) | |
tree | 094e936b4c4d7213d8c6c9ada2d1b54c3631a970 /sys/sys/interrupt.h | |
parent | 2bef2cffd4590e0d732ee9af20c3fc37217d6b52 (diff) | |
download | FreeBSD-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.h | 19 |
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[]; |