scsi_sync_pkt(9F)




NAME

     scsi_sync_pkt - synchronize CPU and I/O views of memory


SYNOPSIS

     #include <sys/scsi/scsi.h>

     void scsi_sync_pkt(struct scsi_pkt *pktp);


INTERFACE LEVEL

     Solaris DDI specific (Solaris DDI).


PARAMETERS

     pktp  Pointer to a scsi_pkt(9S) structure.


DESCRIPTION

     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  cir-
     cumstances.  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.


CONTEXT

     scsi_sync_pkt() may be called from user  or  interrupt  con-
     text.


SEE ALSO

     tran_sync_pkt(9E),  ddi_dma_sync(9F),  scsi_destroy_pkt(9F),
     scsi_init_pkt(9F), scsi_transport(9F), scsi_pkt(9S)

     Writing Device Drivers


Man(1) output converted with man2html