Subject: calling tsleep() from below routines considered evil?
To: None <tech-kern@NetBSD.ORG>
From: None <is@beverly.rhein.de>
List: tech-kern
Date: 06/28/1995 23:09:41
Hello,
I've nearly finished my A2410 kernel support for NetBSD-Amiga.
Only serious problem I see, is that I busy-wait for a circular buffer to
get emptied by the TMS34010 processor on the A2410. I tried to put a
tsleep() in there, but always get a panic (a kernel access error) sooner
or later.
My code is a set of support functions for grf.c / ite.c. I've got the
impression that this is already called at some kind of soft int/ timer
level, at least the kernel traceback I managed to get out of the kernel
debugger looked like my stuff was called below another tsleep().
Is it allowed to call a tsleep() from inside a timer int? Should I tell
the tty stuff somehow that it should please call me again later instead?
Problem with that would be that the ite code can call me more than one
time for each character taken out of the tty queue, and that I might
need to create TMS34010 calls more than one time (e.g. on scrolls, when
needing to put the cursor on/off, etc.) each time I'm called from ite.c.
Any idea, anybody?
Regards,
Ignatios Souvatzis