Subject: Re: IPL_* and IST_* constants
To: Charles M. Hannum <>
From: Chris G Demetriou <Chris_G_Demetriou@UX2.SP.CS.CMU.EDU>
List: tech-kern
Date: 03/19/1996 10:41:00
> That's not what I was referring to.  I was referring specifically to
> drivers pulling in more files than they need.  There is already
> precedent for cpu.h pulling in psl.h.

On the i386, this is true.  it doesn't appear to be true on several
ports, of which the Alpha is only one.

>    If people want their drivers to be portable to the Alpha, they will
>    access these constants by getting them via <machine/cpu.h>.
> That's poor.  Drivers should be able to access those constants (and,
> I'd say, the spl*() prototypes and/or inline definitions) without the
> rest of the cruft in cpu.h.

Similarly, it's poor to require that people who maintain ports make
definitions about a machine-specific feature, e.g. the "processor
status longword" available to more code than actually needs it...

> I propose the creation of <machine/intr.h>, which would contain the
> IPL_* and IST_* constants, as well as any definitions necessary to use
> the spl*() and setsoft*() functions/macros.

This sounds like a good idea, though it would be nice if the other
things that were to go in there (i.e. the full set of spl* and
setsoft* definitions to be used by drivers, at least) were

I can think of:
	splsoft()	(??)


I _don't_ think that something spl0() or splnone() should be available
for driver use...  I'm sure there are a bunch more; what am i missing?

It might also be nice if there were a more general way to schedule
software interrupts...  8-)