The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

scsi_probe (9)
  • >> scsi_probe (9) ( Solaris man: Ядро )
  •  

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

    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.


     

    Index

    NAME
    SYNOPSIS
    INTERFACE LEVEL
    PARAMETERS
    DESCRIPTION
    RETURN VALUES
    CONTEXT
    EXAMPLES
    SEE ALSO
    NOTES


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру