gay@elde.epfl.ch (David Gay) (01/08/89)
In article <8901070159.AA04046@postgres.Berkeley.EDU> dillon@postgres.berkeley.e du (Matt Dillon) writes: > [Stuff about audio.device deleted] > > Also, many people forget to set the ln_Type field of *any* IO >request to NT_MESSAGE before calling DoIO()/SendIO()/BeginIO(). In the >case of the audio.device it doesn't matter anyway since the audio.device's >returning of requests is broken. Does this mean that there are devices which pass the IORequest to the task (or whatever) that actually does the work w/o using PutMsg (which will set the ln_Type field to NT_MESSAGE) ? (or w/o setting ln_Type to NT_MESSAGE in the BeginIO call) > > -Matt > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ David Gay Another mad amigan GAY@ELDE.EPFL.CH, or GAY%ELDE.EPFL.CH@CEARN.bitnet ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (01/09/89)
: I write:
:> Also, many people forget to set the ln_Type field of *any* IO
:>request to NT_MESSAGE before calling DoIO()/SendIO()/BeginIO(). In the
:>case of the audio.device it doesn't matter anyway since the audio.device's
:>returning of requests is broken.
gay@elde.epfl.ch (David Gay) Writes:
:Does this mean that there are devices which pass the IORequest to the task
:(or whatever) that actually does the work w/o using PutMsg (which will set
:the ln_Type field to NT_MESSAGE) ? (or w/o setting ln_Type to NT_MESSAGE in
:the BeginIO call)
I was saying two things in that message:
(1) I seem to remember that some IO devices did not set the ln_Type
field to NT_MESSAGE when you did a BeginIO() (i.e. DoIO(),
SendIO(), or BeginIO()). In order for WaitIO() to work, the
request's ln_Type field MUST be NT_MESSAGE until it gets
returned. This does not effect requests that can be done with
QUICKIO because WaitIO() checks the IOF_QUICK flag. Thus, I
always set the ln_Type field to NT_MESSAGE *before* doing the
DoIO()/SendIO()/BeginIO().
(anybody know if this was fixed?)
(2) IO devices always set the ln_Type field to NT_REPLYMSG when they
return a request... well, actually, ReplyMsg() is what does this.
This is how WaitIO() knows when a request has been returned.
Except the audio.device has a bug and doesn't do this.
-Matt