1scsi_inquiry(9S)          Data Structures for Drivers         scsi_inquiry(9S)
2
3
4

NAME

6       scsi_inquiry - SCSI inquiry structure
7

SYNOPSIS

9       #include <sys/scsi/scsi.h>
10
11

INTERFACE LEVEL

13       Solaris DDI specific (Solaris DDI).
14

DESCRIPTION

16       The  scsi_inquiry  structure  contains 36 required bytes, followed by a
17       variable number of vendor-specific parameters. Bytes 59 through 95,  if
18       returned,  are  reserved  for future standardization. This structure is
19       part  of  scsi_device(9S)  structure  and  typically   filled   in   by
20       scsi_probe(9F).
21

STRUCTURE MEMBERS

23         Lines that start with an 'X' will be deleted before submission;
24         they are being classified as unstable at this time.
25
26         uchar_t  inq_dtype;         /* Periph. qualifier, dev. type */
27         uchar_t  inq_rmb      :1;   /* Removable media */
28         uchar_t  inq_qual     :7;   /* Dev. type qualifier */
29         uchar_t  inq_iso      :2;   /* ISO version */
30         uchar_t  inq_ecma     :3;   /* EMCA version */
31         uchar_t  inq_ansi     :3;   /* ANSII version */
32         uchar_t  inq_aenc     :1;   /* Async event notif. cap. */
33         uchar_t  inq_trmiop   :1;   /* Supports TERMINATE I/O PROC msg */
34         uchar_t  inq_normaca  :1;   /* setting NACA bit supported */
35         uchar_t  inq_hisup    :1;   /* hierarchical addressing model */
36         uchar_t  inq_rdf      :4;   /* Response data format */
37         uchar_t  inq_len            /* Additional length */
38         uchar_t  inq_sccs     :1;   /* embedded storage array */
39         Xuchar_t inq_acc      :1;   /* access controls coordinator */
40         uchar_t  inq_tpgse    :1;   /* explicit asymmetric lun access */
41         uchar_t  inq_tpgsi    :1;   /* implicit asymmetric lun access */
42         Xuchar_t inq_3pc      :1;   /* third-party copy */
43         Xuchar_t inq_protect  :1;   /* supports protection information */
44         uchar_t  inq_bque     :1;   /* basic queueing */
45         uchar_t  inq_encserv  :1;   /* embedded enclosure services */
46         uchar_t  inq_dualp    :1;   /* dual port device */
47         uchar_t  inq_mchngr   :1;   /* embedded/attached to medium chngr */
48         uchar_t  inq_addr16   :1;   /* SPI: supports 16 bit wide SCSI addr */
49         uchar_t  inq_wbus16   :1;   /* SPI: Supports 16 bit wide data xfers */
50         uchar_t  inq_sync     :1;   /* SPI: Supports synchronous data xfers */
51         uchar_t  inq_linked   :1;   /* Supports linked commands */
52         uchar_t  inq_cmd_que  :1;   /* Supports command queueing */
53         uchar_t  inq_sftre    :1;   /* Supports Soft Reset option */
54         char     inq_vid[8];        /* Vendor ID */
55         char     inq_pid[16];       /* Product ID */
56         char     inq_revision[4];   /* Revision level */
57         uchar_t  inq_clk      :2;   /* SPI3 clocking */
58         uchar_t  inq_qas      :1;   /* SPI3: quick arb sel */
59         uchar_t  inq_ius      :1;   /* SPI3: information units */
60
61
62
63       inq_dtype  identifies  the  type  of  device.  Bits 0 - 4 represent the
64       Peripheral Device Type and bits 5 - 7 represent the  Peripheral  Quali‐
65       fier.  The  following values are appropriate for Peripheral Device Type
66       field:
67
68       DTYPE_DIRECT        Direct-access device (for example, magnetic disk).
69
70
71       DTYPE_SEQUENTIAL    Sequential-access  device  (for  example,  magnetic
72                           tape).
73
74
75       DTYPE_PRINTER       Printer device.
76
77
78       DTYPE_PROCESSOR     Processor device.
79
80
81       DTYPE_WORM          Write-once   device   (for  example,  some  optical
82                           disks).
83
84
85       DTYPE_RODIRECT      CD-ROM device.
86
87
88       DTYPE_SCANNER       Scanner device.
89
90
91       DTYPE_OPTICAL       Optical memory device (for  example,  some  optical
92                           disks).
93
94
95       DTYPE_CHANGER       Medium Changer device (for example, jukeboxes).
96
97
98       DTYPE_COMM          Communications device.
99
100
101       DTYPE_ARRAY_CTRL    Array controller device (for example, RAID).
102
103
104       DTYPE_ESI           Enclosure services device.
105
106
107       DTYPE_RBC           Simplified direct-access device.
108
109
110       DTYPE_OCRW          Optical card reader/writer device.
111
112
113       DTYPE_BRIDGE        Bridge.
114
115
116       DTYPE_OSD           Object-based storage device.
117
118
119       DTYPE_UNKNOWN       Unknown or no device type.
120
121
122       DTYPE_MASK          Mask to isolate Peripheral Device Type field.
123
124
125
126       The  following  values  are  appropriate  for  the Peripheral Qualifier
127       field:
128
129       DPQ_POSSIBLE     The specified peripheral device type is currently con‐
130                        nected  to  this  logical  unit.  If the target cannot
131                        determine whether or not a  physical  device  is  cur‐
132                        rently  connected,  it  uses this peripheral qualifier
133                        when returning the INQUIRY data. This peripheral qual‐
134                        ifier  does  not  imply  that  the device is ready for
135                        access by the initiator.
136
137
138       DPQ_SUPPORTED    The target is  capable  of  supporting  the  specified
139                        peripheral  device type on this logical unit. However,
140                        the physical device is not currently connected to this
141                        logical unit.
142
143
144       DPQ_NEVER        The  target  is  not  capable of supporting a physical
145                        device on this logical unit. For this peripheral qual‐
146                        ifier,  the  peripheral  device  type  shall be set to
147                        DTYPE_UNKNOWN to provide compatibility  with  previous
148                        versions of SCSI. For all other peripheral device type
149                        values, this peripheral qualifier is reserved.
150
151
152       DPQ_VUNIQ        This is a vendor-unique qualifier.
153
154
155       DPQ_MASK         Mask to isolate Peripheral Qualifier field.
156
157
158
159       DTYPE_NOTPRESENT is the peripheral qualifier DPQ_NEVER and the  periph‐
160       eral device type DTYPE_UNKNOWN combined.
161
162
163       inq_rmb, if set, indicates that the medium is removable.
164
165
166       inq_qual is a device type qualifier.
167
168
169       inq_iso indicates ISO version.
170
171
172       inq_ecma indicates ECMA version.
173
174
175       inq_ansi indicates ANSI version.
176
177
178       inq_aenc, if set, indicates that the device supports asynchronous event
179       notification capability as defined in SCSI-2 specification.
180
181
182       inq_trmiop, if set, indicates that the device  supports  the  TERMINATE
183       I/O PROCESSmessage.
184
185
186       inq_normaca,  if  set,  indicates  that the device supports setting the
187       NACA bit to 1 in CDB.
188
189
190       inq_hisip, if set, indicates the SCSI target device uses the hierarchi‐
191       cal addressing model to assign LUNs to logical units.
192
193
194       inq_rdf,  if  set,  indicates  the  INQUIRY  data response data format:
195       "RDF_LEVEL0" means that this structure complies with the  SCSI-1  spec,
196       "RDF_CCS"  means that this structure complies with the CCS pseudo-spec,
197       and "RDF_SCSI2" means that the structure  complies  with  the  SCSI-2/3
198       spec.
199
200
201       inq_len,  if  set,  is  the  additional length field that specifies the
202       length in bytes of the parameters.
203
204
205       inq_sccs, if set, indicates the  target  device  contains  an  embedded
206       storage array controller component.
207
208
209       inq_acc,  if  set,  indicates  that the logical unit contains an access
210       controls coordinator (this structure member will be deleted before sub‐
211       mission. It is being classified as unstable at this time).
212
213
214       inq_tpgse,  if  set,  indicates  that  implicit asymmetric logical unit
215       access is supported.
216
217
218       inq_tpgsi, if set, indicates  that  explicit  asymmetric  logical  unit
219       access is supported.
220
221
222       inq_3pc,  if set, indicates that the SCSI target device supports third-
223       party copy commands (this structure member will be deleted before  sub‐
224       mission. It is being classified as unstable at this time).
225
226
227       inq_protect,  if  set, indicates that the logical unit supports protec‐
228       tion information (this structure member will be deleted before  submis‐
229       sion. It is being classified as unstable at this time).
230
231
232       inq_bque,  if  set, indicates that the logical unit supports basic task
233       management.
234
235
236       inq_encserv, if set, indicates that the  device  contains  an  embedded
237       enclosure services component (ses(7D)).
238
239
240       inq_dualp,  if  set, indicates that the SCSI target device supports two
241       or more ports.
242
243
244       inq_mchngr, if set, indicates that the SCSI target device supports com‐
245       mands to control an attached media changer.
246
247
248       inq_addr16, if set, indicates that the device supports 16-bit wide SCSI
249       addresses.
250
251
252       inq_wbus16, if set, indicates that the device supports 16-bit wide data
253       transfers.
254
255
256       inq_sync,  if  set, indicates that the device supports synchronous data
257       transfers.
258
259
260       inq_linked, if set, indicates that the device supports linked  commands
261       for this logical unit.
262
263
264       inq_cmdque,  if  set, indicates that the device supports tagged command
265       queueing.
266
267
268       inq_sftre, if reset, indicates that the device responds  to  the  RESET
269       condition  with  the  hard  RESET alternative. If this bit is set, this
270       indicates that the device responds with the soft RESET alternative.
271
272
273       inq_vid contains eight bytes of ASCII data identifying  the  vendor  of
274       the product.
275
276
277       inq_pid contains sixteen bytes of ASCII data as defined by the vendor.
278
279
280       inq_revision  contains  four bytes of ASCII data as defined by the ven‐
281       dor.
282
283
284       inq_clk clocking of the SPI3 target port.
285
286
287       inq_gas the SPI3 target port supports quick arbitration and selection.
288
289
290       inq_ius the SPI3 target device supports information unit transfers.
291

SEE ALSO

293       scsi_probe(9F), scsi_device(9S)
294
295
296       ANSI Small Computer System Interface-2 (SCSI-2)
297
298
299       ANSI SCSI Primary Commands-3 (SPC-3)
300
301
302       http://t10.org/drafts.htm#spc3
303
304
305       Writing Device Drivers
306
307
308
309SunOS 5.11                        5 Nov 2008                  scsi_inquiry(9S)
Impressum