Subject: Re: More i386 kernel changes
To: None <current-users@sun-lamp.cs.berkeley.edu>
From: Simon J. Gerraty <sjg@zen.void.oz.au>
List: current-users
Date: 04/08/1994 09:25:50
> > * IRQs can be shared between any number and type of devices.  THIS IS
> > STRONGLY DISCOURAGED.  I WILL NOT BE RESPONSIBLE FOR ANY HARDWARE
> > DAMAGED BY DOING THIS.  But, there is some hardware which specifically
> > allows it, and `I just provide the gun'.  Use at your own risk.  Your
> > milage may vary.
> 
> I don't think this can be stressed enough.  A good rule of thumb is "if 
> you don't have documentation to prove your hardware can share interrupts, 
> then DON'T DO IT."  An overwhelming number of ISA adapters available 
> simply cannot share interrupts.
> 
> Don't assume that because it works under DOS that (a) it's supposed to, 
> (b) it will work under any other OS, or (c) it's not damaging your 
> hardware in ways that show up later.

Indeed.  Many years ago I had the task of writing a multi-session
multi-emulation terminal program for DrOS.  I wasted a few days,
arranging the interrupt service routines to check whether an interrupt
was for them and if not call the next registered isr.  It didn't work
very well... Fortunately I spoke to a guy who had spent the previous
few years designing AT clone mother boards...  this is a long time ago
so my memory may be inaccurate, but he gave me a very clear
description that made it clear that the ISA bus design more or less
guaranteed that IRQ sharing could not work.  Whether it was the bus
itself at fault, or just the approach commonly used on cards that
interface to it I don't recall.  I just took all my sexy isr sharing
assembler out of my terminal program...

--sjg

------------------------------------------------------------------------------