Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Kernel Functions for Driversscsi_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 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.

CONTEXT

 

scsi_sync_pkt() may be called from user or interrupt context.

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


SunOS 5.9Go To TopLast Changed 25 Feb 1994

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.