SCSI_SLAVE(9F) Kernel Functions for Drivers SCSI_SLAVE(9F)

NAME


scsi_slave - utility for SCSI target drivers to establish the
presence of a target

SYNOPSIS


#include <sys/scsi/scsi.h>


int scsi_slave(struct scsi_device *devp, int (*callback)(void));


INTERFACE LEVEL


The scsi_slave() function is obsolete. This function has been
replaced by scsi_probe(9F).

PARAMETERS


devp
Pointer to a scsi_device(9S) structure.


callback
Pointer to a callback function, NULL_FUNC or SLEEP_FUNC.


DESCRIPTION


scsi_slave() checks for the presence of a SCSI device. Target drivers
may use this function in their probe(9E) routines. scsi_slave()
determines if the device is present by using a Test Unit Ready
command followed by an Inquiry command. If scsi_slave() is
successful, it will fill in the scsi_inquiry structure, which is the
sd_inq member of the scsi_device(9S) structure, and return
SCSI_PROBE_EXISTS. This information can be used to determine if the
target driver has probed the correct SCSI device type. callback
indicates what the allocator routines should do when DMA resources
are not available:

NULL_FUNC
Do not wait for resources. Return a NULL pointer.


SLEEP_FUNC
Wait indefinitely for resources.


Other Values
callback points to a function which is called when
resources may have become available. callback must
return either 0 (indicating that it attempted to
allocate resources but again failed to do so), in
which case it is put back on a list to be called
again later, or 1 indicating either success in
allocating resources or indicating that it no longer
cares for a retry.


RETURN VALUES


scsi_slave() returns:

SCSIPROBE_NOMEM
No space available for structures.


SCSIPROBE_EXISTS
Device exists and inquiry data is valid.


SCSIPROBE_NONCCS
Device exists but inquiry data is not valid.


SCSIPROBE_FAILURE
Polled command failure.


SCSIPROBE_NORESP
No response to TEST UNIT READY.


CONTEXT


scsi_slave() is normally called from the target driver's probe(9E) or
attach(9E) routine. In any case, this routine should not be called
from interrupt context, because it can sleep waiting for memory to be
allocated.

ATTRIBUTES


See attributes(7) for a description of the following attributes:


+----------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+----------------+-----------------+
|Stability Level | Obsolete |
+----------------+-----------------+

SEE ALSO


attributes(7), attach(9E), probe(9E), ddi_iopb_alloc(9F),
makecom(9F), scsi_dmaget(9F), scsi_ifgetcap(9F), scsi_pktalloc(9F),
scsi_poll(9F), scsi_probe(9F), scsi_device(9S)


ANSI Small Computer System Interface-2 (SCSI-2)


Writing Device Drivers

NOTES


The scsi_slave() function is obsolete and will be discontinued in a
future release. This function has been replaced by scsi_probe(9F).

September 27, 2002 SCSI_SLAVE(9F)

tribblix@gmail.com :: GitHub :: Privacy