|SCSI_SYNC_PKT(9F)||Kernel Functions for Drivers||SCSI_SYNC_PKT(9F)|
#include <sys/scsi/scsi.h> void scsi_sync_pkt(struct scsi_pkt *pktp);
This function need only be called under certain circumstances. When a SCSI packet is mapped for I/O using scsi_init_pkt(9F) and destroyed using scsi_destroy_pkt(9F), then an implicit scsi_sync_pkt() will be performed. However, if the memory object has been modified by either the device or a CPU after the mapping by scsi_init_pkt(9F), then a call to scsi_sync_pkt() is required.
If the same scsi_pkt is reused for a data transfer from memory to a device, then scsi_sync_pkt() must be called before calling scsi_transport(9F). If the same packet is reused for a data transfer from a device to memory scsi_sync_pkt() must be called after the completion of the packet but before accessing the data in memory.
Writing Device Drivers
|January 16, 2006||OmniOS|