SIO_issue
2-398
C Interface
Syntax
status = SIO_issue(stream, pbuf, nmadus, arg);
Parameters
SIO_Handle stream;
/* stream handle */
Ptr
pbuf;
/* pointer to a buffer */
size_t
nmadus; /* number of MADUs in the buffer */
Arg
arg;
/* user argument */
Return Value
Int
status;
/* result of operation */
Description
SIO_issue is used to send a buffer and its related information to a stream.
The buffer-related information consists of the logical length of the buffer
(nmadus), and the user argument to be associated with that buffer.
SIO_issue sends a buffer to the stream and return to the caller without
blocking. It also returns an error code indicating success (SYS_OK) or
failure of the call.
Internally, SIO_issue calls Dxx_issue after placing a new input frame on
the driver’s device->todevice queue.
Failure of SIO_issue indicates that the stream was not able to accept the
buffer being issued or that there was a device error when the underlying
Dxx_issue was called. In the first case, the application is probably issuing
more frames than the maximum MADUs allowed for the stream, before it
reclaims any frames. In the second case, the failure reveals an
underlying device driver or hardware problem. If SIO_issue fails,
SIO_idle should be called for an SIO_INPUT stream, and SIO_flush
should be called for an SIO_OUTPUT stream, before attempting more
I/O through the stream.
The interpretation of nmadus, the logical size of a buffer, is direction-
dependent. For a stream opened in SIO_OUTPUT mode, the logical size
of the buffer indicates the number of valid MADUs of data it contains. For
a stream opened in SIO_INPUT mode, the logical length of a buffer
indicates the number of MADUs being requested by the client. In either
case, the logical size of the buffer must be less than or equal to the
physical size of the buffer.
The argument arg is not interpreted by DSP/BIOS, but is offered as a
service to the stream client. DSP/BIOS and all DSP/BIOS-compliant
device drivers preserve the value of arg and maintain its association with
SIO_issue
Send a buffer to a stream