diff options
author | se <se@FreeBSD.org> | 1997-05-26 14:42:24 +0000 |
---|---|---|
committer | se <se@FreeBSD.org> | 1997-05-26 14:42:24 +0000 |
commit | d1289ee1992df1126367e01c2b668cb781a5bc2a (patch) | |
tree | 7a106565e3719575cd165987007e9fc276e198af /sys/i386/isa/isa_device.h | |
parent | a201b8ac68687823a59787419197aa1c621886d1 (diff) | |
download | FreeBSD-src-d1289ee1992df1126367e01c2b668cb781a5bc2a.zip FreeBSD-src-d1289ee1992df1126367e01c2b668cb781a5bc2a.tar.gz |
Add support for shared interrupts to the kernel. This code is meant
be (eventually) architecture independent. It provides an emulation
of the ISA interrupt registration function register_intr(), but that
function does no longer manipulated the interrupt controller and
interrupt descriptor table, but calls the architecture dependent
function setup_icu() for that purpose.
After the ISA/EISA bus code has been modified to directly call the new
interrupt registartion functions (intr_create() and intr_connect()),
the emulation of register_intr() should be dropped.
The C level interrupt handler function should take a (void*) argument,
and the function pointer type (inthand2_t) should defined in some other
place than isa_device.h.
This commit is a pre-requisite for the removal of the PCI specific shared
interrupt code.
Reviewed by: dfr,bde
Diffstat (limited to 'sys/i386/isa/isa_device.h')
-rw-r--r-- | sys/i386/isa/isa_device.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/i386/isa/isa_device.h b/sys/i386/isa/isa_device.h index 5f91688..832bf81 100644 --- a/sys/i386/isa/isa_device.h +++ b/sys/i386/isa/isa_device.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)isa_device.h 7.1 (Berkeley) 5/9/91 - * $Id: isa_device.h,v 1.38 1997/04/26 19:26:37 peter Exp $ + * $Id: isa_device.h,v 1.39 1997/04/27 21:18:58 fsmp Exp $ */ #ifndef _I386_ISA_ISA_DEVICE_H_ @@ -171,13 +171,14 @@ void isa_dmastart __P((int flags, caddr_t addr, u_int nbytes, int chan)); int isa_dma_acquire __P((int chan)); void isa_dma_release __P((int chan)); int isa_irq_pending __P((struct isa_device *dvp)); -/* this functions ONLY exists in an SMP/APIC_IO kernel: */ +/* this function ONLY exists in an SMP/APIC_IO kernel: */ int icu_irq_pending __P((struct isa_device *dvp)); int isa_nmi __P((int cd)); void reconfig_isadev __P((struct isa_device *isdp, u_int *mp)); -int register_intr __P((int intr, int device_id, u_int flags, - inthand2_t *handler, u_int *maskptr, int unit)); -int unregister_intr __P((int intr, inthand2_t *handler)); +void update_intrname __P((int intr, int device_id)); +int icu_setup __P((int intr, inthand2_t *func, void *arg, + u_int *maskptr, int flags)); +int icu_unset __P((int intr, inthand2_t *handler)); int update_intr_masks __P((void)); #endif /* KERNEL */ |