Subject: Re: Proposal for generalized MI soft interrupts
To: Charles M. Hannum <>
From: Dennis Ferguson <>
List: tech-kern
Date: 01/30/1997 17:15:38
> void *softintr_establish(int level, int (*fun) __P((void *)), void *arg);
>   Registers a soft interrupt at level `level', which will call
>   fun(arg).  softintr_establish() returns an opaque cookie which must
>   be used as an argument to softintr_disestablish() or
>   softintr_register().  It may allocate a machine-specific data
>   structure.

What are the semantics of `level'?  In particular, is it intended that
soft interrupts running at a lower `level' will be preempted by soft
interrupts of a higher `level', or do soft interrupts run to completion
with respect to each other with `level' just being used to select who
runs next?

Dennis Ferguson