Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

tran_sync_pkt(9E)

ddi_dma_sync(9F)

scsi_init_pkt(9F)

scsi_destroy_pkt(9F)

scsi_pkt(9S)

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). 

ARGUMENTS

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. 

EXAMPLES

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_init_pkt(9F), scsi_destroy_pkt(9F), scsi_pkt(9S)

Writing Device Drivers

SunOS 5.4  —  Last change: 25 Feb 1994

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026