Data Structures for Drivers scsi_inquiry(9S)
NAME
scsi_inquiry - SCSI inquiry structure
SYNOPSIS
#include
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).DESCRIPTION
The scsi_inquiry structure contains 36 required bytes, fol-
lowed by a variable number of vendor-specific parameters.
Bytes 59 through 95, if returned, are reserved for futurestandardization. This structure is part of scsi_device(9S)
structure and typically filled in by scsi_probe(9F).
STRUCTURE MEMBERS Lines that start with an 'X' will be deleted before submission; they are being classified as unstable at this time.uchar_t inq_dtype; /* Periph. qualifier, dev. type */
uchar_t inq_rmb :1; /* Removable media */
uchar_t inq_qual :7; /* Dev. type qualifier */
uchar_t inq_iso :2; /* ISO version */
uchar_t inq_ecma :3; /* EMCA version */
uchar_t inq_ansi :3; /* ANSII version */
uchar_t inq_aenc :1; /* Async event notif. cap. */
uchar_t inq_trmiop :1; /* Supports TERMINATE I/O PROC msg */
uchar_t inq_normaca :1; /* setting NACA bit supported */
uchar_t inq_hisup :1; /* hierarchical addressing model */
uchar_t inq_rdf :4; /* Response data format */
uchar_t inq_len /* Additional length */
uchar_t inq_sccs :1; /* embedded storage array */
Xuchar_t inq_acc :1; /* access controls coordinator */
uchar_t inq_tpgse :1; /* explicit asymmetric lun access */
uchar_t inq_tpgsi :1; /* implicit asymmetric lun access */
Xuchar_t inq_3pc :1; /* third-party copy */
Xuchar_t inq_protect :1; /* supports protection information */
uchar_t inq_bque :1; /* basic queueing */
uchar_t inq_encserv :1; /* embedded enclosure services */
uchar_t inq_dualp :1; /* dual port device */
uchar_t inq_mchngr :1; /* embedded/attached to medium chngr */
uchar_t inq_addr16 :1; /* SPI: supports 16 bit wide SCSI addr */
uchar_t inq_wbus16 :1; /* SPI: Supports 16 bit wide data xfers */
uchar_t inq_sync :1; /* SPI: Supports synchronous data xfers */
uchar_t inq_linked :1; /* Supports linked commands */
uchar_t inq_cmd_que :1; /* Supports command queueing */
uchar_t inq_sftre :1; /* Supports Soft Reset option */
char inq_vid[8]; /* Vendor ID */
char inq_pid[16]; /* Product ID */
char inq_revision[4]; /* Revision level */
SunOS 5.11 Last change: 5 Nov 2008 1
Data Structures for Drivers scsi_inquiry(9S)
uchar_t inq_clk :2; /* SPI3 clocking */
uchar_t inq_qas :1; /* SPI3: quick arb sel */
uchar_t inq_ius :1; /* SPI3: information units */
inq_dtype identifies the type of device. Bits 0 - 4
represent the Peripheral Device Type and bits 5 - 7
represent the Peripheral Qualifier. The following values are appropriate for Peripheral Device Type field:DTYPE_DIRECT Direct-access device (for example, mag-
netic disk).DTYPE_SEQUENTIAL Sequential-access device (for example,
magnetic tape).DTYPE_PRINTER Printer device.
DTYPE_PROCESSOR Processor device.
DTYPE_WORM Write-once device (for example, some
optical disks).DTYPE_RODIRECT CD-ROM device.
DTYPE_SCANNER Scanner device.
DTYPE_OPTICAL Optical memory device (for example, some
optical disks).DTYPE_CHANGER Medium Changer device (for example,
jukeboxes).DTYPE_COMM Communications device.
DTYPE_ARRAY_CTRL Array controller device (for example,
RAID).DTYPE_ESI Enclosure services device.
SunOS 5.11 Last change: 5 Nov 2008 2
Data Structures for Drivers scsi_inquiry(9S)
DTYPE_RBC Simplified direct-access device.
DTYPE_OCRW Optical card reader/writer device.
DTYPE_BRIDGE Bridge.
DTYPE_OSD Object-based storage device.
DTYPE_UNKNOWN Unknown or no device type.
DTYPE_MASK Mask to isolate Peripheral Device Type
field. The following values are appropriate for the Peripheral Qualifier field:DPQ_POSSIBLE The specified peripheral device type is
currently connected to this logical unit. If the target cannot determine whether ornot a physical device is currently con-
nected, it uses this peripheral qualifierwhen returning the INQUIRY data. This peri-
pheral qualifier does not imply that thedevice is ready for access by the initia-
tor.DPQ_SUPPORTED The target is capable of supporting the
specified peripheral device type on this logical unit. However, the physical device is not currently connected to this logical unit.DPQ_NEVER The target is not capable of supporting a
physical device on this logical unit. For this peripheral qualifier, the peripheraldevice type shall be set to DTYPE_UNKNOWN
to provide compatibility with previous ver-
sions of SCSI. For all other peripheraldevice type values, this peripheral qualif-
ier is reserved.SunOS 5.11 Last change: 5 Nov 2008 3
Data Structures for Drivers scsi_inquiry(9S)
DPQ_VUNIQ This is a vendor-unique qualifier.
DPQ_MASK Mask to isolate Peripheral Qualifier field.
DTYPE_NOTPRESENT is the peripheral qualifier DPQ_NEVER and
the peripheral device type DTYPE_UNKNOWN combined.
inq_rmb, if set, indicates that the medium is removable.
inq_qual is a device type qualifier.
inq_iso indicates ISO version.
inq_ecma indicates ECMA version.
inq_ansi indicates ANSI version.
inq_aenc, if set, indicates that the device supports asyn-
chronous event notification capability as defined in SCSI-2
specification.inq_trmiop, if set, indicates that the device supports the
TERMINATE I/O PROCESSmessage.
inq_normaca, if set, indicates that the device supports set-
ting the NACA bit to 1 in CDB.inq_hisip, if set, indicates the SCSI target device uses the
hierarchical addressing model to assign LUNs to logical units.inq_rdf, if set, indicates the INQUIRY data response data
format: "RDF_LEVEL0" means that this structure complies with
the SCSI-1 spec, "RDF_CCS" means that this structure com-
plies with the CCS pseudo-spec, and "RDF_SCSI2" means that
the structure complies with the SCSI-2/3 spec.
SunOS 5.11 Last change: 5 Nov 2008 4
Data Structures for Drivers scsi_inquiry(9S)
inq_len, if set, is the additional length field that speci-
fies the length in bytes of the parameters.inq_sccs, if set, indicates the target device contains an
embedded storage array controller component.inq_acc, if set, indicates that the logical unit contains an
access controls coordinator (this structure member will be deleted before submission. It is being classified as unstable at this time).inq_tpgse, if set, indicates that implicit asymmetric logi-
cal unit access is supported.inq_tpgsi, if set, indicates that explicit asymmetric logi-
cal unit access is supported.inq_3pc, if set, indicates that the SCSI target device sup-
ports third-party copy commands (this structure member will
be deleted before submission. It is being classified as unstable at this time).inq_protect, if set, indicates that the logical unit sup-
ports protection information (this structure member will be deleted before submission. It is being classified as unstable at this time).inq_bque, if set, indicates that the logical unit supports
basic task management.inq_encserv, if set, indicates that the device contains an
embedded enclosure services component (ses(7D)).inq_dualp, if set, indicates that the SCSI target device
supports two or more ports.inq_mchngr, if set, indicates that the SCSI target device
supports commands to control an attached media changer.inq_addr16, if set, indicates that the device supports 16-
bit wide SCSI addresses.SunOS 5.11 Last change: 5 Nov 2008 5
Data Structures for Drivers scsi_inquiry(9S)
inq_wbus16, if set, indicates that the device supports 16-
bit wide data transfers.inq_sync, if set, indicates that the device supports syn-
chronous data transfers.inq_linked, if set, indicates that the device supports
linked commands for this logical unit.inq_cmdque, if set, indicates that the device supports
tagged command queueing.inq_sftre, if reset, indicates that the device responds to
the RESET condition with the hard RESET alternative. If this bit is set, this indicates that the device responds with the soft RESET alternative.inq_vid contains eight bytes of ASCII data identifying the
vendor of the product.inq_pid contains sixteen bytes of ASCII data as defined by
the vendor.inq_revision contains four bytes of ASCII data as defined by
the vendor.inq_clk clocking of the SPI3 target port.
inq_gas the SPI3 target port supports quick arbitration and
selection.inq_ius the SPI3 target device supports information unit
transfers.SEE ALSO
scsi_probe(9F), scsi_device(9S)
ANSI Small Computer System Interface-2 (SCSI-2)
SunOS 5.11 Last change: 5 Nov 2008 6
Data Structures for Drivers scsi_inquiry(9S)
ANSI SCSI Primary Commands-3 (SPC-3)
http://t10.org/drafts.htm#spc3
Writing Device DriversSunOS 5.11 Last change: 5 Nov 2008 7