Kernel Functions for Drivers scsisyncpkt(9F)
NAME
scsisyncpkt - synchronize CPU and I/O views of memory
SYNOPSIS
#include
void scsisyncpkt(struct scsipkt *pktp);
INTERFACE LEVEL
Solaris DI specific (Solaris DI).
PARAMETERS
pktp Pointer to a scsipkt(9S) structure.
DESCRIPTION
The scsisyncpkt() function is used to selectively syn-
chronize 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
scsiinitpkt(9F) and destroyed using scsidestroypkt(9F),
then an implicit scsisyncpkt() will be performed. However,
if the memory object has been modified by either the device
or a CPU after the mapping by scsiinitpkt(9F), then a call
to scsisyncpkt() is required.
If the same scsipkt is reused for a data transfer from
memory to a device, then scsisyncpkt() must be called
before calling scsitransport(9F). If the same packet is
reused for a data transfer from a device to memory
scsisyncpkt() must be called after the completion of the
packet but before accessing the data in memory.
CONTEXT
The scsisyncpkt() function may be called from user, inter-
rupt, or kernel context.
SEE ALSO
transyncpkt(9E), ddidmasync(9F), scsidestroypkt(9F),
scsiinitpkt(9F), scsitransport(9F), scsipkt(9S)
SunOS 5.11 Last change: 16 Jan 2006 1
Kernel Functions for Drivers scsisyncpkt(9F)
Writing Device Drivers
SunOS 5.11 Last change: 16 Jan 2006 2
|