Subject: Re: Question about SPLs
To: Gregory Kritsch <gkritsch@sail.uwaterloo.ca>
From: Chris Hopps <chopps@emunix.emich.edu>
List: amiga-dev
Date: 03/16/1994 19:00:44
> Both the Supra and GVP cards generate EXTER interrupts (ipl 6). I'm
> reasonably sure of my io addresses, but it is a modem card so I can't
> really test just the serial portion of the driver.
[..]
> Second, the spl macros. I think there's a problem. spltty is currently 4,
> splimp is 3, and splnet is <= 3. When I pump spltty up to 6, a number
> of strange things in my driver stop happening, however, my slip connection
> also stops happening. A brief inspection of if_sl.c shows a comment,
> something like ``splimp() /* actually max (splnet, spltty) */''. The
> same kernel, recompiled with spltty at 4, can maintain a working slip
> connection. (The slip connection is through the internal serial port,
> not my driver).
Am I to understand that you redefined spltty() to spl6()? If so this
is not correct. The heirarchy is there for a reason, something that
runs t spl5() should never ever be interrupted by something at spltty().
there are many ways to do this as I think Michael points out add a si
callback() you can find code for that in the ite.c for key repeats.
You could also do it the way the ser.c device does, namely use add a
vertical blank interrupt (see amiga/cc.c vbl_*) to the chain and do
your processing at level 4 which is spltty() however the problem with
this is that it only happens periodically you may need interrupts in a
more timely fashion. Then again if its buffered maybe not. If it is
buffered just used level 1 sicallback.
> Gregory
Chris. (who just woke up..)
------------------------------------------------------------------------------