These routines are callable from user and kernel mode, at or below softint level. The source for these routines is in oz_sys_io.c
oz_sys_io_assign assigns an I/O channel to a device. It is sort of like an unix 'open' call, except it just points to the device. If it is an file-structured device, you still have to do an open I/O function to access the particular file you want. Input: - processor mode to assign the channel in, user or kernel if a user mode caller specifies kernel, it is changed to user but a kernel mode caller can specify whichever it wants - name of the device the channel is being assigned to - lockmode for the channel, ie, are we going to be reading, writing, and do we want to block other readers, writers Output: - completion status - handle to the assigned I/O channel oz_sys_io_abort aborts I/O in progress on a channel Input: - processor mode of I/O requests to abort. An usermode caller can only abort I/O's issued from user mode, but a kernel mode caller can abort both user and kernel mode I/O's. - I/O channel that requests were made on Output: - status Note: This routine returns 'immdidately', you must still wait for the I/O's to complete. This routine just alerts the driver to tell it the function(s) are no longer required and hopefully the driver is smart enough to abort processing them as quickly as possible. oz_sys_io starts an I/O on a channel and waits for its completion Input: - processor mode of the I/O request - I/O channel that the request is for - event flag to user for waiting - I/O function code - I/O argument block size - I/O argument block pointer Output: - I/O completion status - I/O function performed oz_sys_io_start starts an I/O on a channel (does not wait for completion) Input: - processor mode of the I/O request - I/O channel that the request is for - [optional] where to return completion status - [optional] event flag to increment when I/O completes - [optional] ast routine entrypoint and parameter to call when I/O completes - I/O function code - I/O argument block size - I/O argument block pointer Output: - I/O queuing status Note: If I/O queuing status returned is other than OZ_STARTED, the request completed synchronously. Thus the completion status will not be set, the event flag will not be incremented and the ast routine will not be called. Otherwise, all three will take place (assuming you have asked for them). If an oz_sys_io_abort call is made, the three completion indications will take place when the I/O driver actually gets around to aborting the request. oz_sys_iochan_getunitname gets the name of the device that an I/O channel is assigned to oz_sys_iochan_getclassname gets the name of the driver class of the device that an I/O channel is assigned to