scsi_probe man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

SCSI_PROBE(9F)							SCSI_PROBE(9F)

NAME
       scsi_probe - utility for probing a scsi device

SYNOPSIS
       #include <sys/scsi/scsi.h>

       int scsi_probe(struct scsi_device *devp, int (*waitfunc);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

PARAMETERS
       devp
		    Pointer to a scsi_device(9S) structure

       waitfunc
		    NULL_FUNC or SLEEP_FUNC

DESCRIPTION
       scsi_probe() determines whether a target/lun is present and sets up the
       scsi_device structure with inquiry data.

       scsi_probe() uses the SCSI  Inquiry  command  to	 test  if  the	device
       exists.	  It   can  retry  the	Inquiry	 command  as  appropriate.  If
       scsi_probe() is successful, it will allocate space for the scsi_inquiry
       structure   and	assign	the  address  to  the  sd_inq  member  of  the
       scsi_device(9S)	structure.  scsi_probe()  will	then  fill   in	  this
       scsi_inquiry(9S) structure and return SCSIPROBE_EXISTS. If scsi_probe()
       is unsuccessful, it returns SCSIPROBE_NOMEM in spite of callback set to
       SLEEP_FUNC.

       scsi_unprobe(9F) is used to undo the effect of scsi_probe().

       If the target is a non-CCS device, SCSIPROBE_NONCCS will be returned.

       waitfunc indicates what the allocator routines should do when resources
       are not available; the valid values are:

       NULL_FUNC
		      Do not wait for  resources.  Return  SCSIPROBE_NOMEM  or
		      SCSIPROBE_FAILURE

       SLEEP_FUNC
		      Wait indefinitely for resources.

RETURN VALUES
       scsi_probe() returns:

       SCSIPROBE_BUSY
			      Device exists but is currently busy.

       SCSIPROBE_EXISTS
			      Device exists and inquiry data is valid.

       SCSIPROBE_FAILURE
			      Polled command failure.

       SCSIPROBE_NOMEM
			      No space available for structures.

       SCSIPROBE_NOMEM_CB
			      No  space	 available for structures but callback
			      request has been queued.

       SCSIPROBE_NONCCS
			      Device exists but inquiry data is not valid.

       SCSIPROBE_NORESP
			      Device does not respond to an INQUIRY.

CONTEXT
       scsi_probe() 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	 allo‐
       cated.

EXAMPLES
       Example 1  Using scsi_probe()

	     switch (scsi_probe(devp, NULL_FUNC)) {
	     default:
	     case SCSIPROBE_NORESP:
	     case SCSIPROBE_NONCCS:
	     case SCSIPROBE_NOMEM:
	     case SCSIPROBE_FAILURE:
	     case SCSIPROBE_BUSY:
		     break;
	     case SCSIPROBE_EXISTS:
		     switch (devp->sd_inq->inq_dtype) {
		     case DTYPE_DIRECT:
			     rval = DDI_PROBE_SUCCESS;
			     break;
		     case DTYPE_RODIRECT:
			     rval = DDI_PROBE_SUCCESS;
			     break;
		     case DTYPE_NOTPRESENT:
		     default:
			     break;
		     }
	     }
	     scsi_unprobe(devp);

SEE ALSO
       attach(9E),	probe(9E),	scsi_slave(9F),	     scsi_unprobe(9F),
       scsi_unslave(9F), scsi_device(9S), scsi_inquiry(9S)

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

       Writing Device Drivers

NOTES
       A waitfunc function other than NULL_FUNC or SLEEP_FUNC is not supported
       and may have unexpected results.

				 Feb 26, 2002			SCSI_PROBE(9F)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net