udi_scsi_io_ack(3udi)


Acknowledge normal completion of SCSI I/O request

SYNOPSIS

#include <udi.h>

void udi_scsi_io_ack (

	udi_scsi_io_cb_t *cb );
 

ARGUMENTS cb is a pointer to a SCSI IO control block.

TARGET CHANNEL The target channel for this operation is the bind channel connecting a SCSI HD to its child PD.

DESCRIPTION The udi_scsi_io_ack operation is used by an HD to acknowledge the normal completion of a SCSI I/O request back to a child PD, in response to a udi_scsi_io_req operation. This operation must be used to indicate to the PD a completion status of UDI_OK; otherwise, the udi_scsi_io_nak operation must be used.

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. 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 flags in the control block do not include UDI_SCSI_DATA_IN, any data in data_buf is not guaranteed to be preserved by this channel operation. That is, when the PD receives this operation, the contents (but not the size) of the buffer are unspecified unless UDI_SCSI_DATA_IN is set.

warnings The control block must be the same control block as passed to the HD in the corresponding udi_scsi_io_req operation.

REFERENCES udi_scsi_io_cb_t, udi_scsi_io_req, udi_scsi_io_nak


UDI SCSI Driver Specification Contents