summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/isa_device.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-04-26 11:46:25 +0000
committerpeter <peter@FreeBSD.org>1997-04-26 11:46:25 +0000
commit6323aa10bffe459912ba8b2f8592c7ac4ffd8705 (patch)
treebf48960e09e26f0de373de093c89322724bbdd64 /sys/i386/isa/isa_device.h
parent96efe480c0c091aecb2f359675c74aca30f36a4a (diff)
downloadFreeBSD-src-6323aa10bffe459912ba8b2f8592c7ac4ffd8705.zip
FreeBSD-src-6323aa10bffe459912ba8b2f8592c7ac4ffd8705.tar.gz
Man the liferafts! Here comes the long awaited SMP -> -current merge!
There are various options documented in i386/conf/LINT, there is more to come over the next few days. The kernel should run pretty much "as before" without the options to activate SMP mode. There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment. This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code!
Diffstat (limited to 'sys/i386/isa/isa_device.h')
-rw-r--r--sys/i386/isa/isa_device.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/sys/i386/isa/isa_device.h b/sys/i386/isa/isa_device.h
index 3daa654..4f37cd0 100644
--- a/sys/i386/isa/isa_device.h
+++ b/sys/i386/isa/isa_device.h
@@ -31,12 +31,14 @@
* SUCH DAMAGE.
*
* from: @(#)isa_device.h 7.1 (Berkeley) 5/9/91
- * $Id$
+ * $Id: isa_device.h,v 1.35 1997/02/22 09:36:42 peter Exp $
*/
#ifndef _I386_ISA_ISA_DEVICE_H_
#define _I386_ISA_ISA_DEVICE_H_
+#include "opt_smp.h"
+
/*
* ISA Bus Autoconfiguration
*/
@@ -67,7 +69,11 @@ struct isa_device {
int id_id; /* device id */
struct isa_driver *id_driver;
int id_iobase; /* base i/o address */
+#if defined(APIC_IO)
+ u_int id_irq; /* interrupt request */
+#else
u_short id_irq; /* interrupt request */
+#endif /* APIC_IO */
short id_drq; /* DMA request */
caddr_t id_maddr; /* physical i/o memory address on bus (if any)*/
int id_msize; /* size of i/o memory */
@@ -142,6 +148,21 @@ inthand_t
IDTVEC(intr4), IDTVEC(intr5), IDTVEC(intr6), IDTVEC(intr7),
IDTVEC(intr8), IDTVEC(intr9), IDTVEC(intr10), IDTVEC(intr11),
IDTVEC(intr12), IDTVEC(intr13), IDTVEC(intr14), IDTVEC(intr15);
+#if defined(APIC_IO)
+inthand_t
+ IDTVEC(fastintr16), IDTVEC(fastintr17),
+ IDTVEC(fastintr18), IDTVEC(fastintr19),
+ IDTVEC(fastintr20), IDTVEC(fastintr21),
+ IDTVEC(fastintr22), IDTVEC(fastintr23);
+inthand_t
+ IDTVEC(intr16), IDTVEC(intr17), IDTVEC(intr18), IDTVEC(intr19),
+ IDTVEC(intr20), IDTVEC(intr21), IDTVEC(intr22), IDTVEC(intr23);
+#include <machine/apic.h>
+#if defined(IPI_INTS)
+inthand_t
+ IDTVEC(ipi24), IDTVEC(ipi25), IDTVEC(ipi26), IDTVEC(ipi27);
+#endif /* IPI_INTS */
+#endif /* APIC_IO */
struct isa_device *
find_display __P((void));
struct isa_device *
@@ -157,6 +178,9 @@ 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));
+#if defined(APIC_IO)
+int icu_irq_pending __P((struct isa_device *dvp));
+#endif /* APIC_IO */
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,
OpenPOWER on IntegriCloud