|
|
udi_gio_xfer_ack(3udi)
Acknowledge a GIO transfer request
#include <udi.h>void udi_gio_xfer_ack ( udi_gio_xfer_cb_t *cb );ARGUMENTS cb is a pointer to a GIO transfer control block.
TARGET CHANNEL The target channel for this operation is the bind channel connecting a GIO provider to a GIO client.
DESCRIPTION The udi_gio_xfer_ack operation is used by a Generic I/O provider to acknowledge a transfer request back to a Generic I/O client (indicating success), as requested by a udi_gio_xfer_req operation. The udi_gio_xfer_nak operation is used to indicate failure or other exceptional conditions.
The op member of the control block must have the same value as at the time of the udi_gio_xfer_req operation. The contents of the tr_params inline memory are ignored for udi_gio_xfer_ack.
If data_buf is not NULL, data_buf->buf_size must be the same as in the original request and must equal the number of bytes actually transferred (overruns and underruns are handled with udi_gio_xfer_nak). The data_buf pointer must either be the same as in the original request, or a direct "descendant" of the original buffer (i.e. results from a chain of one or more service calls such as udi_buf_write that replace the original buffer with a modified version).
If op does not include UDI_GIO_DIR_READ, any data in data_buf is not guaranteed to be preserved by this channel operation. That is, when the client driver receives this operation, the contents (but not the size) of the buffer are unspecified unless UDI_GIO_DIR_READ is set.
WARNINGS The control block must be the same control block as passed to the driver in the corresponding udi_gio_xfer_req operation.
REFERENCES udi_gio_xfer_cb_t, udi_gio_xfer_req, udi_gio_xfer_nak, udi_buf_copy