scsi_sync_pkt(9F) manual page
Table of Contents
scsi_sync_pkt - synchronize CPU and I/O views of memory
#include
<sys/scsi/scsi.h>
void scsi_sync_pkt(struct scsi_pkt *pktp);
Solaris
DDI specific (Solaris DDI).
- pktp
- pointer to a scsi_pkt(9S)
structure.
scsi_sync_pkt() is used to selectively synchronize a CPU’s
or device’s view of the data associated with the SCSI packet that has been
mapped for I/O. This may involve operations such as flushes of CPU or I/O
caches, as well as other more complex operations such as stalling until
hardware write buffers have drained.
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.
scsi_sync_pkt() may be called from
user or interrupt context.
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.
tran_sync_pkt(9E)
,
ddi_dma_sync(9F)
, scsi_destroy_pkt(9F)
, scsi_init_pkt(9F)
, scsi_transport(9F)
,
scsi_pkt(9S)
Table of Contents