1scsi_inquiry(9S) Data Structures for Drivers scsi_inquiry(9S)
2
3
4
6 scsi_inquiry - SCSI inquiry structure
7
9 #include <sys/scsi/scsi.h>
10
11
13 Solaris DDI specific (Solaris DDI).
14
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
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
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)