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.  Tar-
     get  drivers  may  use this function in their probe(9E) rou-
     tines. scsi_slave() determines if the device is  present  by
     using  a Test Unit Ready command followed by an Inquiry com-
     mand. 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. call-
                back 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(5) for a description of the following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Stability Level             | Obsolete                    |
    |_____________________________|_____________________________|


SEE ALSO

     attributes(5),  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 discontin-
     ued  in a future release. This function has been replaced by
     scsi_probe(9F).


Man(1) output converted with man2html