Skip to content

Latest commit

 

History

History
48 lines (31 loc) · 1.32 KB

File metadata and controls

48 lines (31 loc) · 1.32 KB

NAME

DoIO -- perform an I/O command and wait for completion

SYNOPSIS

    error = DoIO(iORequest)
    D0           A1

    BYTE DoIO(struct IORequest *);

Links: IORequest

FUNCTION

This function requests a device driver to perform the I/O command specified in the I/O request. This function will always wait until the I/O request is fully complete.

DoIO() handles all the details, including Quick I/O, waiting for the request, and removing the reply message, etc..

IMPLEMENTATION This function first tries to complete the IO via the "Quick I/O" mechanism. The io_Flags field is always set to IOF_QUICK (0x01) before the internal device call.

The LN_TYPE field is used internally to flag completion. Active requests have type NT_MESSAGE. Requests that have been replied have type NT_REPLYMSG. It is illegal to start IO using a still active IORequest, or a request with type NT_REPLYMSG.

INPUTS

iORequest - pointer to an IORequest initialized by OpenDevice

RESULTS

error - a sign-extended copy of the io_Error field of the IORequest. Most device commands require that the error return be checked.

SEE ALSO

SendIO, CheckIO, WaitIO, AbortIO, amiga.lib/BeginIO