2 .\" Copyright (c) 2008, Sun Microsystems, Inc. , All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH SCSI_INQUIRY 9S "Nov 5, 2008"
8 scsi_inquiry \- SCSI inquiry structure
12 #include <sys/scsi/scsi.h>
18 Solaris DDI specific (Solaris DDI).
22 The \fBscsi_inquiry\fR structure contains 36 required bytes, followed by a
23 variable number of vendor-specific parameters. Bytes 59 through 95, if
24 returned, are reserved for future standardization. This structure is part of
25 \fBscsi_device\fR(9S) structure and typically filled in by
31 Lines that start with an 'X' will be deleted before submission;
32 they are being classified as unstable at this time.
34 uchar_t inq_dtype; /* Periph. qualifier, dev. type */
35 uchar_t inq_rmb :1; /* Removable media */
36 uchar_t inq_qual :7; /* Dev. type qualifier */
37 uchar_t inq_iso :2; /* ISO version */
38 uchar_t inq_ecma :3; /* EMCA version */
39 uchar_t inq_ansi :3; /* ANSII version */
40 uchar_t inq_aenc :1; /* Async event notif. cap. */
41 uchar_t inq_trmiop :1; /* Supports TERMINATE I/O PROC msg */
42 uchar_t inq_normaca :1; /* setting NACA bit supported */
43 uchar_t inq_hisup :1; /* hierarchical addressing model */
44 uchar_t inq_rdf :4; /* Response data format */
45 uchar_t inq_len /* Additional length */
46 uchar_t inq_sccs :1; /* embedded storage array */
47 Xuchar_t inq_acc :1; /* access controls coordinator */
48 uchar_t inq_tpgse :1; /* explicit asymmetric lun access */
49 uchar_t inq_tpgsi :1; /* implicit asymmetric lun access */
50 Xuchar_t inq_3pc :1; /* third-party copy */
51 Xuchar_t inq_protect :1; /* supports protection information */
52 uchar_t inq_bque :1; /* basic queueing */
53 uchar_t inq_encserv :1; /* embedded enclosure services */
54 uchar_t inq_dualp :1; /* dual port device */
55 uchar_t inq_mchngr :1; /* embedded/attached to medium chngr */
56 uchar_t inq_addr16 :1; /* SPI: supports 16 bit wide SCSI addr */
57 uchar_t inq_wbus16 :1; /* SPI: Supports 16 bit wide data xfers */
58 uchar_t inq_sync :1; /* SPI: Supports synchronous data xfers */
59 uchar_t inq_linked :1; /* Supports linked commands */
60 uchar_t inq_cmd_que :1; /* Supports command queueing */
61 uchar_t inq_sftre :1; /* Supports Soft Reset option */
62 char inq_vid[8]; /* Vendor ID */
63 char inq_pid[16]; /* Product ID */
64 char inq_revision[4]; /* Revision level */
65 uchar_t inq_clk :2; /* SPI3 clocking */
66 uchar_t inq_qas :1; /* SPI3: quick arb sel */
67 uchar_t inq_ius :1; /* SPI3: information units */
73 \fBinq_dtype\fR identifies the type of device. Bits 0 - 4 represent the
74 Peripheral Device Type and bits 5 - 7 represent the Peripheral Qualifier. The
75 following values are appropriate for Peripheral Device Type field:
79 \fB\fBDTYPE_DIRECT\fR\fR
82 Direct-access device (for example, magnetic disk).
88 \fB\fBDTYPE_SEQUENTIAL\fR\fR
91 Sequential-access device (for example, magnetic tape).
97 \fB\fBDTYPE_PRINTER\fR\fR
106 \fB\fBDTYPE_PROCESSOR\fR\fR
115 \fB\fBDTYPE_WORM\fR\fR
118 Write-once device (for example, some optical disks).
124 \fB\fBDTYPE_RODIRECT\fR\fR
133 \fB\fBDTYPE_SCANNER\fR\fR
142 \fB\fBDTYPE_OPTICAL\fR\fR
145 Optical memory device (for example, some optical disks).
151 \fB\fBDTYPE_CHANGER\fR\fR
154 Medium Changer device (for example, jukeboxes).
160 \fB\fBDTYPE_COMM\fR\fR
163 Communications device.
169 \fB\fBDTYPE_ARRAY_CTRL\fR\fR
172 Array controller device (for example, \fBRAID\fR).
178 \fB\fBDTYPE_ESI\fR\fR
181 Enclosure services device.
187 \fB\fBDTYPE_RBC\fR\fR
190 Simplified direct-access device.
196 \fB\fBDTYPE_OCRW\fR\fR
199 Optical card reader/writer device.
205 \fB\fBDTYPE_BRIDGE\fR\fR
214 \fB\fBDTYPE_OSD\fR\fR
217 Object-based storage device.
223 \fB\fBDTYPE_UNKNOWN\fR\fR
226 Unknown or no device type.
232 \fB\fBDTYPE_MASK\fR\fR
235 Mask to isolate Peripheral Device Type field.
240 The following values are appropriate for the Peripheral Qualifier field:
244 \fB\fBDPQ_POSSIBLE\fR\fR
247 The specified peripheral device type is currently connected to this logical
248 unit. If the target cannot determine whether or not a physical device is
249 currently connected, it uses this peripheral qualifier when returning the
250 \fBINQUIRY\fR data. This peripheral qualifier does not imply that the device is
251 ready for access by the initiator.
257 \fB\fBDPQ_SUPPORTED\fR\fR
260 The target is capable of supporting the specified peripheral device type on
261 this logical unit. However, the physical device is not currently connected to
268 \fB\fBDPQ_NEVER\fR\fR
271 The target is not capable of supporting a physical device on this logical unit.
272 For this peripheral qualifier, the peripheral device type shall be set to
273 \fBDTYPE_UNKNOWN\fR to provide compatibility with previous versions of
274 \fBSCSI\fR. For all other peripheral device type values, this peripheral
275 qualifier is reserved.
281 \fB\fBDPQ_VUNIQ\fR\fR
284 This is a vendor-unique qualifier.
293 Mask to isolate Peripheral Qualifier field.
298 \fBDTYPE_NOTPRESENT\fR is the peripheral qualifier \fBDPQ_NEVER\fR and the
299 peripheral device type \fBDTYPE_UNKNOWN\fR combined.
302 \fBinq_rmb\fR, if set, indicates that the medium is removable.
305 \fBinq_qual\fR is a device type qualifier.
308 \fBinq_iso\fR indicates \fBISO \fRversion.
311 \fBinq_ecma\fR indicates \fBECMA \fRversion.
314 \fBinq_ansi\fR indicates \fBANSI \fRversion.
317 \fBinq_aenc\fR, if set, indicates that the device supports asynchronous event
318 notification capability as defined in \fBSCSI-2 \fRspecification.
321 \fBinq_trmiop\fR, if set, indicates that the device supports the \fBTERMINATE
322 I/O PROCESS\fRmessage.
325 \fBinq_normaca\fR, if set, indicates that the device supports setting the
326 \fBNACA\fR bit to 1 in \fBCDB\fR.
329 \fBinq_hisip\fR, if set, indicates the \fBSCSI\fR target device uses the
330 hierarchical addressing model to assign \fBLUN\fRs to logical units.
333 \fBinq_rdf\fR, if set, indicates the \fBINQUIRY\fR data response data format:
334 "\fBRDF_LEVEL0\fR" means that this structure complies with the \fBSCSI-1\fR
335 spec, "\fBRDF_CCS\fR" means that this structure complies with the \fBCCS\fR
336 pseudo-spec, and "\fBRDF_SCSI2\fR" means that the structure complies with the
340 \fBinq_len\fR, if set, is the additional length field that specifies the length
341 in bytes of the parameters.
344 \fBinq_sccs\fR, if set, indicates the target device contains an embedded
345 storage array controller component.
348 \fBinq_acc\fR, if set, indicates that the logical unit contains an access
349 controls coordinator (this structure member will be deleted before submission.
350 It is being classified as unstable at this time).
353 \fBinq_tpgse\fR, if set, indicates that implicit asymmetric logical unit access
357 \fBinq_tpgsi\fR, if set, indicates that explicit asymmetric logical unit access
361 \fBinq_3pc\fR, if set, indicates that the \fBSCSI\fR target device supports
362 third-party copy commands (this structure member will be deleted before
363 submission. It is being classified as unstable at this time).
366 \fBinq_protect\fR, if set, indicates that the logical unit supports protection
367 information (this structure member will be deleted before submission. It is
368 being classified as unstable at this time).
371 \fBinq_bque\fR, if set, indicates that the logical unit supports basic task
375 \fBinq_encserv\fR, if set, indicates that the device contains an embedded
376 enclosure services component (\fBses\fR(7D)).
379 \fBinq_dualp\fR, if set, indicates that the \fBSCSI\fR target device supports
383 \fBinq_mchngr\fR, if set, indicates that the \fBSCSI\fR target device supports
384 commands to control an attached media changer.
387 \fBinq_addr16\fR, if set, indicates that the device supports 16-bit wide
388 \fBSCSI\fR addresses.
391 \fBinq_wbus16\fR, if set, indicates that the device supports 16-bit wide data
395 \fBinq_sync\fR, if set, indicates that the device supports synchronous data
399 \fBinq_linked\fR, if set, indicates that the device supports linked commands
400 for this logical unit.
403 \fBinq_cmdque\fR, if set, indicates that the device supports tagged command
407 \fBinq_sftre\fR, if reset, indicates that the device responds to the
408 \fBRESET\fR condition with the hard \fBRESET\fR alternative. If this bit is
409 set, this indicates that the device responds with the soft \fBRESET\fR
413 \fBinq_vid\fR contains eight bytes of \fBASCII \fRdata identifying the vendor
417 \fBinq_pid\fR contains sixteen bytes of \fBASCII \fRdata as defined by the
421 \fBinq_revision\fR contains four bytes of \fBASCII \fRdata as defined by the
425 \fBinq_clk\fR clocking of the \fBSPI3\fR target port.
428 \fBinq_gas\fR the \fBSPI3\fR target port supports quick arbitration and
432 \fBinq_ius\fR the \fBSPI3\fR target device supports information unit transfers.
436 \fBscsi_probe\fR(9F), \fBscsi_device\fR(9S)
439 \fIANSI Small Computer System Interface-2 (SCSI-2)\fR
442 \fIANSI SCSI Primary Commands-3 (SPC-3)\fR
445 http://t10.org/drafts.htm#spc3
448 \fIWriting Device Drivers\fR