scsi_ioctl(D3X)

scsi_ioctl - perform host adapter ioctl

Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.5.

NAME
     scsi_ioctl - perform host adapter ioctl

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

     int
     (*scsi_ioctl)( vertex_hdl_t ctlr_vhdl,
                      uint command,
                      struct scsi_ha_op *operand);
     The host adapter scsi_ioctl interface is used by user level
     administrative applications (with privileged access) to perform
     operations on a scsi bus, fibre channel loop, or directly to a host
     adapter.

     There is no kernel object called scsi_ioctl; rather, there is a pointer
     to each host adapter's scsi_ioctl function in the sci_ioctl field of the
     scsi_ctlr_info structure, which is attached to the vertex corresponding
     to the host adapter.

DESCRIPTION
     The ctlr_vhdl argument specifies the hwgraph vertex for the SCSI host
     adapter.  The command argument specifies what operation is requested.
     There is a list of these operations in /usr/include/sys/scsi.h, all of
     which have a name of the form SOP_*.  See scsiha(7m) for additional
     information.  The operand argument is a pointer to a scsi_ha_op
     structure, which is used to supply additional information to the
     scsi_ioctl function.  Two adapter-specific ioctls have been defined:
     SOP_GETDATA and SOP_SENDDATA.  With them an application and driver can
     perform activities beyond those defined by the other SOP_* ioctls.

DIAGNOSTICS
     scsi_ioctl returns 0 if there is no error.  Otherwise, it returns a
     standard error number (see /usr/include/sys/errno.h).

NOTES
     scsi_ioctl is stored as a function pointer in the scsi_ctlr_info_t
     structure, which is associated with the scsi host adapter vertex in the
     hwgraph.  The information structure in the scsi target vertex also has a
     pointer to the scsi_ctlr_info_t of the host adapter that the target is
     connected to.  Given a lun_vhdl (vertex handle of the device) the
     scsi_alloc function can be called as follows:

              scsi_lun_info_t *scsi_lun_info;
            ...
              scsi_lun_info = scsi_lun_info_get(lun_vhdl);
              SLI_IOCTL(scsi_lun_info)(lun_vhdl,option,callback_function);
SEE ALSO
     comments in /usr/include/sys/scsi.h, hwgraph.intro(D4X), scsi_alloc(D3X),
     scsi_free(D3X), scsi_info(D3X), scsi_command(D3X), scsi_abort(D3X), SCSI
     chapter of the IRIX Device Driver Programmer's Guide.