[comp.sys.amiga.tech] IOQuestion

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