scsi_command(D3X)

scsi_command - issue a command to a SCSI device

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     scsi_command - issue a command to a SCSI device

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

     void
     (*scsi_command[])(struct scsi_request *req);

DESCRIPTION
     scsi_command issues a command to a SCSI device.  The caller (a kernel
     level SCSI device driver) fills out a scsi_request structure and passes a
     pointer to it.

     The sr_lun_vhdl field of the request structure must contain the vertex
     handle of the device.  A kernel panic will result if this is not done.

     The sr_notify field (address of call back function) must be filled in.
     Calls with NULL in sr_notify return with a failure indication in the
     sr_status field.  Earlier versions of IRIX allowed the driver to pass a
     NULL callback address in sr_notify as a way of asking scsi_command to
     suspend the caller until the command completed.  Now if the driver needs
     to sleep until the command completes, create a semaphore that is posted
     from the callback function.

     Other fields of the request structure are also required in order to make
     a successful request; see the SCSI chapter of the IRIX Device Driver
     Programmer's Guide and the comments in the scsi.h header file.

     Success or failure of the request is indicated by values returned in
     fields in the request structure.

NOTES
     scsi_command is stored as a function pointer in the information hanging
     off the vertex handle corresponding to the host adapter in the hwgraph.
     Given a lun_vhdl (vertex handle of the device) the scsi_command function
     can be called as follows:

              scsi_lun_info_t *scsi_lun_info;
            ...
              scsi_lun_info = scsi_lun_info_get(lun_vhdl);
              SLI_COMMAND(scsi_lun_info)(scsi_request);


SEE ALSO
     comments in /usr/include/sys/scsi.h, hwgraph.intro(D4X), scsi_alloc(D3X),
     scsi_free(D3X), scsi_info(D3X), scsi_ioctl(D3X), scsi_abort(D3X), SCSI
     chapter of the IRIX Device Driver Programmer's Guide