udi_gio_xfer_cb_t(3udi)
Control block for GIO transfer operations
#include <udi.h>typedef struct { udi_cb_t gcb; udi_gio_op_t op; void *tr_params; udi_buf_t *data_buf; } udi_gio_xfer_cb_t; /* Control Block Group Number */#define UDI_GIO_XFER_CB_NUM 2MEMBERS gcb is a generic control block header, which includes a pointer to the scratch space associated with this control block. The driver may use the scratch space while it owns the control block, but the values are not guaranteed to persist across channel operations.
op is a code designating the specific operation to be performed. Operation codes may be used to indicate different operation semantics. Custom operations are supported, as well as standard operations. See udi_gio_xfer_req for a description of these operations.
tr_params is a pointer to an inline memory structure that is used to hold operation-specific parameters. The pointer itself is set by the environment when the control block is allocated, and must not be modified by the driver.
data_buf is a pointer to a buffer used to carry the data portion of a transfer. See udi_gio_xfer_req and udi_gio_xfer_ack for details on buffer usage.
DESCRIPTION The Generic I/O transfer control block is used between a GIO client and a GIO provider to process a data or control transfer.
In order to use this type of control block it must be associated with a control block index by including UDI_GIO_XFER_CB_NUM in a udi_cb_init_t in the driver's udi_init_info.
The size and layout of the tr_params structure must be specified using the inline_size and inline_layout members of that udi_cb_init_t structure (i.e. tr_params is a UDI_DL_INLINE_DRIVER_TYPED field).
REFERENCES udi_init_info, udi_cb_init_t, udi_cb_alloc, udi_gio_op_t