Subject: Re: MI soft interupts
To: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
From: Leo Weppelman <leo@wau.mis.ah.nl>
List: tech-kern
Date: 04/12/1996 09:59:31
> 
> Hello,
> 
> I started making the core of if_bah.c (the SMC chipset ARCnet driver
> for NetBSD/Amiga) MI, and to write an ISA frontend for it. I noticed
> that it would be VERY NICE to have a MI version of softint callbacks. 
Yes, I think this is nice. I was thinking about changing the interface
myself too. Currently the atari uses the amiga interface (you probably
knew that ;-)), but I was thinking of adding interrupt-levels to the
soft-int code. Therefore I think that Gordon's additions should be
part of the new MI code.
> 
> I'd propose just to adopt the Amiga interface, but cgd convinced me
> that it should be modified... I summarize a proposal for an interface:

[ ... Interface proposal ... ]

> 
> We can actually implement most of this MI, given a MD initialization
> callback, which will register call_sicallback with the interupt
> machinery, and a setsoftcback() function (macro?), which will do the
> right thing to make call_sicallback be called eventually.
I wonder if the actual calling machinery can be done MI given the fact
that I want to emulate the different levels on the atari. Maybe this can
be accomplished by adding a 'level' argument to call_sicallback().
> 
> Hm, low effort implementation would just call call_sicallback directly
> on setsoftcback(); you wouldn't get the benefits of calling the stuff
> at low priority without blocking ohter interrupts, but code  using it
> would at least run.
> 
> One last remark: I've the impression, that we could either implement
> this through the soft network queue mechanism, or use it to
> reimplement the latter in a machine-independent way.
I haven't had time to look at this.

Leo.