Subject: Re: power hook and spl level
To: TAKEMURA Shin <takemura@netbsd.org>
From: Lennart Augustsson <lennart@mail.augustsson.net>
List: tech-kern
Date: 09/10/2000 12:25:48
TAKEMURA Shin wrote:
> Well, could I call tsleep in power hook?
You could, but it would be a bad since then interrupts will get
turned on again.
I don't think any power hook calls tsleep() because it was not
allowed when the power code ran in an interrupt context (does
it still?).
> Some driver might want to
> - notify user process of the power event
> - wait until the device transfer into some state
> - interact with other kernel thread
That's true.
> I propose introducing new power events which are
> processed in lower level like below:
>
> dopowerhooks(PWR_SOFTSUSPEND);
> apm_spl = splhigh();
> dopowerhooks(PWR_SUSPEND);
> /* suspned... */
> dopowerhooks(PWR_RESUME);
> splx(apm_spl);
>
> dopowerhooks(PWR_SOFTRESUME);
Unless someone has a better idea, I think this looks good.
-- Lennart