Subject: More i386 kernel changes
To: None <current-users@sun-lamp.cs.berkeley.edu>
From: Charles Hannum <mycroft@duality.gnu.ai.mit.edu>
List: current-users
Date: 04/07/1994 03:46:58
I've just committed another batch of changes to the i386 code.  Once
again, this requires updating (and rerunning) config(8) and rebuilding
your kernels from scratch.

Highlights:

* IRQ configuration is now completely dynamic.  Device drivers are
responsible for registering their interrupt handlers using the
intr_establish() function.  There are plenty of examples, and it's
really simple, so I won't bother to explain it here.

The `bio', `net', `tty', and `vector [mumble]' tokens in the config
file are now ignored, but still accepted.

I haven't yet implemented deregistration (for loadable drivers), but
this is fairly trivial.

* 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.

* spl*() calls are inlined.  This gives a small but measurable
speedup.

* All that yucky assembler code is much more readable, and has lots of
comments explaining what it does.


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