1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #pragma ident	"%Z%%M%	%I%	%E% SMI"
28 
29 #include <sys/scsi/scsi.h>
30 #include <sys/mtio.h>
31 #include <sys/condvar.h>
32 #include <sys/kstat.h>
33 #include <sys/scsi/targets/stdef.h>
34 
35 const char st_conf_version[] = "%M% %I% %E%";
36 /*
37  * General
38  * -------
39  * o MT_DENSITYx counts from 1..4, rather than 0..3.
40  * o Some entries specify a value for the 'length' member that is
41  *   less than the actual length of the 'vid' member. This is done
42  *   intentionally to allow the comparison to succeed for different
43  *   drives.
44  */
45 
46 /*
47  * Drive Tables.
48  *
49  * The structure and option definitions can be
50  * found in <sys/scsi/targets/stdef.h>.
51  *
52  * Note: that blocksize should be a power of two
53  * for fixed-length recording devices.
54  *
55  * Note: the speed codes are unused at present.
56  * The driver turns around whatever is reported
57  * from the drive via the mode sense.
58  *
59  * Note: the read retry and write retry counts
60  * are there to provide a limit until warning
61  * messages are printed.
62  *
63  *
64  * Note: For drives that are not in this table....
65  *
66  * The first open of the device will cause a MODE SENSE command
67  * to be sent. From that we can determine block size. If block
68  * size is zero, than this drive is in variable-record length
69  * mode. The driver uses the SCSI-2 specification density codes in
70  * order to attempt to determine what kind of sequential access
71  * device this is. This will allow determination of 1/4" cartridge,
72  * 1/2" cartridge, some helical scan (3.81 && 8 mm cartridge) and
73  * 1/2" reel tape devices. The driver will print what it finds and is
74  * assuming to the console. If the device you have hooked up returns
75  * the default density code (0) after power up, the drive cannot
76  * determine what kind of drive it might be, so it will assume that
77  * it is an unknown 1/4" cartridge tape (QIC).
78  *
79  * If the drive is determined in this way to be a 1/2" 9-track reel
80  * type device, an attempt will be mode to put it in Variable
81  * record length mode.
82  *
83  * Generic drives are assumed to support only the long erase option
84  * and will not to be run in buffered mode.
85  */
86 
87 /*
88  * Format for Tape Drive Entry
89  *
90  * Please maintain the format currently in use for defining the properties
91  * associated with each tape drive. This format is intended to make the
92  * entries more readable and help increase the accuracy of the entries.
93  * See the actual entries for examples of what they should look like.
94  *
95  * Important points to note about the format:
96  *
97  * 1. The opening and closing braces are indented 2 spaces.
98  * 2. Each line in the entry is indented 4 spaces.
99  * 3. The numerical values and text in the .options comments are indented two
100  *    spaces in the comment block.
101  * 4. The maximum line width is 80 columns; do not exceed this.
102  * 5. The comment delimiters should line up, per the example.
103  * 6. The OR symbol (|) should line up for multiple options.
104  * 7. Hexadecimal values should be capitalized, for consistency.
105  * 8. The leading / in the comment block header is indented 2 spaces and the
106  *    susequent *'s should all line up.
107  * 9. Order of the entries is very important. There are several groups of
108  *    entries where the last entry in the grouping acts as a catch-all. If you
109  *    place an entry after the catch-all, it will never be used by the driver.
110  * 10. TABs should not be used anywhere between the BEGIN CSTYLED and
111  *    END CSTYLED lines.
112  */
113 
114 /*
115  * Supported Drive Options
116  *
117  * The descriptions for the supported drive options are taken from stdef.h.
118  *
119  * ST_VARIABLE                          Device supports variable length record
120  *                                      sizes.
121  * ST_QIC                               QIC tape device.
122  * ST_REEL                              1/2-inch reel tape device.
123  * ST_BSF                               Device supports backspace file as in
124  *                                      mt(1) bsf backspace over EOF marks.
125  *                                      Devices not supporting bsf will fail
126  *                                      with ENOTTY upon use of bsf.
127  * ST_BSR                               Device supports backspace record as in
128  *                                      mt(1) bsr : backspace over records. If
129  *                                      the device does not support bsr, the st
130  *                                      driver emulates the action by rewinding
131  *                                      the tape and using forward space file
132  *                                      (fsf) to the correct file and then uses
133  *                                      forward space record (fsr) to the
134  *                                      correct record.
135  * ST_LONG_ERASE                        Device needs a longer time than normal
136  *                                      to erase.
137  * ST_AUTODEN_OVERRIDE                  Autodensity override flag Device can
138  *                                      figure out the tape density
139  *                                      automatically,without issuing a mode-
140  *                                      select/mode-sense.
141  * ST_NOBUF                             Don't use buffered mode. This disables
142  *                                      the device's ability for buffered writes
143  *                                      i.e. The device acknowledges write
144  *                                      completion after the data is written to
145  *                                      the device's buffer, but before all the
146  *                                      data is actually written to tape.
147  * ST_RESERVED_BIT1                     Reserved bit parity while talking to it.
148  * ST_KNOWS_EOD                         Device knows when EOD (End of Data) has
149  *                                      been reached. If the device knows EOD,
150  *                                      st uses fast file skipping. If it does
151  *                                      not know EOD, file skipping happens one
152  *                                      file at a time.
153  * ST_UNLOADABLE                        Device will not complain if the st
154  *                                      driver is unloaded & loaded again;
155  *                                      e.g. will return the correct inquiry
156  *                                      string.
157  * ST_SOFT_ERROR_REPORTING              Do request or log sense on close to
158  *                                      report soft errors.Currently only
159  *                                      Exabyte and DAT drives support this
160  *                                      feature.
161  * ST_LONG_TIMEOUTS                     Device needs 5 times longer timeouts
162  *                                      for normal operation.
163  * ST_BUFFERED_WRITES                   The data is buffered in the driver and
164  *                                      pre-acked to the application.
165  * ST_NO_RECSIZE_LIMIT                  For variable record size devices only.
166  *                                      If flag is set,then don't limit record
167  *                                      size to 64k as in pre-Solaris 2.4
168  *                                      releases. The only limit on the record
169  *                                      size will be the max record size the
170  *                                      device can handle or the max DMA
171  *                                      transfer size of the machine, which ever
172  *                                      is smaller. Beware of incompatabilities
173  *                                      with tapes of pre-Solaris 2.4 OS's
174  *                                      written with large (>64k) block sizes,
175  *                                      as their true block size is a max of
176  *                                      approx 64k.
177  * ST_MODE_SEL_COMP                     Use mode select of device configuration
178  *                                      page (0x10) to enable/disable
179  *                                      compression instead of density codes
180  *                                      for the "c" and "u" devices.
181  * ST_NO_RESERVE_RELEASE                For devices which do not support
182  *                                      RESERVE/RELEASE SCSI command. If this
183  *                                      is enabled then RESERVE/RELEASE would
184  *                                      not be used during open/close for High
185  *                                      Availability.
186  * ST_READ_IGNORE_ILI                   This flag is only applicable to
187  *                                      variable block devices which support
188  *                                      the SILI bit option. It indicates that
189  *                                      the SILI bit will be ignored during
190  *                                      reads.
191  * ST_READ_IGNORE_EOFS                  When this flag is set two EOF marks do
192  *                                      not indicate an EOM. This option is
193  *                                      only supported on 1/2" reel tapes.
194  * ST_SHORT_FILEMARKS                   This option applies only to EXABYTE 8mm
195  *                                      tape drives which support short
196  *                                      filemarks. When this flag is set, short
197  *                                      filemarks will be used for writing
198  *                                      filemarks.
199  * ST_EJECT_ON_CHANGER_FAILURE          When this flag is set and the tape is
200  *                                      trapped in the medium changer, the
201  *                                      tape is automatically ejected.
202  * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR This option applies only to IBM MAGSTAR
203  *                                      3590. If this flag is set, the st
204  *                                      driver will retry the last cmd if the
205  *                                      last error cause a check condition with
206  *                                      error code 0x71 and sense code 0x01.
207  */
208 
209 /*
210  * Values Corresponding To The Supported Drive Options Flags
211  *
212  * ST_VARIABLE                            0x000001
213  * ST_QIC                                 0x000002
214  * ST_REEL                                0x000004
215  * ST_BSF                                 0x000008
216  * ST_BSR                                 0x000010
217  * ST_LONG_ERASE                          0x000020
218  * ST_AUTODEN_OVERRIDE                    0x000040
219  * ST_NOBUF                               0x000080
220  * ST_RESERVED_BIT1                       0x000100
221  * ST_KNOWS_EOD                           0x000200
222  * ST_UNLOADABLE                          0x000400
223  * ST_SOFT_ERROR_REPORTING                0x000800
224  * ST_LONG_TIMEOUT                        0x001000
225  * ST_BUFFERED_WRITES                     0x004000
226  * ST_NO_RECSIZE_LIMIT                    0x008000
227  * ST_MODE_SEL_COMP                       0x010000
228  * ST_NO_RESERVE_RELEASE                  0x020000
229  * ST_READ_IGNORE_ILI                     0x040000
230  * ST_READ_IGNORE_EOFS                    0x080000
231  * ST_SHORT_FILEMARKS                     0x100000
232  * ST_EJECT_ON_CHANGER_FAILURE            0x200000
233  * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR   0x400000
234  */
235 
236 const struct st_drivetype st_drivetypes[] =
237 {
238 	/* BEGIN CSTYLED */
239   /*
240    * Anritsu 1/2" reel
241    *
242    *     NOTES
243    *     -----
244    *  o This is an unsupported drive.
245    *
246    * [1] The Anritsu 1/2" reel has two density codes (or 0 for "default").
247    * [2] The Anritsu 1/2" reel has only one speed (if the driver ever cares).
248    * [3] max_rretries and max_wretries are driver anachronisms.
249    */
250   {                           /* Structure member Description                 */
251                               /* ---------------- -----------                 */
252     "Unisys 1/2\" Reel",      /* .name            Display ("pretty") name     */
253     15,                       /* .length          Length of next item...      */
254     "ANRITSU DMT2120",        /* .vid             Vendor-product ID string    */
255     ST_TYPE_ANRITSU,          /* .type            Numeric type (cf. mtio.h)   */
256     0,                        /* .bsize           Block size (0 = variable)   */
257                               /* .options         Drive option flags:         */
258     ST_VARIABLE  |            /*    00001           Supports variable length  */
259     ST_REEL      |            /*    00004           1/2-inch reel tape device */
260     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
261     ST_BSR       |            /*    00010           Supports SPACE block rev  */
262     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
263                               /*    -----                                     */
264                               /*    0041D                                     */
265     400,                      /* .max_rretries    [Note 3]                    */
266     400,                      /* .max_wretries    [Note 3]                    */
267     {0x00, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
268     MT_DENSITY2,              /* .default_density (.densities[x])             */
269     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
270   },
271 
272   /*
273    * Archive QIC-150 1/4" cartridge
274    *
275    *     NOTES
276    *     -----
277    *  o The manual for the Archive drive claims that this drive
278    *    can backspace filemarks. In practice this doens't always
279    *    seem to be the case.
280    * [1] The QIC-150 uses 0 or "default" density.
281    * [2] The QIC-150 has only one speed (if the driver ever cares).
282    * [3] max_rretries and max_wretries are driver anachronisms.
283    */
284   {                           /* Structure member Description                 */
285                               /* ---------------- -----------                 */
286     "Archive QIC-150",        /* .name            Display ("pretty") name     */
287     13,                       /* .length          Length of next item...      */
288     "ARCHIVE VIPER",          /* .vid             Vendor-product ID string    */
289     ST_TYPE_ARCHIVE,          /* .type            Numeric type (cf. mtio.h)   */
290     512,                      /* .bsize           Block size (0 = variable)   */
291                               /* .options         Drive option flags:         */
292     ST_QIC              |     /*    00002           QIC tape device           */
293     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
294     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
295     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
296                               /*    -----                                     */
297                               /*    00642                                     */
298     400,                      /* .max_rretries    [Note 3]                    */
299     400,                      /* .max_wretries    [Note 3]                    */
300     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
301     MT_DENSITY2,              /* .default_density (.densities[x])             */
302     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
303   },
304 
305   /*
306    * Archive Python 04106 4mm 2GB drive
307    *
308    *     NOTES
309    *     -----
310    *  o This is an unsupported drive.
311    *
312    * [1] The Python 04106 has only one density, 0x42 (or 0 for "default").
313    * [2] The Python 04106 has only one speed (if the driver ever cares).
314    * [3] max_rretries and max_wretries are driver anachronisms.
315    * [4] The manufacturer recommends 0x2c ("MT_ISPYTHON") here,
316    *     even though ST_TYPE_PYTHON is recommended.  For con-
317    *     sistency, let's not fight it.
318    */
319   {                           /* Structure member Description                 */
320                               /* ---------------- -----------                 */
321     "Seagate Scorpion 24 DDS3 DAT",
322                               /* .name            Display ("pretty") name     */
323     20,                       /* .length          Length of next item...      */
324     "ARCHIVE Python 04106",   /* .vid             Vendor-product ID string    */
325     MT_ISPYTHON,              /* .type            Numeric type  [Note 4]      */
326     0,                        /* .bsize           Block size (0 = variable)   */
327                               /* .options         Drive option flags:         */
328     ST_VARIABLE        |      /*    00001           Supports variable length  */
329     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
330     ST_BSR             |      /*    00010           Supports SPACE block rev  */
331     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
332     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
333     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
334     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
335     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
336                               /*    -----                                     */
337                               /*    09639                                     */
338     400,                      /* .max_rretries    [Note 3]                    */
339     400,                      /* .max_wretries    [Note 3]                    */
340     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
341     MT_DENSITY3,              /* .default_density (.densities[x])             */
342     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
343   },
344 
345   /*
346    * Archive/Conner CTDX004 4mm DAT
347    *
348    *     NOTES
349    *     -----
350    * [1] The CTDX004 uses 0 or the "default" density code.
351    * [2] The CTDX004 has only one speed (if the driver ever cares).
352    * [3] max_rretries and max_wretries are driver anachronisms.
353    * [4] Data is buffered in the driver and pre-acked to the application. This
354    *     is only supported in 2.5.1.
355    */
356   {                           /* Structure member Description                 */
357                               /* ---------------- -----------                 */
358     "Archive/Conner CTDX004 4mm DAT",
359                               /* .name            Display ("pretty") name     */
360     20,                       /* .length          Length of next item...      */
361     "ARCHIVE Python 28388",   /* .vid             Vendor-product ID string    */
362     ST_TYPE_PYTHON,           /* .type            Numeric type (cf. mtio.h)   */
363     0,                        /* .bsize           Block size (0 = variable)   */
364                               /* .options         Drive option flags:         */
365     ST_VARIABLE             | /*    00001           Supports variable length  */
366     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
367     ST_BSR                  | /*    00010           Supports SPACE block rev  */
368     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
369     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
370     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
371     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
372     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
373     ST_BUFFERED_WRITES      | /*    04000           [Note 4]                  */
374     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
375                               /*    -----                                     */
376                               /*    0DE39                                     */
377     400,                      /* .max_rretries    [Note 3]                    */
378     400,                      /* .max_wretries    [Note 3]                    */
379     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
380     MT_DENSITY1,              /* .default_density (.densities[x])             */
381     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
382   },
383 
384   /*
385    * Archive Python 4mm 2GB drive
386    *
387    *     NOTES
388    *     -----
389    *  o This must be the last entry in the list of Python drives, since it
390    *    acts as a catch-all for any Python drive not listed above.
391    *
392    * [1] The Archive Python 4mm has only one density, 0x8c (or 0 for "default").
393    * [2] The Archive Python 4mm has only one speed (if the driver ever cares).
394    * [3] max_rretries and max_wretries are driver anachronisms.
395    * [4] Do a request or log sense on close to report soft errors.
396    */
397   {                           /* Structure member Description                 */
398                               /* ---------------- -----------                 */
399     "Archive Python 4mm Helical Scan",
400                               /* .name            Display ("pretty") name     */
401     14,                       /* .length          Length of next item...      */
402     "ARCHIVE Python",         /* .vid             Vendor-product ID string    */
403     ST_TYPE_PYTHON,           /* .type            Numeric type (cf. mtio.h)   */
404     0,                        /* .bsize           Block size (0 = variable)   */
405                               /* .options         Drive option flags:         */
406     ST_VARIABLE             | /*    00001           Supports variable length  */
407     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
408     ST_BSR                  | /*    00010           Supports SPACE block rev  */
409     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
410     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
411     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
412     ST_SOFT_ERROR_REPORTING | /*    00800           Error reporting [Note 4]  */
413     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
414     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
415                               /*    -----                                     */
416                               /*    09E39                                     */
417     5000,                     /* .max_rretries    [Note 3]                    */
418     5000,                     /* .max_wretries    [Note 3]                    */
419     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
420     MT_DENSITY4,              /* .default_density (.densities[x])             */
421     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
422   },
423 
424   /*
425    * Benchmark DLT1
426    *
427    *     NOTES
428    *     -----
429    * [1] The DLT1 reads several tape formats, but the st driver supports
430    *     only DLT1 native.
431    * [2] The DLT1 has only one speed (if the driver ever cares).
432    * [3] max_rretries and max_wretries are driver anachronisms.
433    * [4] The DLT1 has Density codes that turn on and off compression however
434    *     the data compression enable overrides them.
435    */
436   {                           /* Structure member Description                 */
437                               /* ---------------- -----------                 */
438     "Benchmark DLT1",         /* .name            Display ("pretty") name     */
439     12,                       /* .length          Length of next item...      */
440     "BNCHMARKDLT1",           /* .vid             Vendor-product ID string    */
441     ST_TYPE_BMDLT1,           /* .type            Numeric type (cf. mtio.h)   */
442     0,                        /* .bsize           Block size (0 = variable)   */
443                               /* .options         Drive option flags:         */
444     ST_VARIABLE         |     /*    00001           Supports variable length  */
445     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
446     ST_BSR              |     /*    00010           Supports SPACE block rev  */
447     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
448     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
449     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
450     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
451     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
452     ST_MODE_SEL_COMP,         /*    10000           [Note 4]                  */
453                               /*    -----                                     */
454                               /*    19639                                     */
455     -1,                       /* .max_rretries    [Note 3]                    */
456     -1,                       /* .max_wretries    [Note 3]                    */
457     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
458     MT_DENSITY4,              /* .default_density (.densities[x])             */
459     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
460   },
461 
462 
463 
464   /*
465    * CDC 1/2" cartridge
466    *
467    *     NOTES
468    *     -----
469    *  o This is an unsupported drive.
470    *
471    * [1] The CDC 1/2" cartridge uses 0 or the "default" density code.
472    * [2] The CDC 1/2" cartridge has only one speed (if the driver ever cares).
473    * [3] max_rretries and max_wretries are driver anachronisms.
474    */
475   {                           /* Structure member Description                 */
476                               /* ---------------- -----------                 */
477     "CDC 1/2\" Cartridge",    /* .name            Display ("pretty") name     */
478     3,                        /* .length          Length of next item...      */
479     "LMS",                    /* .vid             Vendor-product ID string    */
480     ST_TYPE_CDC,              /* .type            Numeric type (cf. mtio.h)   */
481     0,                        /* .bsize           Block size (0 = variable)   */
482                               /* .options         Drive option flags:         */
483     ST_VARIABLE         |     /*    00001           Supports variable length  */
484     ST_QIC              |     /*    0x002           QIC tape device           */
485     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
486     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
487     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
488     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
489     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
490                               /*    -----                                     */
491                               /*    0066B                                     */
492     300,                      /* .max_rretries    [Note 3]                    */
493     300,                      /* .max_wretries    [Note 3]                    */
494     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
495     MT_DENSITY2,              /* .default_density (.densities[x])             */
496     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
497   },
498 
499    /*
500    * Emulex MT-02 controller for 1/4" cartridge
501    *
502    *     NOTES
503    *     -----
504    *  o The EMULEX MT-02 adheres to CCS level 0, and thus
505    *    returns nothing of interest for the INQUIRY command
506    *    past the 'response data format' field (which will be
507    *    zero). The driver will recognize this and assume that
508    *    a drive that so responds is actually an MT-02 (there
509    *    is no other way to really do this, awkward as it
510    *    may seem).
511    *
512    *  o This is an unsupported drive.
513    *
514    * [1] Low density is a vendor unique density code.
515    *     This gives us 9 Track QIC-11. Supposedly the MT02 can
516    *     read 4 Track QIC-11 while in this mode. If that doesn't
517    *     work, change one of the duplicated QIC-24 fields to 0x4.
518    * [2] The MT-02 has only one speed (if the driver ever cares).
519    * [3] max_rretries and max_wretries are driver anachronisms.
520    */
521   {                           /* Structure member Description                 */
522                               /* ---------------- -----------                 */
523     "Emulex MT02 QIC-11/QIC-24",
524                               /* .name            Display ("pretty") name     */
525     12,                       /* .length          Length of next item...      */
526     "Emulex  MT02",           /* .vid             Vendor-product ID string    */
527     ST_TYPE_EMULEX,           /* .type            Numeric type (cf. mtio.h)   */
528     512,                      /* .bsize           Block size (0 = variable)   */
529                               /* .options         Drive option flags:         */
530     ST_QIC       |            /*    00002           QIC tape device           */
531     ST_KNOWS_EOD |            /*    00200           Recognizes end-of-data    */
532     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
533                               /*    -----                                     */
534                               /*    00602                                     */
535     130,                      /* .max_rretries    [Note 3]                    */
536     130,                      /* .max_wretries    [Note 3]                    */
537     {0x84, 0x05, 0x05, 0x05}, /* .densities       Density codes [Note 1]      */
538     MT_DENSITY2,              /* .default_density (.densities[x])             */
539     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
540   },
541 
542   /*
543    * Exabyte 8900 8mm helical scan drive (also called Mammoth)
544    *
545    *     NOTES
546    *     -----
547    * [1] Compression on the 8900 is controlled via the Device Configuration mode
548    *     page or the Data Compression page (either one). Even when enabled, the
549    *     8900 automatically disables compression on-the-fly if it determines
550    *     that it cannot achieve a reasonable compression ratio on the data.
551    * [2] The 8900 can write in only one format, which is selected overtly by
552    *     setting Density Code in the block descriptor to 27h; in addition to
553    *     this native format, the 8900 can read tapes written in 8200, 8500 and
554    *     8500-compressed formats. We set the density to 27h at all times: we
555    *     _can_ do this because the format is changed automatically to match the
556    *     data on any previously-written tape; we _must_ do this to ensure that
557    *     never-before-written 8900 AME tapes are written in "8900 format" (all
558    *     writes to them in any other format will fail). By establishing
559    *     MT_DENSITY4 (corresponding to the "c" and "u" minor devices) as the
560    *     default, applications which open '/dev/rmt/x' write compressed data
561    *     automatically (but see Note [1]).
562    * [3] The 8900 has only one speed (if the driver ever cares).
563    * [4] max_rretries and max_wretries are driver anachronisms.
564    */
565   {                           /* Structure member Description                 */
566                               /* ---------------- -----------                 */
567     "Mammoth EXB-8900 8mm Helical Scan",
568                               /* .name            Display ("pretty") name     */
569     16,                       /* .length          Length of next item...      */
570     "EXABYTE EXB-8900",       /* .vid             Vendor-product ID string    */
571     ST_TYPE_EXB8500,          /* .type            Numeric type (cf. mtio.h)   */
572     0,                        /* .bsize           Block size (0 = variable)   */
573                               /* .options         Drive option flags:         */
574     ST_VARIABLE             | /*    00001           Supports variable length  */
575     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
576     ST_BSR                  | /*    00010           Supports SPACE block rev  */
577     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
578     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
579     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
580     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
581     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
582     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
583     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
584                               /*    -----                                     */
585                               /*    19E39                                     */
586     5000,                     /* .max_rretries    [Note 4]                    */
587     5000,                     /* .max_wretries    [Note 4]                    */
588     {0x27, 0x27, 0x27, 0x27}, /* .densities       Density codes [Note 2]      */
589     MT_DENSITY4,              /* .default_density (.densities[x])             */
590     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
591   },
592 
593   /*
594    * Exabyte 8mm 5GB cartridge
595    *
596    *     NOTES
597    *     -----
598    *  o  ST_KNOWS_EOD here will cause medium error messages
599    *
600    *  o  The string length (16) has been reduced to 15 to allow for other
601    *     compatible models (eg the 8505 half-height)  (BugTraq #1091196)
602    *
603    * [1] The density code entry requires four values, even if there are less
604    *     than four values for the drive.
605    * [2] The Exabyte EXB-8500 has only one speed (if the driver ever cares).
606    * [3] max_rretries and max_wretries are driver anachronisms.
607    */
608   {                           /* Structure member Description                 */
609                               /* ---------------- -----------                 */
610     "Exabyte EXB-8500 8mm Helical Scan",
611                               /* .name            Display ("pretty") name     */
612     15,                       /* .length          Length of next item...      */
613     "EXABYTE EXB-850*",       /* .vid             Vendor-product ID string    */
614     ST_TYPE_EXB8500,          /* .type            Numeric type (cf. mtio.h)   */
615     0,                        /* .bsize           Block size (0 = variable)   */
616                               /* .options         Drive option flags:         */
617     ST_VARIABLE             | /*    00001           Supports variable length  */
618     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
619     ST_BSR                  | /*    00010           Supports SPACE block rev  */
620     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
621     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
622     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
623     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
624     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
625                               /*    -----                                     */
626                               /*    08E39                                     */
627     5000,                     /* .max_rretries    [Note 3]                    */
628     5000,                     /* .max_wretries    [Note 3]                    */
629     {0x14, 0x15, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
630     MT_DENSITY2,              /* .default_density (.densities[x])             */
631     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
632   },
633 
634   /*
635    * Exabyte 8mm 2GB cartridge
636    *
637    *     NOTES
638    *     -----
639    * [1] The Exabyte EXB-8200 uses 0 or the "default" density code.
640    * [2] The Exabyte EXB-8200 has only one speed (if the driver ever cares).
641    * [3] max_rretries and max_wretries are driver anachronisms.
642    * [4] Do a request or log sense on close to report soft errors.
643    */
644   {                           /* Structure member Description                 */
645                               /* ---------------- -----------                 */
646     "Exabyte EXB-8200 8mm Helical Scan",
647                               /* .name            Display ("pretty") name     */
648     16,                       /* .length          Length of next item...      */
649     "EXABYTE EXB-8200",       /* .vid             Vendor-product ID string    */
650     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
651     0,                        /* .bsize           Block size (0 = variable)   */
652                               /* .options         Drive option flags:         */
653     ST_VARIABLE             | /*    00001           Supports variable length  */
654     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
655     ST_BSR                  | /*    00010           Supports SPACE block rev  */
656     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
657     ST_AUTODEN_OVERRIDE     | /*    00040           Autodensity override flag */
658     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
659     ST_SOFT_ERROR_REPORTING | /*    00800           Error reporting [Note 4]  */
660     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
661                               /*    -----                                     */
662                               /*    08C79                                     */
663     5000,                     /* .max_rretries    [Note 3]                    */
664     5000,                     /* .max_wretries    [Note 3]                    */
665     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
666     MT_DENSITY2,              /* .default_density (.densities[x])             */
667     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
668   },
669 
670   /*
671    * Exabyte DC-2000 cartridge
672    *
673    *     NOTES
674    *     -----
675    *  o This is an unsupported drive.
676    *
677    *  o This entry uses a shortened Vendor-product ID string for the
678    *    INQUIRY match.
679    *
680    * [1] The Exabyte DC-2000 uses 0 or the "default" density.
681    * [2] The Exabyte DC-2000 has only one speed (if the driver ever cares).
682    * [3] max_rretries and max_wretries are driver anachronisms.
683    */
684   {                           /* Structure member Description                 */
685                               /* ---------------- -----------                 */
686     "Exabyte EXB-2501 QIC",   /* .name            Display ("pretty") name     */
687     14,                       /* .length          Length of next item...      */
688     "EXABYTE EXB-25**",       /* .vid             Vendor-product ID string    */
689     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
690     1024,                     /* .bsize           Block size (0 = variable)   */
691                               /* .options         Drive option flags:         */
692     ST_QIC              |     /*    00002           QIC tape device           */
693     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
694     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
695                               /*    -----                                     */
696                               /*    00442                                     */
697     400,                      /* .max_rretries    [Note 3]                    */
698     400,                      /* .max_wretries    [Note 3]                    */
699     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
700     MT_DENSITY2,              /* .default_density (.densities[x])             */
701     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
702   },
703 
704   /*
705    * EXABYTE 4mm Helical Scan
706    *
707    *     NOTES
708    *     -----
709    *
710    *  o This entry uses a shortened Vendor-product ID string for the
711    *    INQUIRY match.
712    *
713    * [1] The EXABYTE 4mm uses 0 or the "default" density code.
714    * [2] The EXABYTE 4mm has only one speed (if the driver ever cares).
715    * [3] max_rretries and max_wretries are driver anachronisms.
716    */
717   {                           /* Structure member Description                 */
718                               /* ---------------- -----------                 */
719     "Exabyte 4mm Helical Scan",
720                               /* .name            Display ("pretty") name     */
721     15,                       /* .length          Length of next item...      */
722     "EXABYTE EXB-420*",       /* .vid             Vendor-product ID string    */
723     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
724     0,                        /* .bsize           Block size (0 = variable)   */
725                               /* .options         Drive option flags:         */
726     ST_VARIABLE   |           /*    00001           Supports variable length  */
727     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
728     ST_BSR        |           /*    00010           Supports SPACE block rev  */
729     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
730     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
731                               /*    -----                                     */
732                               /*    00439                                     */
733     400,                      /* .max_rretries    [Note 3]                    */
734     400,                      /* .max_wretries    [Note 3]                    */
735     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
736     MT_DENSITY2,              /* .default_density (.densities[x])             */
737     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
738   },
739 
740   /*
741    * Fujitsu 1/2" cartridge
742    *
743    *     NOTES
744    *     -----
745    *  o This is an unsupported drive.
746    *
747    * [1] The Fujitsu 1/2" drive uses 0 or the "default" density code.
748    * [2] The Fujitsu 1/2" drive has only one speed (if the driver ever cares).
749    * [3] max_rretries and max_wretries are driver anachronisms.
750    */
751   {                           /* Structure member Description                 */
752                               /* ---------------- -----------                 */
753     "Fujitsu 1/2\" Cartridge",/* .name            Display ("pretty") name     */
754     2,                        /* .length          Length of next item...      */
755     "\076\000",               /* .vid             Vendor-product ID string    */
756     ST_TYPE_FUJI,             /* .type            Numeric type (cf. mtio.h)   */
757     0,                        /* .bsize           Block size (0 = variable)   */
758                               /* .options         Drive option flags:         */
759     ST_VARIABLE   |           /*    00001           Supports variable length  */
760     ST_QIC        |           /*    00002           QIC tape device           */
761     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
762     ST_BSR        |           /*    00010           Supports SPACE block rev  */
763     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
764     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
765     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
766                               /*    -----                                     */
767                               /*    0063B                                     */
768     300,                      /* .max_rretries    [Note 3]                    */
769     300,                      /* .max_wretries    [Note 3]                    */
770     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
771     MT_DENSITY2,              /* .default_density (.densities[x])             */
772     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
773   },
774 
775   /*
776    * HP 1/2" reel
777    *
778    *     NOTES
779    *     -----
780    * [1] The HP 1/2" reel uses the vendor unique density '0xC3':
781    *     this is compressed 6250 mode. Beware that using large
782    *     data sets consisting of repeated data compresses *too*
783    *     well and one can run into the unix 2 gb file offset limit
784    *     this way.
785    * [2] The HP 1/2" reel has only one speed (if the driver ever cares).
786    * [3] max_rretries and max_wretries are driver anachronisms.
787    */
788   {                           /* Structure member Description                 */
789                               /* ---------------- -----------                 */
790     "HP-88780 1/2\" Reel",    /* .name            Display ("pretty") name     */
791     13,                       /* .length          Length of next item...      */
792     "HP      88780",          /* .vid             Vendor-product ID string    */
793     ST_TYPE_HP,               /* .type            Numeric type (cf. mtio.h)   */
794     0,                        /* .bsize           Block size (0 = variable)   */
795                               /* .options         Drive option flags:         */
796     ST_VARIABLE  |            /*    00001           Supports variable length  */
797     ST_REEL      |            /*    00004           1/2-inch reel tape device */
798     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
799     ST_BSR       |            /*    00010           Supports SPACE block rev  */
800     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
801                               /*    -----                                     */
802                               /*    0041D                                     */
803     400,                      /* .max_rretries    [Note 3]                    */
804     400,                      /* .max_wretries    [Note 3]                    */
805     {0x01, 0x02, 0x03, 0xC3}, /* .densities       Density codes [Note 1]      */
806     MT_DENSITY2,              /* .default_density (.densities[x])             */
807     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
808   },
809 
810   /*
811    * HP 35470A 4mm DAT
812    *
813    *     NOTES
814    *     -----
815    *  o This is an unsupported drive.
816    *
817    * [1] The HP 35470A uses 0 or the "default" density code.
818    * [2] The HP 35470A has only one speed (if the driver ever cares).
819    * [3] max_rretries and max_wretries are driver anachronisms.
820    */
821   {                           /* Structure member Description                 */
822                               /* ---------------- -----------                 */
823     "HP 35470A 4mm DAT",      /* .name            Display ("pretty") name     */
824     16,                       /* .length          Length of next item...      */
825     "HP      HP35470A",       /* .vid             Vendor-product ID string    */
826     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
827     0,                        /* .bsize           Block size (0 = variable)   */
828                               /* .options         Drive option flags:         */
829     ST_VARIABLE         |     /*    00001           Supports variable length  */
830     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
831     ST_BSR              |     /*    00010           Supports SPACE block rev  */
832     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
833     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
834     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
835     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
836     ST_LONG_TIMEOUTS,         /*    01000           More time for some ops    */
837                               /*    -----                                     */
838                               /*    01679                                     */
839     400,                      /* .max_rretries    [Note 3]                    */
840     400,                      /* .max_wretries    [Note 3]                    */
841     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
842     MT_DENSITY2,              /* .default_density (.densities[x])             */
843     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
844   },
845 
846   /*
847    * HP 35480A 4mm DAT
848    *
849    *     NOTES
850    *     -----
851    *  o This is an unsupported drive.
852    *
853    * [1] The HP 35480A uses 0 or the "default" density code.
854    * [2] The HP 35480A has only one speed (if the driver ever cares).
855    * [3] max_rretries and max_wretries are driver anachronisms.
856    */
857   {                           /* Structure member Description                 */
858                               /* ---------------- -----------                 */
859     "HP 35480A 4mm DAT",      /* .name            Display ("pretty") name     */
860     16,                       /* .length          Length of next item...      */
861     "HP      HP35480A",       /* .vid             Vendor-product ID string    */
862     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
863     0,                        /* .bsize           Block size (0 = variable)   */
864                               /* .options         Drive option flags:         */
865     ST_VARIABLE   |           /*    00001           Supports variable length  */
866     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
867     ST_BSR        |           /*    00010           Supports SPACE block rev  */
868     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
869     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
870                               /*    -----                                     */
871                               /*    00439                                     */
872     400,                      /* .max_rretries    [Note 1]                    */
873     400,                      /* .max_wretries    [Note 1]                    */
874     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 2]      */
875     MT_DENSITY2,              /* .default_density (.densities[x])             */
876     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
877   },
878 
879   /*
880    * HP JetStore 6000 C1533
881    *
882    *     NOTES
883    *     -----
884    *  o This is only supported for x86.
885    *
886    * [1] The HP JetStore 6000 uses 0 or the "default" density code.
887    * [2] The HP JetStore 6000 has only one speed (if the driver ever cares).
888    * [3] max_rretries and max_wretries are driver anachronisms.
889    */
890   {                           /* Structure member Description                 */
891                               /* ---------------- -----------                 */
892     "HP JetStore 6000 C1533", /* .name            Display ("pretty") name     */
893     14,                       /* .length          Length of next item...      */
894     "HP      C1533A",         /* .vid             Vendor-product ID string    */
895     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
896     0,                        /* .bsize           Block size (0 = variable)   */
897                               /* .options         Drive option flags:         */
898     ST_VARIABLE   |           /*    00001           Supports variable length  */
899     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
900     ST_BSR        |           /*    00010           Supports SPACE block rev  */
901     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
902     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
903                               /*    -----                                     */
904                               /*    00639                                     */
905     400,                      /* .max_rretries    [Note 3]                    */
906     400,                      /* .max_wretries    [Note 3]                    */
907     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
908     MT_DENSITY2,              /* .default_density (.densities[x])             */
909     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
910   },
911 
912   /*
913    * HP DDS-3 4mm DAT
914    *
915    *     NOTES
916    *     -----
917    *  o This is an unsupported drive.
918    *
919    * [1] Compression on the HP DDS-3 is controlled
920    *     via the Device Configuration mode page.
921    * [2] The HP DDS-3 has only one density, 0x8c (or 0 for "default").
922    * [3] The HP DDS-3 has only one speed (if the driver ever cares).
923    * [4] max_rretries and max_wretries are driver anachronisms.
924    */
925   {                           /* Structure member Description                 */
926                               /* ---------------- -----------                 */
927     "HP DDS-3 4MM DAT",       /* .name            Display ("pretty") name     */
928     14,                       /* .length          Length of next item...      */
929     "HP      C1537A",         /* .vid             Vendor-product ID string    */
930     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
931     0,                        /* .bsize           Block size (0 = variable)   */
932                               /* .options         Drive option flags:         */
933     ST_VARIABLE        |      /*    00001           Supports variable length  */
934     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
935     ST_BSR             |      /*    00010           Supports SPACE block rev  */
936     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
937     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
938     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
939     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
940     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
941                               /*    -----                                     */
942                               /*    09639                                     */
943     400,                      /* .max_rretries    [Note 4]                    */
944     400,                      /* .max_wretries    [Note 4]                    */
945     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 2]      */
946     MT_DENSITY2,              /* .default_density (.densities[x])             */
947     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
948   },
949 
950   /*
951    * HP DDS-3 4mm DAT loader
952    *
953    *     NOTES
954    *     -----
955    *  o This is an unsupported drive.
956    *
957    * [1] Compression on the DDS-3 Loader is controlled
958    *     via the Device Configuration mode page.
959    * [2] The DDS-3 Loader has only one density, 0x8c (or 0 for "default").
960    * [3] The DDS-3 Loader has only one speed (if the driver ever cares).
961    * [4] max_rretries and max_wretries are driver anachronisms.
962    */
963   {                           /* Structure member Description                 */
964                               /* ---------------- -----------                 */
965     "HP DDS-3 4MM DAT loader",/* .name            Display ("pretty") name     */
966     14,                       /* .length          Length of next item...      */
967     "HP      C1557A",         /* .vid             Vendor-product ID string    */
968     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
969     0,                        /* .bsize           Block size (0 = variable)   */
970                               /* .options         Drive option flags:         */
971     ST_VARIABLE        |      /*    00001           Supports variable length  */
972     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
973     ST_BSR             |      /*    00010           Supports SPACE block rev  */
974     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
975     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
976     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
977     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
978     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
979                               /*    -----                                     */
980                               /*    09639                                     */
981     400,                      /* .max_rretries    [Note 4]                    */
982     400,                      /* .max_wretries    [Note 4]                    */
983     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 2]      */
984     MT_DENSITY2,              /* .default_density (.densities[x])             */
985     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
986   },
987 
988   /*
989    * HP C5683A DDS-4 DAT drives with Sun-specific behavior
990    *
991    * When the configuration switches on the drive are set appropriately, the
992    * HP C5683A: interprets a density code of 8Ch to mean "enable compression",
993    * 00h to mean "disable compression"; senses the tape type automatically;
994    * adjusts to match the tape type. (That is, compression is controlled via
995    * the Sun-unique 8Ch density code, rather than using the Data Compression
996    * mode page).
997    *
998    *     NOTES
999    *     -----
1000    * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x
1001    *     format-related adjustments are performed automatically by the drive.
1002    * [2] The 5683 has only one speed (if the driver ever cares).
1003    * [3] max_rretries and max_wretries are driver anachronisms.
1004    */
1005   {                           /* Structure member Description                 */
1006                               /* ---------------- -----------                 */
1007     "HP DDS-4 DAT (Sun)",     /* .name            Display ("pretty") name     */
1008     14,                       /* .length          Length of next item...      */
1009     "HP      C5683A",         /* .vid             Vendor-product ID string    */
1010     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1011     0,                        /* .bsize           Block size (0 = variable)   */
1012                               /* .options         Drive option flags:         */
1013     ST_VARIABLE         |     /*    00001           Supports variable length  */
1014     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1015     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1016     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
1017     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1018     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1019     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1020     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1021                               /*    -----                                     */
1022                               /*    09639                                     */
1023     -1,                       /* .max_rretries    [Note 3]                    */
1024     -1,                       /* .max_wretries    [Note 3]                    */
1025     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
1026     MT_DENSITY2,              /* .default_density (.densities[x])             */
1027     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1028   },
1029 
1030   /*
1031    * HP C5713A DDS-4 DAT autochangers with Sun-specific behavior
1032    *
1033    * When the configuration switches on the drive are set appropriately, the
1034    * HP C5713A: interprets a density code of 8Ch to mean "enable compression",
1035    * 00h to mean "disable compression"; senses the tape type automatically;
1036    * adjusts to match the tape type. (That is, compression is controlled via
1037    * the Sun-unique 8Ch density code, rather than using the Data Compression
1038    * mode page).
1039    *
1040    *     NOTES
1041    *     -----
1042    * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x
1043    *     format-related adjustments are performed automatically by the drive.
1044    * [2] The 5713 has only one speed (if the driver ever cares).
1045    * [3] max_rretries and max_wretries are driver anachronisms.
1046    */
1047   {                           /* Structure member Description                 */
1048                               /* ---------------- -----------                 */
1049     "HP DDS-4 DAT (Sun)",     /* .name            Display ("pretty") name     */
1050     14,                       /* .length          Length of next item...      */
1051     "HP      C5713A",         /* .vid             Vendor-product ID string    */
1052     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1053     0,                        /* .bsize           Block size (0 = variable)   */
1054                               /* .options         Drive option flags:         */
1055     ST_VARIABLE         |     /*    00001           Supports variable length  */
1056     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1057     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1058     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
1059     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1060     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1061     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1062     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1063                               /*    -----                                     */
1064                               /*    09639                                     */
1065     -1,                       /* .max_rretries    [Note 3]                    */
1066     -1,                       /* .max_wretries    [Note 3]                    */
1067     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
1068     MT_DENSITY2,              /* .default_density (.densities[x])             */
1069     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1070   },
1071 
1072    /*
1073     * HP C7438A
1074     */
1075   {                           /* Structure member Description                 */
1076                               /* ---------------- -----------                 */
1077     "HP DAT-72",              /* .name            Display ("pretty") name     */
1078     14,                       /* .length          Length of next item...      */
1079     "HP      C7438A",         /* .vid             Vendor-product ID string    */
1080     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1081     0,                        /* .bsize           Block size (0 = variable)   */
1082                               /* .options         Drive option flags:         */
1083     ST_VARIABLE         |     /*    00001           Supports variable length  */
1084     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1085     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1086     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1087     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1088     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1089     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1090                               /*    -----                                     */
1091                               /*    18619                                     */
1092     -1,                       /* .max_rretries      Not Used                  */
1093     -1,                       /* .max_wretries      Not Used                  */
1094     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes               */
1095     MT_DENSITY4,              /* .default_density (.densities[x])             */
1096     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
1097     0,                        /* .non_motion_timeout Nothing Special          */
1098     MINUTES(7),               /* .io_timeout         7 minutes (recover read) */
1099     0,                        /* .rewind_timeout     Nothing Special          */
1100     MINUTES(600),             /* .space_timeout      10 Hours (space seq file)*/
1101     0,                        /* .load_timeout       Nothing Special          */
1102     0,                        /* .unload_timeout     Nothing Special          */
1103     MINUTES(290)              /* .erase_timeout      4 hours 50 minutes       */
1104   },
1105 
1106   /*
1107    * HP DAT-160
1108    */
1109   {                           /* Structure member Description                 */
1110                               /* ---------------- -----------                 */
1111     "HP DDS-6 DAT",           /* .name            Display ("pretty") name     */
1112     14,                       /* .length          Length of next item...      */
1113     "HP      DAT160",         /* .vid             Vendor-product ID string    */
1114     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1115     0,                        /* .bsize           Block size (0 = variable)   */
1116                               /* .options         Drive option flags:         */
1117     ST_VARIABLE         |     /*    00001           Supports variable length  */
1118     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1119     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1120     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1121     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1122     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1123     ST_MODE_SEL_COMP    |     /*    10000           Mode select compression   */
1124     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1125                               /*  -------                                     */
1126                               /*  1018619                                     */
1127     -1,                       /* .max_rretries      Not Used                  */
1128     -1,                       /* .max_wretries      Not Used                  */
1129     {0x48, 0x48, 0x48, 0x48}, /* .densities       Density codes               */
1130     MT_DENSITY4,              /* .default_density (.densities[x])             */
1131     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
1132     0,                        /* .non_motion_timeout Nothing Special          */
1133     MINUTES(5),               /* .io_timeout                                  */
1134     MINUTES(10),              /* .rewind_timeout                              */
1135     MINUTES(20),              /* .space_timeout                               */
1136     MINUTES(10),              /* .load_timeout                                */
1137     MINUTES(10),              /* .unload_timeout                              */
1138     MINUTES(300)              /* .erase_timeout      5 hours                  */
1139   },
1140 
1141   /*
1142    * HP Ultrium LTO Gen 4
1143    * [1] This drive supports two densites at this time.
1144    *     In reality the type of media GEN 3 or GEN 4 selects the density.
1145    *     ST_MODE_SEL_COMP controls compression.
1146    * [2] The Ultrium LTO has one speed.
1147    * [3] max_rretries and max_wretries are not used but kept for
1148    *     backward compatibility.
1149    */
1150   {                           /* Structure member Description                 */
1151                               /* ---------------- -----------                 */
1152     "HP Ultrium LTO 4",       /* .name            Display ("pretty") name     */
1153     17,                       /* .length          Length of next item...      */
1154     "HP      Ultrium 4*",     /* .vid             handles SCSI or FC          */
1155     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1156     0,                        /* .bsize           Block size (0 = variable)   */
1157                               /* .options         Drive option flags:         */
1158     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1159     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1160     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1161     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1162     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1163     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1164     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
1165     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1166                               /*  -------                                     */
1167                               /*  1018619                                     */
1168     -1,                       /* .max_rretries    [Note 3]                    */
1169     -1,                       /* .max_wretries    [Note 3]                    */
1170     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
1171     MT_DENSITY4,              /* .default_density (.densities[x])             */
1172     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1173     MINUTES(1),               /* .non_motion_timeout                          */
1174     MINUTES(20),              /* .io_timeout                                  */
1175     MINUTES(10),              /* .rewind_timeout                              */
1176     MINUTES(20),              /* .space_timeout                               */
1177     MINUTES(10),              /* .load_timeout                                */
1178     MINUTES(10),              /* .unload_timeout                              */
1179     MINUTES(300)              /* .erase_timeout      Five Hours               */
1180   },
1181 
1182   /*
1183    * HP Ultrium LTO Gen 3
1184    * [1] This drive supports two densites at this time.
1185    *     In reality the type of media GEN 2 or GEN 3 selects the density.
1186    *     ST_MODE_SEL_COMP controls compression.
1187    * [2] The Ultrium LTO has one speed.
1188    * [3] max_rretries and max_wretries are not used but kept for
1189    *     backward compatibility.
1190    */
1191   {                           /* Structure member Description                 */
1192                               /* ---------------- -----------                 */
1193     "HP Ultrium LTO 3",       /* .name            Display ("pretty") name     */
1194     17,                       /* .length          Length of next item...      */
1195     "HP      Ultrium 3*",     /* .vid             handles SCSI or FC          */
1196     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1197     0,                        /* .bsize           Block size (0 = variable)   */
1198                               /* .options         Drive option flags:         */
1199     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1200     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1201     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1202     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1203     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1204     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1205     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
1206     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1207                               /*  -------                                     */
1208                               /*  1018619                                     */
1209     -1,                       /* .max_rretries    [Note 3]                    */
1210     -1,                       /* .max_wretries    [Note 3]                    */
1211     {0x42, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
1212     MT_DENSITY4,              /* .default_density (.densities[x])             */
1213     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1214     MINUTES(1),               /* .non_motion_timeout                          */
1215     MINUTES(20),              /* .io_timeout                                  */
1216     MINUTES(10),              /* .rewind_timeout                              */
1217     MINUTES(20),              /* .space_timeout                               */
1218     MINUTES(10),              /* .load_timeout                                */
1219     MINUTES(10),              /* .unload_timeout                              */
1220     MINUTES(300)              /* .erase_timeout      Five Hours               */
1221   },
1222 
1223   /*
1224    * HP Ultrium LTO Gen 2
1225    * [1] This drive supports two densites at this time.
1226    *     In reality the type of media GEN 1 or GEN 2 selects the density.
1227    *     ST_MODE_SEL_COMP controls compression.
1228    * [2] The Ultrium LTO has one speed.
1229    * [3] max_rretries and max_wretries are not used but kept for
1230    *     backward compatibility.
1231    */
1232   {                           /* Structure member Description                 */
1233                               /* ---------------- -----------                 */
1234     "HP Ultrium LTO 2",       /* .name            Display ("pretty") name     */
1235     17,                       /* .length          Length of next item...      */
1236     "HP      Ultrium 2*",     /* .vid             handles SCSI or FC          */
1237     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1238     0,                        /* .bsize           Block size (0 = variable)   */
1239                               /* .options         Drive option flags:         */
1240     ST_VARIABLE         |     /*    00001           Supports variable length  */
1241     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1242     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1243     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1244     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1245     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1246     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1247                               /*    -----                                     */
1248                               /*    18619                                     */
1249     -1,                       /* .max_rretries    [Note 3]                    */
1250     -1,                       /* .max_wretries    [Note 3]                    */
1251     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
1252     MT_DENSITY4,              /* .default_density (.densities[x])             */
1253     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1254     MINUTES(1),               /* .non_motion_timeout                          */
1255     MINUTES(5),               /* .io_timeout Four                             */
1256     MINUTES(10),              /* .rewind_timeout                              */
1257     MINUTES(20),              /* .space_timeout                               */
1258     MINUTES(10),              /* .load_timeout                                */
1259     MINUTES(10),              /* .unload_timeout                              */
1260     MINUTES(300)              /* .erase_timeout      Five Hours               */
1261   },
1262 
1263   /*
1264    * HP Ultrium LTO
1265    * [1] This drive supports only one density at this time.
1266          ST_MODE_SEL_COMP controls compression.
1267    * [2] The Ultrium LTO has one speed.
1268    * [3] max_rretries and max_wretries are not used but kept for
1269    *     backward compatibility.
1270    */
1271   {                           /* Structure member Description                 */
1272                               /* ---------------- -----------                 */
1273     "HP Ultrium LTO",         /* .name            Display ("pretty") name     */
1274     17,                       /* .length          Length of next item...      */
1275     "HP      Ultrium 1*",     /* .vid             handles SCSI and FC         */
1276     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1277     0,                        /* .bsize           Block size (0 = variable)   */
1278                               /* .options         Drive option flags:         */
1279     ST_VARIABLE         |     /*    00001           Supports variable length  */
1280     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1281     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1282     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1283     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1284     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1285     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1286                               /*    -----                                     */
1287                               /*    18619                                     */
1288     -1,                       /* .max_rretries    [Note 3]                    */
1289     -1,                       /* .max_wretries    [Note 3]                    */
1290     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
1291     MT_DENSITY4,              /* .default_density (.densities[x])             */
1292     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1293     MINUTES(1),               /* .non_motion_timeout                          */
1294     MINUTES(5),               /* .io_timeout Four                             */
1295     MINUTES(10),              /* .rewind_timeout                              */
1296     MINUTES(20),              /* .space_timeout                               */
1297     MINUTES(10),              /* .load_timeout                                */
1298     MINUTES(10),              /* .unload_timeout                              */
1299     MINUTES(300)              /* .erase_timeout      Five Hours               */
1300   },
1301 
1302   /*
1303    * Kennedy 1/2" reel
1304    *
1305    *     NOTES
1306    *     -----
1307    *  o This is an unsupported drive.
1308    *
1309    *  o This entry uses a shortened Vendor-product ID string for the
1310    *    INQUIRY match.
1311    *
1312    * [1] The density code entry requires four values, even if there are less
1313    *     than four values for the drive.
1314    * [2] The Kennedy 1/2" reel has only one speed (if the driver ever cares).
1315    * [3] max_rretries and max_wretries are driver anachronisms.
1316    */
1317   {                           /* Structure member Description                 */
1318                               /* ---------------- -----------                 */
1319     "Kennedy 1/2\" Reel",     /* .name            Display ("pretty") name     */
1320     4,                        /* .length          Length of next item...      */
1321     "KENN***",                /* .vid             Vendor-product ID string    */
1322     ST_TYPE_KENNEDY,          /* .type            Numeric type (cf. mtio.h)   */
1323     0,                        /* .bsize           Block size (0 = variable)   */
1324                               /* .options         Drive option flags:         */
1325     ST_VARIABLE |             /*    00001           Supports variable length  */
1326     ST_REEL     |             /*    00004           1/2-inch reel tape device */
1327     ST_BSF      |             /*    00008           Supports SPACE block fwd  */
1328     ST_BSR      |             /*    00010           Supports SPACE block rev  */
1329     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1330                               /*    -----                                     */
1331                               /*    0041D                                     */
1332     400,                      /* .max_rretries    [Note 3]                    */
1333     400,                      /* .max_wretries    [Note 3]                    */
1334     {0x01, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
1335     MT_DENSITY2,              /* .default_density (.densities[x])             */
1336     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1337   },
1338 
1339   /*
1340    * M4 Data Systems 9303 transport with 9700 512k i/f
1341    *
1342    *     NOTES
1343    *     -----
1344    *  o  The M4 Data 9303 is in non-buffered mode because it doesn't
1345    *     flush the buffer at end of tape writes. If you don't care
1346    *     about end of tape conditions (e.g., you use dump(8) which
1347    *     cannot handle end-of-tape anyhow), take out the ST_NOBUF.
1348    *
1349    *  o This is an unsupported drive.
1350    *
1351    * [1] The density code entry requires four values, even if there are less
1352    *     than four values for the drive.
1353    * [2] The M4 Data has only one speed (if the driver ever cares).
1354    * [3] max_rretries and max_wretries are driver anachronisms.
1355    */
1356   {                           /* Structure member Description                 */
1357                               /* ---------------- -----------                 */
1358     "M4-Data 1/2\" Reel",     /* .name            Display ("pretty") name     */
1359     19,                       /* .length          Length of next item...      */
1360     "M4 DATA 123107 SCSI",    /* .vid             Vendor-product ID string    */
1361     ST_TYPE_REEL,             /* .type            Numeric type (cf. mtio.h)   */
1362     0,                        /* .bsize           Block size (0 = variable)   */
1363                               /* .options         Drive option flags:         */
1364     ST_VARIABLE  |            /*    00001           Supports variable length  */
1365     ST_REEL      |            /*    00004           1/2-inch reel tape device */
1366     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
1367     ST_BSR       |            /*    00010           Supports SPACE block rev  */
1368     ST_NOBUF     |            /*    00080           Don't use buffered mode.  */
1369     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1370                               /*    -----                                     */
1371                               /*    0049D                                     */
1372     500,                      /* .max_rretries    [Note 3]                    */
1373     500,                      /* .max_wretries    [Note 3]                    */
1374     {0x01, 0x02, 0x06, 0x06}, /* .densities       Density codes [Note 1]      */
1375     MT_DENSITY2,              /* .default_density (.densities[x])             */
1376     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1377   },
1378 
1379   /*
1380    * Quantum VS 160
1381    *
1382    * Notes
1383    * [1] The VS160 reads several formats which the drive autodetects.
1384    *     It can write only in VS160 format so all densities set ro 0x50.
1385    * [2] The speed field is not used and the VS160's speed is not setable.
1386    * [3] Retry counts are not used any more and set to -1.
1387    */
1388   {                           /* Structure member Description                 */
1389                               /* ---------------- -----------                 */
1390     "Quantum VS160",          /* .name            Display ("pretty") name     */
1391     17,                       /* .length          Length of next item...      */
1392     "QUANTUM DLT VS160",      /* .vid             Vendor-product ID string    */
1393     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1394     0,                        /* .bsize           Block size (0 = variable)   */
1395                               /* .options         Drive option flags:         */
1396     ST_VARIABLE         |     /*    00001         Supports variable length    */
1397     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1398     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1399     ST_AUTODEN_OVERRIDE |     /*    00040         Has only one density        */
1400     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1401     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1402     ST_NO_RECSIZE_LIMIT |     /*    08000         Supports blocks > 64KB      */
1403     ST_MODE_SEL_COMP,         /*    10000         Uses Mode select Compress   */
1404                               /* --------                                     */
1405                               /* 00018659                                     */
1406     -1,                       /* .max_rretries    [Note 3]                    */
1407     -1,                       /* .max_wretries    [Note 3]                    */
1408     {0x50, 0x50, 0x50, 0x50}, /* .densities       [Note 1]                    */
1409     MT_DENSITY4,              /* .default_density (.densities[x])             */
1410     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1411     MINUTES(2),               /* .non_motion_timeout Nothing special          */
1412     MINUTES(15),              /* .io_timeout         First write to new tape  */
1413     MINUTES(15),              /* .rewind_timeout     15 minutes               */
1414     MINUTES(15),              /* .space_timeout      15 minutes               */
1415     MINUTES(15),              /* .load_timeout       read catalog             */
1416     MINUTES(15),              /* .unload_timeout     write catalog + unthread */
1417     MINUTES(180)              /* .erase_timeout      3 hours                  */
1418   },
1419   /*
1420    * Quantum Super DLT600
1421    *
1422    *    NOTES
1423    *    -----
1424    *
1425    * [1] The Super DLT 600 supports many tape formats, Most are media selected.
1426    *     Previous DLT drives had density codes for compress and non-compress,
1427          This drive uses mode select to control compression.
1428    * [2] The Super DLT has only one speed (if the driver ever cares).
1429    * [3] max_rretries and max_wretries are driver anachronisms.
1430    */
1431   {                           /* Structure member Description                 */
1432                               /* ---------------- -----------                 */
1433     "Quantum Super DLT 600",  /* .name            Display ("pretty") name     */
1434     15,                       /* .length          Length of next item...      */
1435     "QUANTUM SDLT600",        /* .vid             Vendor-product ID string    */
1436     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1437     0,                        /* .bsize           Block size (0 = variable)   */
1438                               /* .options         Drive option flags:         */
1439     ST_VARIABLE         |     /*  0000001         Supports variable length    */
1440     ST_BSF              |     /*  0000008         Supports SPACE block fwd    */
1441     ST_BSR              |     /*  0000010         Supports SPACE block rev    */
1442     ST_KNOWS_EOD        |     /*  0000200         Recognizes end-of-data      */
1443     ST_UNLOADABLE       |     /*  0000400         Driver can be unloaded      */
1444     ST_NO_RECSIZE_LIMIT |     /*  0008000         Supports blocks > 64KB      */
1445     ST_MODE_SEL_COMP    |     /*  0010000         Uses Mode select Compress   */
1446     ST_WORMABLE,              /*  1000000         Is capable of WORM          */
1447                               /*  -------                                     */
1448                               /*  1018619                                     */
1449     -1,                       /* .max_rretries    [Note 3]                    */
1450     -1,                       /* .max_wretries    [Note 3]                    */
1451     {0x4a, 0x4a, 0x4a, 0x4a}, /* .densities       [Note 1]                    */
1452     MT_DENSITY4,              /* .default_density (.densities[x])             */
1453     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1454     0,                        /* .non_motion_timeout Nothing special          */
1455     MINUTES(60),              /* .io_timeout Four    One Hour                 */
1456     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1457     MINUTES(360),             /* .space_timeout      6 Hour if Directory bad  */
1458     MINUTES(16),              /* .load_timeout       Nothing Special          */
1459     MINUTES(16),              /* .unload_timeout     Nothing Special          */
1460     MINUTES(360)              /* .erase_timeout      Six hours                */
1461   },
1462 
1463  /*
1464    * Quantum Super DLT320
1465    *
1466    *    NOTES
1467    *    -----
1468    *  o  There is not going to be a SUN version of this drive. It will
1469    *     be released as QUANTUM only.
1470    *
1471    * [1] The Super DLT implements many tape formats, but the st driver supports
1472    *     only the four highest densities.
1473    * [2] The Super DLT has only one speed (if the driver ever cares).
1474    * [3] max_rretries and max_wretries are driver anachronisms.
1475    */
1476   {                           /* Structure member Description                 */
1477                               /* ---------------- -----------                 */
1478     "Quantum Super DLT 320",  /* .name            Display ("pretty") name     */
1479     15,                       /* .length          Length of next item...      */
1480     "QUANTUM SDLT320",        /* .vid             Vendor-product ID string    */
1481     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1482     0,                        /* .bsize           Block size (0 = variable)   */
1483                               /* .options         Drive option flags:         */
1484     ST_VARIABLE         |     /*    00001         Supports variable length    */
1485     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1486     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1487     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1488     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1489     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
1490                               /* --------                                     */
1491                               /* 00008619                                     */
1492     -1,                       /* .max_rretries    [Note 3]                    */
1493     -1,                       /* .max_wretries    [Note 3]                    */
1494     {0x90, 0x91, 0x92, 0x93}, /* .densities       [Note 1]                    */
1495     MT_DENSITY4,              /* .default_density (.densities[x])             */
1496     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1497     0,                        /* .non_motion_timeout Default 2 minutes        */
1498     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
1499     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1500     MINUTES(360),             /* .space_timeout      Six Hours                */
1501     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
1502     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
1503     MINUTES(360)              /* .erase_timeout      Six hours                */
1504   },
1505 
1506   /*
1507    * Quantum Super DLT
1508    *
1509    *    NOTES
1510    *    -----
1511    *  o  There is not going to be a SUN version of this drive. It will
1512    *     be released as QUANTUM only.
1513    *
1514    * [1] The Super DLT implements many tape formats, but the st driver supports
1515    *     only the four highest densities.
1516    * [2] The Super DLT has only one speed (if the driver ever cares).
1517    * [3] max_rretries and max_wretries are driver anachronisms.
1518    */
1519   {                           /* Structure member Description                 */
1520                               /* ---------------- -----------                 */
1521     "Quantum Super DLT 220",  /* .name            Display ("pretty") name     */
1522     17,                       /* .length          Length of next item...      */
1523     "QUANTUM SuperDLT1",      /* .vid             Vendor-product ID string    */
1524     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1525     0,                        /* .bsize           Block size (0 = variable)   */
1526                               /* .options         Drive option flags:         */
1527     ST_VARIABLE         |     /*    00001         Supports variable length    */
1528     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1529     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1530     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1531     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1532     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
1533                               /* --------                                     */
1534                               /* 00008619                                     */
1535     -1,                       /* .max_rretries    [Note 3]                    */
1536     -1,                       /* .max_wretries    [Note 3]                    */
1537     {0x88, 0x89, 0x90, 0x91}, /* .densities       [Note 1]                    */
1538     MT_DENSITY4,              /* .default_density (.densities[x])             */
1539     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1540     0,                        /* .non_motion_timeout Default 2 minutes        */
1541     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
1542     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1543     MINUTES(360),             /* .space_timeout      Six Hours                */
1544     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
1545     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
1546     MINUTES(360)              /* .erase_timeout      Six hours                */
1547   },
1548 
1549   /*
1550    * Quantum DLT8000
1551    *
1552    *    NOTES
1553    *    -----
1554    *  o  There is not going to be a SUN version of this drive. It will
1555    *     be released as QUANTUM only.
1556    *
1557    * [1] The DLT8000 implements many tape formats, but the st driver supports
1558    *     only the four highest densities.
1559    * [2] The DLT8000 has only one speed (if the driver ever cares).
1560    * [3] max_rretries and max_wretries are driver anachronisms.
1561    */
1562   {                           /* Structure member Description                 */
1563                               /* ---------------- -----------                 */
1564     "Quantum DLT8000",        /* .name            Display ("pretty") name     */
1565     15,                       /* .length          Length of next item...      */
1566     "QUANTUM DLT8000",        /* .vid             Vendor-product ID string    */
1567     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1568     0,                        /* .bsize           Block size (0 = variable)   */
1569                               /* .options         Drive option flags:         */
1570     ST_VARIABLE         |     /*    00001           Supports variable length  */
1571     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1572     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1573     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1574     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1575     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1576     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1577     ST_CLN_TYPE_3,            /* 40000000                                     */
1578                               /*    -----                                     */
1579                               /* 40009619                                     */
1580     400,                      /* .max_rretries    [Note 3]                    */
1581     400,                      /* .max_wretries    [Note 3]                    */
1582     {0x84, 0x85, 0x88, 0x89}, /* .densities       [Note 1]                    */
1583     MT_DENSITY4,              /* .default_density (.densities[x])             */
1584     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1585     0,                        /* .non_motion_timeout Nothing special          */
1586     0,                        /* .io_timeout Four    Nothing Special          */
1587     0,                        /* .rewind_timeout     Nothing Special          */
1588     0,                        /* .space_timeout      Nothing Special          */
1589     0,                        /* .load_timeout       Nothing Special          */
1590     0,                        /* .unload_timeout     Nothing Special          */
1591     MINUTES(360)              /* .erase_timeout      Six hours                */
1592   },
1593 
1594   /*
1595    * Quantum DLT7000
1596    *
1597    *     NOTES
1598    *     -----
1599    * [1] The DLT7000 implements many tape formats, but the st driver supports
1600    *     only the four highest densities.
1601    * [2] The DLT7000 has only one speed (if the driver ever cares).
1602    * [3] max_rretries and max_wretries are driver anachronisms.
1603    * [4] Data is buffered in the driver and pre-acked to the application. This
1604    *      is only supported in Solaris 2.5.1.
1605    */
1606   {                           /* Structure member Description                 */
1607                               /* ---------------- -----------                 */
1608     "Quantum DLT7000",        /* .name            Display ("pretty") name     */
1609     15,                       /* .length          Length of next item...      */
1610     "QUANTUM DLT7000",        /* .vid             Vendor-product ID string    */
1611     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1612     0,                        /* .bsize           Block size (0 = variable)   */
1613                               /* .options         Drive option flags:         */
1614     ST_VARIABLE         |     /*    00001           Supports variable length  */
1615     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1616     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1617     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1618     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1619     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1620     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
1621     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1622     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
1623                               /* --------                                     */
1624                               /* 4000D619                                     */
1625     400,                      /* .max_rretries    [Note 3]                    */
1626     400,                      /* .max_wretries    [Note 3]                    */
1627     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
1628     MT_DENSITY3,              /* .default_density (.densities[x])             */
1629     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1630     0,                        /* .non_motion_timeout Nothing special          */
1631     0,                        /* .io_timeout Four    Nothing Special          */
1632     0,                        /* .rewind_timeout     Nothing Special          */
1633     0,                        /* .space_timeout      Nothing Special          */
1634     0,                        /* .load_timeout       Nothing Special          */
1635     0,                        /* .unload_timeout     Nothing Special          */
1636     MINUTES(360)              /* .erase_timeout      Six hours                */
1637   },
1638 
1639   /*
1640    * Quantum DLT4000
1641    *
1642    *     NOTES
1643    *     -----
1644    * [1] The DLT4000 implements many tape formats, but the st driver supports
1645    *     only the four highest densities.
1646    * [2] The DLT4000 has only one speed (if the driver ever cares).
1647    * [3] max_rretries and max_wretries are driver anachronisms.
1648    * [4] Data is buffered in the driver and pre-acked to the application. This
1649    *     is only supported in 2.5.1.
1650    */
1651   {                           /* Structure member Description                 */
1652                               /* ---------------- -----------                 */
1653     "Quantum DLT4000",        /* .name            Display ("pretty") name     */
1654     15,                       /* .length          Length of next item...      */
1655     "Quantum DLT4000",        /* .vid             Vendor-product ID string    */
1656     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1657     0,                        /* .bsize           Block size (0 = variable)   */
1658                               /* .options         Drive option flags:         */
1659     ST_VARIABLE        |      /*    00001           Supports variable length  */
1660     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
1661     ST_BSR             |      /*    00010           Supports SPACE block rev  */
1662     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
1663     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
1664     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
1665     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
1666     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
1667     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
1668                               /* --------                                     */
1669                               /* 4000D619                                     */
1670     400,                      /* .max_rretries    [Note 3]                    */
1671     400,                      /* .max_wretries    [Note 3]                    */
1672     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
1673     MT_DENSITY3,              /* .default_density (.densities[x])             */
1674     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1675     0,                        /* .non_motion_timeout Nothing special          */
1676     0,                        /* .io_timeout Four    Nothing Special          */
1677     0,                        /* .rewind_timeout     Nothing Special          */
1678     0,                        /* .space_timeout      Nothing Special          */
1679     0,                        /* .load_timeout       Nothing Special          */
1680     0,                        /* .unload_timeout     Nothing Special          */
1681     MINUTES(360)              /* .erase_timeout      Six hours                */
1682   },
1683 
1684   /*
1685    * [1] The DLT-S4 has three densites at this time,
1686    *     0x49 for SuperDLT tape I, 0x4a for SuperDLT tape II,
1687    *     0x4b for SuperDLT tape III.
1688    *     This drive is configured with ST_KNOWS_MEDIA.
1689    *     That means that it will look at the mediatype from the mode sense
1690    *     to select the density code. The compression will be selected based
1691    *     on the minor node the user opened.
1692    * [2] S4 reports a medium type that is used to select the density.
1693    */
1694   {                           /* Structure member Description                 */
1695                               /* ---------------- -----------                 */
1696     "Quantum DLT-S4",         /* .name            Display ("pretty") name     */
1697     14,                       /* .length          Length of next item...      */
1698     "QUANTUM DLT-S4",         /* .vid             Vendor-product ID string    */
1699     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1700     0,                        /* .bsize           Block size (0 = variable)   */
1701                               /* .options         Drive option flags:         */
1702     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1703     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1704     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1705     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1706     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1707     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1708     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
1709     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
1710     ST_WORMABLE,              /*  1000000            Supports WORM            */
1711                               /*    -----                                     */
1712                               /*  1818619                                     */
1713     -1,                       /* .max_rretries    Not used any more.          */
1714     -1,                       /* .max_wretries    Not used any more.          */
1715     {0x49, 0x4a, 0x4b, 0x4b}, /* .densities       Density codes [Note 1]      */
1716     MT_DENSITY4,              /* .default_density (.densities[x])             */
1717     {0x86, 0x87, 0x91, 0x91}, /* .mediatype       Media type  [Note 2]        */
1718     0,                        /* .non_motion_time                             */
1719     MINUTES(60),              /* .io_time                                     */
1720     MINUTES(4),               /* .rewind_time                                 */
1721     MINUTES(360),             /* .space_time                                  */
1722     MINUTES(16),              /* .load_time                                   */
1723     MINUTES(16),              /* .unload_time                                 */
1724     MINUTES(360)              /* .erase_time                                  */
1725   },
1726 
1727   /*
1728    * Seagate Hornet NS20 Travan
1729    *
1730    *     NOTES
1731    *     -----
1732    *  o This is an unsupported drive.
1733    *
1734    * [1] The NS20 Travan uses 0 or the "default" density code.
1735    * [2] The NS20 Travan has only one speed (if the driver ever cares).
1736    * [3] max_rretries and max_wretries are driver anachronisms.
1737    */
1738   {                           /* Structure member Description                 */
1739                               /* ---------------- -----------                 */
1740     "Seagate Hornet NS20 Travan",
1741                               /* .name            Display ("pretty") name     */
1742     17,                       /* .length          Length of next item...      */
1743     "Seagate STT20000N",      /* .vid             Vendor-product ID string    */
1744     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
1745     512,                      /* .bsize           Block size (0 = variable)   */
1746                               /* .options         Drive option flags:         */
1747     ST_QIC              |     /*    00002           QIC tape device           */
1748     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1749     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1750     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1751                               /*    -----                                     */
1752                               /*    0840A                                     */
1753     400,                      /* .max_rretries    [Note 3]                    */
1754     400,                      /* .max_wretries    [Note 3]                    */
1755     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
1756     MT_DENSITY1,              /* .default_density (.densities[x])             */
1757     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1758   },
1759 
1760   /*
1761    * Seagate DAT 72
1762    *
1763    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
1764    *  [2] Only one speed.
1765    */
1766 
1767   {                           /* Structure member Description                 */
1768                               /* ---------------- -----------                 */
1769     "Seagate DAT 72",         /* .name            Display ("pretty") name     */
1770     23,                       /* .length          Length of next item...      */
1771     "SEAGATE DAT    DAT72-00",/* .vid             Vendor-product ID string    */
1772     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1773     0,                        /* .bsize           Block size (0 = variable)   */
1774                               /* .options         Drive option flags:         */
1775     ST_VARIABLE         |     /*    00001           variable length records   */
1776     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1777     ST_BSR              |     /*    00010           Supports backspace record */
1778     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
1779     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1780     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1781     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1782                               /*    -----                                     */
1783                               /*    18619                                     */
1784     -1,                       /* .max_rretries    Not used any more.          */
1785     -1,                       /* .max_wretries    Not Used any more.          */
1786     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes [Note 1]      */
1787     MT_DENSITY4,              /* .default_density (.densities[x])             */
1788     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1789     0,                        /* .non_motion_timeout                          */
1790     MINUTES(15),              /* .io_timeout                                  */
1791     MINUTES(2),               /* .rewind_timeout                              */
1792     MINUTES(15),              /* .space_timeout                               */
1793     0,                        /* .load_timeout                                */
1794     0,                        /* .unload_timeout                              */
1795     MINUTES(240)              /* .erase_timeout                               */
1796   },
1797 
1798   /*
1799    * Certance Ultrium LTO 3
1800    * [1] This drive supports 3 densites at this time.
1801    *     ST_MODE_SEL_COMP controls compression.
1802    * [2] max_rretries and max_wretries are not used but kept for
1803    *     backward compatibility.
1804    */
1805   {                           /* Structure member Description                 */
1806                               /* ---------------- -----------                 */
1807     "Certance Ultrium 3",     /* .name            Display ("pretty") name     */
1808     17,                       /* .length          Length of next item...      */
1809     "CERTANCEULTRIUM 3",      /* .vid             handles SCSI or FC          */
1810     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1811     0,                        /* .bsize           Block size (0 = variable)   */
1812                               /* .options         Drive option flags:         */
1813     ST_VARIABLE         |     /*    00001           Supports variable length  */
1814     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1815     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1816     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1817     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1818     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1819     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1820                               /*    -----                                     */
1821                               /*    18619                                     */
1822     -1,                       /* .max_rretries    [Note 2]                    */
1823     -1,                       /* .max_wretries    [Note 2]                    */
1824     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
1825     MT_DENSITY4,              /* .default_density (.densities[x])             */
1826     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
1827     0,                        /* .non_motion_timeout                          */
1828     MINUTES(60),              /* .io_timeout                                  */
1829     MINUTES(35),              /* .rewind_timeout                              */
1830     MINUTES(60),              /* .space_timeout                               */
1831     MINUTES(35),              /* .load_timeout                                */
1832     MINUTES(35),              /* .unload_timeout                              */
1833     MINUTES(180)              /* .erase_timeout                               */
1834   },
1835 
1836   /*
1837    * Certance Ultrium LTO 2
1838    * [1] This drive supports two densites at this time.
1839    *     0x40 for Ultrium 1 and 0x42 for Ultrium 2.
1840    *     ST_MODE_SEL_COMP controls compression.
1841    * [2] max_rretries and max_wretries are not used but kept for
1842    *     backward compatibility.
1843    */
1844   {                           /* Structure member Description                 */
1845                               /* ---------------- -----------                 */
1846     "Certance Ultrium 2", /* .name            Display ("pretty") name     */
1847     17,                       /* .length          Length of next item...      */
1848     "CERTANCEULTRIUM 2",      /* .vid             handles SCSI or FC          */
1849     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1850     0,                        /* .bsize           Block size (0 = variable)   */
1851                               /* .options         Drive option flags:         */
1852     ST_VARIABLE         |     /*    00001           Supports variable length  */
1853     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1854     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1855     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1856     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1857     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1858     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1859                               /*    -----                                     */
1860                               /*    18619                                     */
1861     -1,                       /* .max_rretries    [Note 2]                    */
1862     -1,                       /* .max_wretries    [Note 2]                    */
1863     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
1864     MT_DENSITY4,              /* .default_density (.densities[x])             */
1865     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
1866     0,                        /* .non_motion_timeout                          */
1867     MINUTES(60),              /* .io_timeout                                  */
1868     MINUTES(35),              /* .rewind_timeout                              */
1869     MINUTES(60),              /* .space_timeout                               */
1870     MINUTES(35),              /* .load_timeout                                */
1871     MINUTES(35),              /* .unload_timeout                              */
1872     MINUTES(180)              /* .erase_timeout                               */
1873   },
1874 
1875   /*
1876    * Seagate Ultrium LTO
1877    *
1878    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
1879    *  [2] Only one speed.
1880    */
1881 
1882   {                           /* Structure member Description                 */
1883                               /* ---------------- -----------                 */
1884     "Seagate Ultrium LTO",    /* .name            Display ("pretty") name     */
1885     23,                       /* .length          Length of next item...      */
1886     "SEAGATE ULTRIUM06242-XX",/* .vid             Vendor-product ID string    */
1887     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1888     0,                        /* .bsize           Block size (0 = variable)   */
1889                               /* .options         Drive option flags:         */
1890     ST_VARIABLE         |     /*    00001           variable length records   */
1891     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1892     ST_BSR              |     /*    00010           Supports backspace record */
1893     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
1894     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1895     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1896     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1897                               /*    -----                                     */
1898                               /*    18619                                     */
1899     -1,                       /* .max_rretries    Not used any more.          */
1900     -1,                       /* .max_wretries    Not Used any more.          */
1901     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
1902     MT_DENSITY4,              /* .default_density (.densities[x])             */
1903     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1904     0,                        /* .non_motion_timeout                          */
1905     MINUTES(10),              /* .io_timeout                                  */
1906     MINUTES(15),              /* .rewind_timeout                              */
1907     MINUTES(120),             /* .space_timeout                               */
1908     MINUTES(5),               /* .load_timeout                                */
1909     MINUTES(2),               /* .unload_timeout                              */
1910     MINUTES(120)              /* .erase_timeout                               */
1911   },
1912 
1913   /*
1914    * SONY 4mm DAT
1915    *
1916    *     NOTES
1917    *     -----
1918    *  o This is an unsupported drive.
1919    *
1920    *  o This entry uses a shortened Vendor-product ID string for the
1921    *    INQUIRY match.
1922    *
1923    * [1] The SDT-5000 uses 0 or the "default" density code.
1924    * [2] The SDT-5000 has only one speed (if the driver ever cares).
1925    * [3] max_rretries and max_wretries are driver anachronisms.
1926    */
1927   {                           /* Structure member Description                 */
1928                               /* ---------------- -----------                 */
1929     "SONY 4mm DAT",           /* .name            Display ("pretty") name     */
1930     12,                       /* .length          Length of next item...      */
1931     "SONY    SDT-****",       /* .vid             Vendor-product ID string    */
1932     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
1933     0,                        /* .bsize           Block size (0 = variable)   */
1934                               /* .options         Drive option flags:         */
1935     ST_VARIABLE   |           /*    00001           Supports variable length  */
1936     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
1937     ST_BSR        |           /*    00010           Supports SPACE block rev  */
1938     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
1939     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1940                               /*    -----                                     */
1941                               /*    00439                                     */
1942     400,                      /* .max_rretries    [Note 3]                    */
1943     400,                      /* .max_wretries    [Note 3]                    */
1944     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
1945     MT_DENSITY2,              /* .default_density (.densities[x])             */
1946     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1947   },
1948 
1949   /*
1950    * Sun StorageTek T10000A tape drive.
1951    *
1952    *     NOTES
1953    *     -----
1954    *  o  The T10000A has special needs - support for SCSI LOCATE and
1955    *     READ POSITION commands - so we must be sure to place this
1956    *     entry before the one for ST_TYPE_STC3490 (generic STK
1957    *     half-inch cartridge drives).
1958    * [1] Compression on the T10000A is controlled
1959    *     via the Device Configuration mode page.
1960    * [2] The T10000A has only one writable density, 0x4A.
1961    * [3] The T10000A has only one speed (if the driver ever cares).
1962    * [4] max_rretries and max_wretries are driver anachronisms.
1963    */
1964   {                           /* Structure member    Description              */
1965                               /* ----------------    -----------              */
1966     "Sun StorageTek T10000A", /* .name               Display ("pretty") name  */
1967     15,                       /* .length             Length of next item...   */
1968     "STK     T10000A",        /* .vid                Vendor-product ID string */
1969     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
1970     0,                        /* .bsize              Block size (0 = variable)*/
1971                               /* .options            Drive option flags:      */
1972     ST_VARIABLE         |     /*  0000001            Supports variable length */
1973     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
1974     ST_BSR              |     /*  0000010            Supports SPACE block rev */
1975     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag*/
1976     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
1977     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
1978     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
1979     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
1980     ST_WORMABLE,              /*  1000000            Supports WORM            */
1981                               /*  -------                                     */
1982                               /*  1018659                                     */
1983     -1,                       /* .max_rretries       [Note 4]                 */
1984     -1,                       /* .max_wretries       [Note 4]                 */
1985     {0x4A,0x4A,0x4A,0x4A},    /* .densities          Density codes [Note 2]   */
1986     MT_DENSITY4,              /* .default_density    (.densities[x])          */
1987     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
1988     0,                        /* .non_motion_timeout Nothing Special          */
1989     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
1990     0,                        /* .rewind_timeout     Nothing Special          */
1991     0,                        /* .space_timeout      Nothing Special          */
1992     0,                        /* .load_timeout       Nothing Special          */
1993     0,                        /* .unload_timeout     Nothing Special          */
1994     MINUTES(180)              /* .erase_timeout      Three Hours              */
1995   },
1996 
1997   /*
1998    * STK 9840C cartridge drive.
1999    *
2000    *     NOTES
2001    *     -----
2002    *  o  The 9840C has special needs - support for SCSI LOCATE and
2003    *     READ POSITION commands - so we must be sure to place this
2004    *     entry before the one for ST_TYPE_STC3490 (generic STK
2005    *     half-inch cartridge drives).
2006    * [1] Compression on the 9840C is controlled
2007    *     via the Device Configuration mode page.
2008    * [2] The 9840C has only one writable density, 0x45. I can read tapes writen
2009    *     with 9840 and 9840B writen with there density code 0x42.
2010    * [3] The 9840C has only one speed (if the driver ever cares).
2011    * [4] max_rretries and max_wretries are driver anachronisms.
2012    */
2013   {                           /* Structure member    Description              */
2014                               /* ----------------    -----------              */
2015     "StorageTek 9840C",       /* .name               Display ("pretty") name  */
2016     14,                       /* .length             Length of next item...   */
2017     "STK     T9840C",         /* .vid                Vendor-product ID string */
2018     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2019     0,                        /* .bsize              Block size (0 = variable)*/
2020                               /* .options            Drive option flags:      */
2021     ST_VARIABLE         |     /*  0000001            Supports variable length */
2022     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2023     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2024     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2025     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2026     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2027     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2028     ST_WORMABLE,              /*  1000000            Supports WORM            */
2029                               /*  -------                                     */
2030                               /*  1018619                                     */
2031     -1,                       /* .max_rretries       [Note 4]                 */
2032     -1,                       /* .max_wretries       [Note 4]                 */
2033     {0x45,0x45,0x45,0x45},    /* .densities          Density codes [Note 2]   */
2034     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2035     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
2036     0,                        /* .non_motion_timeout Nothing Special          */
2037     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
2038     0,                        /* .rewind_timeout     Nothing Special          */
2039     0,                        /* .space_timeout      Nothing Special          */
2040     0,                        /* .load_timeout       Nothing Special          */
2041     0,                        /* .unload_timeout     Nothing Special          */
2042     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2043   },
2044 
2045   /*
2046    * STK 9840B cartridge drive.
2047    *
2048    *     NOTES
2049    *     -----
2050    *  o  The 9840B has special needs - support for SCSI LOCATE and
2051    *     READ POSITION commands - so we must be sure to place this
2052    *     entry before the one for ST_TYPE_STC3490 (generic STK
2053    *     half-inch cartridge drives).
2054    * [1] Compression on the 9840B is controlled
2055    *     via the Device Configuration mode page.
2056    * [2] The 9840B has only one density, 0x42 (or 0 for "default").
2057    * [3] The 9840B has only one speed (if the driver ever cares).
2058    * [4] max_rretries and max_wretries are driver anachronisms.
2059    */
2060   {                           /* Structure member    Description              */
2061                               /* ----------------    -----------              */
2062     "StorageTek 9840B",       /* .name               Display ("pretty") name  */
2063     14,                       /* .length             Length of next item...   */
2064     "STK     T9840B",         /* .vid                Vendor-product ID string */
2065     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2066     0,                        /* .bsize              Block size (0 = variable)*/
2067                               /* .options            Drive option flags:      */
2068     ST_VARIABLE         |     /*  0000001            Supports variable length */
2069     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2070     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2071     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2072     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2073     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2074     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2075     ST_WORMABLE,              /*  1000000            Supports WORM            */
2076                               /*  -------                                     */
2077                               /*  1018619                                     */
2078     -1,                       /* .max_rretries       [Note 4]                 */
2079     -1,                       /* .max_wretries       [Note 4]                 */
2080     {0x42,0x42,0x42,0x42},    /* .densities          Density codes [Note 2]   */
2081     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2082     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
2083     0,                        /* .non_motion_timeout Nothing Special          */
2084     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
2085     0,                        /* .rewind_timeout     Nothing Special          */
2086     0,                        /* .space_timeout      Nothing Special          */
2087     0,                        /* .load_timeout       Nothing Special          */
2088     0,                        /* .unload_timeout     Nothing Special          */
2089     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2090   },
2091 
2092   /*
2093    * STK 9940B cartridge drive.
2094    *
2095    *     NOTES
2096    *     -----
2097    * [1] Compression on the 9940 is controlled
2098    *     via the Device Configuration mode page.
2099    * [2] The 9940 has only one density, 0x44.
2100    * [3] The 9940 has only one speed (if the driver ever cares).
2101    * [4] max_rretries and max_wretries are driver not used.
2102    */
2103   {                           /* Structure member    Description               */
2104                               /* ----------------    -----------               */
2105     "StorageTek 9940B",       /* .name               Display ("pretty") name   */
2106     14,                       /* .length             Length of next item...    */
2107     "STK     T9940B",         /* .vid                Vendor-product ID string  */
2108     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h) */
2109     0,                        /* .bsize              Block size (0 = variable) */
2110                               /* .options            Drive option flags:       */
2111     ST_VARIABLE         |     /*  0000001            Supports variable length  */
2112     ST_BSF              |     /*  0000008            Supports SPACE block fwd  */
2113     ST_BSR              |     /*  0000010            Supports SPACE block rev  */
2114     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag */
2115     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data    */
2116     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded    */
2117     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB    */
2118     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                  */
2119     ST_WORMABLE,              /*  1000000            Supports WORM             */
2120                               /*  -------                                      */
2121                               /*  1018659                                      */
2122     -1,                       /* .max_rretries       [Note 4]                  */
2123     -1,                       /* .max_wretries       [Note 4]                  */
2124     {0x44,0x44,0x44,0x44},    /* .densities          Density codes [Note 2]    */
2125     MT_DENSITY1,              /* .default_density    (.densities[x])           */
2126     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]      */
2127     0,                        /* .non_motion_timeout Nothing Special           */
2128     MINUTES(5),               /* .io_timeout         Five minutes              */
2129     0,                        /* .rewind_timeout     Nothing Special           */
2130     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840  */
2131     0,                        /* .load_timeout       Nothing Special           */
2132     0,                        /* .unload_timeout     Nothing Special           */
2133     MINUTES(210)              /* .erase_timeout      Three and a half hours    */
2134   },
2135 
2136   /*
2137    * STK 9940 cartridge drive.
2138    *
2139    *     NOTES
2140    *     -----
2141    * [1] Compression on the 9940 is controlled
2142    *     via the Device Configuration mode page.
2143    * [2] The 9940 has only one density, 0x43.
2144    * [3] The 9940 has only one speed (if the driver ever cares).
2145    * [4] max_rretries and max_wretries are driver not used.
2146    */
2147   {                           /* Structure member    Description              */
2148                               /* ----------------    -----------              */
2149     "StorageTek 9940",        /* .name               Display ("pretty") name  */
2150     14,                       /* .length             Length of next item...   */
2151     "STK     T9940A",         /* .vid                Vendor-product ID string */
2152     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2153     0,                        /* .bsize              Block size (0 = variable)*/
2154                               /* .options            Drive option flags:      */
2155     ST_VARIABLE         |     /*  0000001            Supports variable length */
2156     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2157     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2158     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2159     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2160     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2161     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2162     ST_WORMABLE,              /*  1000000            Supports WORM            */
2163                               /*  -------                                     */
2164                               /*  1018619                                     */
2165     -1,                       /* .max_rretries       [Note 4]                 */
2166     -1,                       /* .max_wretries       [Note 4]                 */
2167     {0x43,0x43,0x43,0x43},    /* .densities          Density codes [Note 2]   */
2168     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2169     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
2170     0,                        /* .non_motion_timeout Nothing Special          */
2171     MINUTES(5),               /* .io_timeout         Five Minutes             */
2172     0,                        /* .rewind_timeout     Nothing Special          */
2173     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840 */
2174     0,                        /* .load_timeout       Nothing Special          */
2175     0,                        /* .unload_timeout     Nothing Special          */
2176     MINUTES(210)              /* .erase_timeout      Three and a half hours   */
2177   },
2178 
2179   /*
2180    * STK 9840 cartridge drive (Sun codename: Ironsides)
2181    *
2182    *     NOTES
2183    *     -----
2184    *  o  The 9840 has special needs - support for SCSI LOCATE and
2185    *     READ POSITION commands - so we must be sure to place this
2186    *     entry before the one for ST_TYPE_STC3490 (generic STK
2187    *     half-inch cartridge drives).
2188    * [1] Compression on the 9840 is controlled
2189    *     via the Device Configuration mode page.
2190    * [2] The 9840 has only one density, 0x42 (or 0 for "default").
2191    * [3] The 9840 has only one speed (if the driver ever cares).
2192    * [4] max_rretries and max_wretries are driver anachronisms.
2193    * [5] ST_LONG_ERASE is not needed or used when .erase_timeout
2194    *     is non-zero.
2195    */
2196   {                           /* Structure member    Description              */
2197                               /* ----------------    -----------              */
2198     "StorageTek 9840",        /* .name               Display ("pretty") name  */
2199     12,                       /* .length             Length of next item...   */
2200     "STK     9840",           /* .vid                Vendor-product ID string */
2201     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2202     0,                        /* .bsize              Block size (0 = variable)*/
2203                               /* .options            Drive option flags:      */
2204     ST_VARIABLE         |     /*  0000001            Supports variable length */
2205     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2206     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2207     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2208     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2209     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2210     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2211     ST_WORMABLE,              /*  1000000            Supports WORM            */
2212                               /*  -------                                     */
2213                               /*  1018619                                     */
2214     10,                       /* .max_rretries       [Note 4]                 */
2215     10,                       /* .max_wretries       [Note 4]                 */
2216     {0x00, 0x00, 0x00, 0x00}, /* .densities          Density codes [Note 2]   */
2217     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2218     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
2219     0,                        /* .non_motion_timeout Nothing Special          */
2220     MINUTES(5),               /* .io_timeout         Five Minutes             */
2221     0,                        /* .rewind_timeout     Nothing Special          */
2222     0,                        /* .space_timeout      Nothing Special          */
2223     0,                        /* .load_timeout       Nothing Special          */
2224     0,                        /* .unload_timeout     Nothing Special          */
2225     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2226   },
2227 
2228   /*
2229    * STC 3490 1/2" cartridge
2230    *
2231    *     NOTES
2232    *     -----
2233    *  o This is an unsupported drive.
2234    *
2235    *  o This is the generic StorageTek (STK) entry. Any special or drive
2236    *    specific entries must be placed ahead of this entry in the file, to
2237    *    ensure that the driver will "see" and use them; otherwise this entry
2238    *    will be used as the default.
2239    *
2240    * [1] The STC 3490 uses 0 or "default" for the desnity code.
2241    * [2] The STC 3490 has only one speed (if the driver ever cares).
2242    * [3] max_rretries and max_wretries are driver anachronisms.
2243    */
2244   {                           /* Structure member Description                 */
2245                               /* ---------------- -----------                 */
2246     "STK 1/2\" Cartridge",    /* .name            Display ("pretty") name     */
2247     3,                        /* .length          Length of next item...      */
2248     "STK",                    /* .vid             Vendor-product ID string    */
2249     ST_TYPE_STC3490,          /* .type            Numeric type (cf. mtio.h)   */
2250     0,                        /* .bsize           Block size (0 = variable)   */
2251     ST_VARIABLE         |     /*    00001           Supports variable length  */
2252     ST_REEL             |     /*    00004           1/2-inch reel tape device */
2253     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2254     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2255     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
2256     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2257     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2258     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
2259                               /*    -----                                     */
2260                               /*    1843D                                     */
2261     400,                      /* .max_rretries    [Note 3]                    */
2262     400,                      /* .max_wretries    [Note 3]                    */
2263     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2264     MT_DENSITY1,              /* .default_density (.densities[x])             */
2265     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2266   },
2267 
2268   /*
2269    * Sony SAIT
2270    *
2271    * Only looking at part of the product ID so it will match SDZ-100 and
2272    * SDZ-130. One is SCSI other is Fibre but same configuration otherwise.
2273    *
2274    */
2275   {                           /* Structure member Description                 */
2276                               /* ---------------- -----------                 */
2277     "Sony Super AIT",         /* .name            Display ("pretty") name     */
2278     13,                       /* .length          Length of next item...      */
2279     "SONY    SDZ-1*",         /* .vid             Vendor-product ID string    */
2280     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2281     0,
2282     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2283     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2284     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2285     ST_AUTODEN_OVERRIDE |     /*  0000040           Suports only one density  */
2286     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
2287     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2288     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2289     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
2290     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
2291                               /*  -------                                     */
2292                               /*  1018659                                     */
2293     -1,                       /* .max_rretries    Not used                    */
2294     -1,                       /* .max_wretries    Not used                    */
2295     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
2296     MT_DENSITY4,              /* .default_density (.densities[x])             */
2297     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2298     0,                        /* .non_motion_timeout Nothing special          */
2299     0,                        /* .io_timeout Four    Nothing Special          */
2300     0,                        /* .rewind_timeout     Nothing Special          */
2301     0,                        /* .space_timeout      Nothing Special          */
2302     0,                        /* .load_timeout       Nothing Special          */
2303     0,                        /* .unload_timeout     Nothing Special          */
2304     0,                        /* .erase_timeout      Six hours                */
2305   },
2306 
2307   /*
2308    * Sony SDX-420
2309    * This drive is listed before the more generic AIT drives becouse it runs
2310    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
2311    * leads st to beleive its a variable block capable but it will fail any
2312    * i/o that doesn't have the fix bit set in the CDB.
2313    */
2314   {                           /* Structure member Description                 */
2315                               /* ---------------- -----------                 */
2316     "Sony AIT II",            /* .name            Display ("pretty") name     */
2317     15,                       /* .length          Length of next item...      */
2318     "SONY    SDX-420*",       /* .vid             Vendor-product ID string    */
2319     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2320     512,
2321     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2322     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2323     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
2324     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
2325     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2326     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2327     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
2328                               /*    -----                                     */
2329                               /*    18658                                     */
2330     -1,                       /* .max_rretries    Not used                    */
2331     -1,                       /* .max_wretries    Not used                    */
2332     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2333     MT_DENSITY4,              /* .default_density (.densities[x])             */
2334     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2335     0,                        /* .non_motion_timeout Nothing special          */
2336     0,                        /* .io_timeout Four    Nothing Special          */
2337     0,                        /* .rewind_timeout     Nothing Special          */
2338     0,                        /* .space_timeout      Nothing Special          */
2339     0,                        /* .load_timeout       Nothing Special          */
2340     0,                        /* .unload_timeout     Nothing Special          */
2341     0,                        /* .erase_timeout      Six hours                */
2342   },
2343 
2344   /*
2345    * Sony SDX-520
2346    * This drive is listed before the more generic AIT drives becouse it runs
2347    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
2348    * leads st to beleive its a variable block capable but it will fail any
2349    * i/o that doesn't have the fix bit set in the CDB.
2350    */
2351   {                           /* Structure member Description                 */
2352                               /* ---------------- -----------                 */
2353     "Sony AIT II",            /* .name            Display ("pretty") name     */
2354     15,                       /* .length          Length of next item...      */
2355     "SONY    SDX-520*",       /* .vid             Vendor-product ID string    */
2356     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2357     512,
2358     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2359     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2360     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
2361     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
2362     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2363     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2364     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
2365                               /*    -----                                     */
2366                               /*    18658                                     */
2367     -1,                       /* .max_rretries    Not used                    */
2368     -1,                       /* .max_wretries    Not used                    */
2369     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2370     MT_DENSITY4,              /* .default_density (.densities[x])             */
2371     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2372     0,                        /* .non_motion_timeout Nothing special          */
2373     0,                        /* .io_timeout Four    Nothing Special          */
2374     0,                        /* .rewind_timeout     Nothing Special          */
2375     0,                        /* .space_timeout      Nothing Special          */
2376     0,                        /* .load_timeout       Nothing Special          */
2377     0,                        /* .unload_timeout     Nothing Special          */
2378     0,                        /* .erase_timeout      Six hours                */
2379   },
2380 
2381   /* Sony generic AIT
2382    *
2383    *
2384    */
2385   {                           /* Structure member Description                 */
2386                               /* ---------------- -----------                 */
2387     "Sony AIT",               /* .name            Display ("pretty") name     */
2388     12,                       /* .length          Length of next item...      */
2389     "SONY    SDX-*",          /* .vid             Vendor-product ID string    */
2390     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2391     0,
2392     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2393     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2394     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2395     ST_AUTODEN_OVERRIDE |     /*  0000040           One density code          */
2396     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
2397     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2398     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2399     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
2400     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
2401                               /*  -------                                     */
2402                               /*  1018659                                     */
2403     -1,                       /* .max_rretries    Not used                    */
2404     -1,                       /* .max_wretries    Not used                    */
2405     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2406     MT_DENSITY4,              /* .default_density (.densities[x])             */
2407     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2408     0,                        /* .non_motion_timeout Nothing special          */
2409     0,                        /* .io_timeout Four    Nothing Special          */
2410     0,                        /* .rewind_timeout     Nothing Special          */
2411     0,                        /* .space_timeout      Nothing Special          */
2412     0,                        /* .load_timeout       Nothing Special          */
2413     0,                        /* .unload_timeout     Nothing Special          */
2414     0,                        /* .erase_timeout      Six hours                */
2415   },
2416 
2417   /*
2418    * Sun DLT7000
2419    *
2420    *     NOTES
2421    *     -----
2422    * [1] The DLT7000 implements many tape formats, but the st driver supports
2423    *     only the four highest densities.
2424    * [2] The DLT7000 has only one speed (if the driver ever cares).
2425    * [3] max_rretries and max_wretries are driver anachronisms.
2426    * [4] Data is buffered in the driver and pre-acked to the application. This
2427    *     is only supported in 2.5.1.
2428    */
2429   {                           /* Structure member Description                 */
2430                               /* ---------------- -----------                 */
2431     "Sun DLT7000",            /* .name            Display ("pretty") name     */
2432     15,                       /* .length          Length of next item...      */
2433     "SUN     DLT7000",        /* .vid             Vendor-product ID string    */
2434     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2435     0,                        /* .bsize           Block size (0 = variable)   */
2436                               /* .options         Drive option flags:         */
2437     ST_VARIABLE         |     /*    00001           Supports variable length  */
2438     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2439     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2440     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2441     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2442     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
2443     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
2444     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2445     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
2446                               /* --------                                     */
2447                               /* 4000D619                                     */
2448     400,                      /* .max_rretries    [Note 3]                    */
2449     400,                      /* .max_wretries    [Note 3]                    */
2450     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
2451     MT_DENSITY3,              /* .default_density (.densities[x])             */
2452     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2453     0,                        /* .non_motion_timeout Nothing special          */
2454     0,                        /* .io_timeout Four    Nothing Special          */
2455     0,                        /* .rewind_timeout     Nothing Special          */
2456     0,                        /* .space_timeout      Nothing Special          */
2457     0,                        /* .load_timeout       Nothing Special          */
2458     0,                        /* .unload_timeout     Nothing Special          */
2459     MINUTES(360)              /* .erase_timeout      Six hours                */
2460   },
2461 
2462   /*
2463    * Sun DLT4000
2464    *
2465    *     NOTES
2466    *     -----
2467    * [1] The DLT4000 implements many tape formats, but the st driver supports
2468    *     only the four highest densities.
2469    * [2] The DLT4000 has only one speed (if the driver ever cares).
2470    * [3] max_rretries and max_wretries are driver anachronisms.
2471    * [4] Data is buffered in the driver and pre-acked to the application. This
2472    *     is only supported in 2.5.1.
2473    */
2474   {                           /* Structure member Description                 */
2475                               /* ---------------- -----------                 */
2476     "DLT4000",                /* .name            Display ("pretty") name     */
2477     15,                       /* .length          Length of next item...      */
2478     "SUN     DLT4000",        /* .vid             Vendor-product ID string    */
2479     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2480     0,                        /* .bsize           Block size (0 = variable)   */
2481                               /* .options         Drive option flags:         */
2482     ST_VARIABLE        |      /*    00001           Supports variable length  */
2483     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2484     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2485     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2486     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2487     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2488     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
2489     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
2490     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
2491                               /* --------                                     */
2492                               /* 4000D619                                     */
2493     400,                      /* .max_rretries    [Note 3]                    */
2494     400,                      /* .max_wretries    [Note 3]                    */
2495     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
2496     MT_DENSITY3,              /* .default_density (.densities[x])             */
2497     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2498     0,                        /* .non_motion_timeout Nothing special          */
2499     0,                        /* .io_timeout Four    Nothing Special          */
2500     0,                        /* .rewind_timeout     Nothing Special          */
2501     0,                        /* .space_timeout      Nothing Special          */
2502     0,                        /* .load_timeout       Nothing Special          */
2503     0,                        /* .unload_timeout     Nothing Special          */
2504     MINUTES(360)              /* .erase_timeout      Six hours                */
2505   },
2506 
2507   /*
2508    * Sun DLT4700
2509    *
2510    *     NOTES
2511    *     -----
2512    * [1] Compression on the DLT4700 is controlled via the Device Configuration
2513    *     mode page or the Data Compression page (either one).
2514    * [2] The DLT4700 implements many tape formats, but the st driver supports
2515    *     only the four highest densities.
2516    * [3] The DLT4700 has only one speed (if the driver ever cares).
2517    * [4] max_rretries and max_wretries are driver anachronisms.
2518    * [5] Data is buffered in the driver and pre-acked to the application. This
2519    *     is only supported in 2.5.1.
2520    */
2521   {                           /* Structure member Description                 */
2522                               /* ---------------- -----------                 */
2523     "DLT4700 Library",        /* .name            Display ("pretty") name     */
2524     15,                       /* .length          Length of next item...      */
2525     "SUN     DLT4700",        /* .vid             Vendor-product ID string    */
2526     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2527     0,                        /* .bsize           Block size (0 = variable)   */
2528                               /* .options         Drive option flags:         */
2529     ST_VARIABLE        |      /*    00001           Supports variable length  */
2530     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2531     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2532     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2533     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2534     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2535     ST_BUFFERED_WRITES |      /*    04000           [Note 5]                  */
2536     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2537                               /*    -----                                     */
2538                               /*    0D619                                     */
2539     400,                      /* .max_rretries    [Note 4]                    */
2540     400,                      /* .max_wretries    [Note 4]                    */
2541     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 2]      */
2542     MT_DENSITY3,              /* .default_density (.densities[x])             */
2543     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2544     0,                        /* .non_motion_timeout Nothing special          */
2545     0,                        /* .io_timeout Four    Nothing Special          */
2546     0,                        /* .rewind_timeout     Nothing Special          */
2547     0,                        /* .space_timeout      Nothing Special          */
2548     0,                        /* .load_timeout       Nothing Special          */
2549     0,                        /* .unload_timeout     Nothing Special          */
2550     MINUTES(360)              /* .erase_timeout      Six hours                */
2551   },
2552 
2553   /*
2554    * Tandberg SLR5 4/8G (standard firmware)
2555    *
2556    *     NOTES
2557    *     -----
2558    * [1] The density code entry requires four values, even if there are less
2559    *     than four values for the drive.
2560    * [2] The Tandberg SLR5 4/8G has only one speed (if the driver ever cares).
2561    * [3] max_rretries and max_wretries are driver anachronisms.
2562    */
2563   {                           /* Structure member Description                 */
2564                               /* ---------------- -----------                 */
2565     "Tandberg 4/8 Gig QIC",   /* .name            Display ("pretty") name     */
2566     19,                       /* .length          Length of next item...      */
2567     "TANDBERG SLR5 4/8GB",    /* .vid             Vendor-product ID string    */
2568     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
2569     0,                        /* .bsize           Block size (0 = variable)   */
2570                               /* .options         Drive option flags:         */
2571     ST_VARIABLE        |      /*    00001           Supports variable length  */
2572     ST_QIC             |      /*    00002           QIC tape device           */
2573     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2574     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2575     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2576     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2577     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2578     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2579     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2580                               /*    -----                                     */
2581                               /*    0963B                                     */
2582     400,                      /* .max_rretries    [Note 3]                    */
2583     400,                      /* .max_wretries    [Note 3]                    */
2584     {0x22, 0x22, 0x26, 0x26}, /* .densities       Density codes [Note 1]      */
2585     MT_DENSITY4,              /* .default_density (.densities[x])             */
2586     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2587   },
2588 
2589   /*
2590    * Tandberg SLR5 (SMI firmware).
2591    *
2592    *     NOTES
2593    *     -----
2594    *  o The inquiry string for this drive is actually padded with blanks, but
2595    *    we only check the first 13 characters so that this will act as a default
2596    *    to cover other revisions of firmware on SLR5s which may show up.
2597    *
2598    * [1] The density code entry requires four values, even if there are less
2599    *     than four values for the drive.
2600    * [2] The Tandberg SLR5 has only one speed (if the driver ever cares).
2601    * [3] max_rretries and max_wretries are driver anachronisms.
2602    */
2603   {                           /* Structure member Description                 */
2604                               /* ---------------- -----------                 */
2605     "Tandberg 8 Gig QIC",     /* .name            Display ("pretty") name     */
2606     13,                       /* .length          Length of next item...      */
2607     "TANDBERG SLR5",          /* .vid             Vendor-product ID string    */
2608     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
2609     0,                        /* .bsize           Block size (0 = variable)   */
2610                               /* .options         Drive option flags:         */
2611     ST_VARIABLE        |      /*    00001           Supports variable length  */
2612     ST_QIC             |      /*    00002           QIC tape device           */
2613     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2614     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2615     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2616     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2617     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2618     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2619     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2620                               /*    -----                                     */
2621                               /*    0963B                                     */
2622     400,                      /* .max_rretries    [Note 3]                    */
2623     400,                      /* .max_wretries    [Note 3]                    */
2624     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
2625     MT_DENSITY4,              /* .default_density (.densities[x])             */
2626     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2627   },
2628 
2629   /*
2630    * Tandberg 4100 QIC
2631    *
2632    *     NOTES
2633    *     -----
2634    *  o This is an unsupported drive.
2635    *
2636    * [1] The Tandberg 4100 uses 0 or the "default" density code.
2637    * [2] The Tandberg 4100 has only one speed (if the driver ever cares).
2638    * [3] max_rretries and max_wretries are driver anachronisms.
2639    */
2640   {                           /* Structure member Description                 */
2641                               /* ---------------- -----------                 */
2642     "Tandberg 4100 QIC",      /* .name            Display ("pretty") name     */
2643     13,                       /* .length          Length of next item...      */
2644     "TANDBERG 4100",          /* .vid             Vendor-product ID string    */
2645     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2646     512,                      /* .bsize           Block size (0 = variable)   */
2647                               /* .options         Drive option flags:         */
2648     ST_QIC        |           /*    00002           QIC tape device           */
2649     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
2650     ST_BSR        |           /*    00010           Supports SPACE block rev  */
2651     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
2652     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
2653     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2654                               /*    -----                                     */
2655                               /*    0063A                                     */
2656     400,                      /* .max_rretries    [Note 3]                    */
2657     400,                      /* .max_wretries    [Note 3]                    */
2658     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2659     MT_DENSITY2,              /* .default_density (.densities[x])             */
2660     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2661   },
2662 
2663   /*
2664    * Tandberg 4200 QIC
2665    *
2666    *     NOTES
2667    *     -----
2668    *  o This is an unsupported drive.
2669    *
2670    * [1] The Tandberg 4200 uses 0 or the "default" density code.
2671    * [2] The Tandberg 4200 has only one speed (if the driver ever cares).
2672    * [3] max_rretries and max_wretries are driver anachronisms.
2673    */
2674   {                           /* Structure member Description                 */
2675                               /* ---------------- -----------                 */
2676     "Tandberg 4200 QIC",      /* .name            Display ("pretty") name     */
2677     13,                       /* .length          Length of next item...      */
2678     "TANDBERG 4200",          /* .vid             Vendor-product ID string    */
2679     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2680     512,                      /* .bsize           Block size (0 = variable)   */
2681                               /* .options         Drive option flags:         */
2682     ST_QIC        |           /*    00002           QIC tape device           */
2683     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
2684     ST_BSR        |           /*    00010           Supports SPACE block rev  */
2685     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
2686     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
2687     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2688                               /*    -----                                     */
2689                               /*    0063A                                     */
2690     400,                      /* .max_rretries    [Note 3]                    */
2691     400,                      /* .max_wretries    [Note 3]                    */
2692     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2693     MT_DENSITY2,              /* .default_density (.densities[x])             */
2694     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2695   },
2696 
2697   /*
2698    * Tandberg QIC 2.5 Gig Tape Drive
2699    *
2700    *     NOTES
2701    *     -----
2702    * [1] The TDC 4200 uses 0 or the "default" density code.
2703    * [2] The TDC 4200 has only one speed (if the driver ever cares).
2704    * [3] max_rretries and max_wretries are driver anachronisms.
2705    * [4] Data is buffered in the driver and pre-acked to the application. This
2706    *     is only supported in 2.5.1.
2707    */
2708   {                           /* Structure member Description                 */
2709                               /* ---------------- -----------                 */
2710     "Tandberg QIC 2.5 Gig Tape Drive",
2711                               /* .name            Display ("pretty") name     */
2712     16,                       /* .length          Length of next item...      */
2713     "TANDBERG TDC 420*",      /* .vid             Vendor-product ID string    */
2714     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2715     0,                        /* .bsize           Block size (0 = variable)   */
2716                               /* .options         Drive option flags:         */
2717     ST_VARIABLE          |    /*    00001           Supports variable length  */
2718     ST_QIC               |    /*    00002           QIC tape device           */
2719     ST_BSF               |    /*    00008           Supports SPACE block fwd  */
2720     ST_BSR               |    /*    00010           Supports SPACE block rev  */
2721     ST_LONG_ERASE        |    /*    00020           Needs extra time to erase */
2722     ST_AUTODEN_OVERRIDE  |    /*    00040           Autodensity override flag */
2723     ST_KNOWS_EOD         |    /*    00200           Recognizes end-of-data    */
2724     ST_UNLOADABLE        |    /*    00400           Driver can be unloaded    */
2725     ST_LONG_TIMEOUTS     |    /*    01000           More time for some ops    */
2726     ST_BUFFERED_WRITES   |    /*    04000           [Note 4]                  */
2727     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2728                               /*    -----                                     */
2729                               /*    0D67B                                     */
2730     400,                      /* .max_rretries    [Note 3]                    */
2731     400,                      /* .max_wretries    [Note 3]                    */
2732     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2733     MT_DENSITY1,              /* .default_density (.densities[x])             */
2734     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2735   },
2736 
2737   /*
2738    * Tandberg MLR1 QIC
2739    *
2740    *     NOTES
2741    *     -----
2742    * [1] The MLR1 uses 0 or the "default" density code.
2743    * [2] The MLR1 has only one speed (if the driver ever cares).
2744    * [3] max_rretries and max_wretries are driver anachronisms.
2745    * [4] Data is buffered in the driver and pre-acked to the application. This
2746    *     is only supported in 2.5.1.
2747    */
2748   {                           /* Structure member Description                 */
2749                               /* ---------------- -----------                 */
2750     "Tandberg MLR1 QIC",      /* .name            Display ("pretty") name     */
2751     12,                       /* .length          Length of next item...      */
2752     "TANDBERGMLR1",           /* .vid             Vendor-product ID string    */
2753     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2754     512,                      /* .bsize           Block size (0 = variable)   */
2755                               /* .options         Drive option flags:         */
2756     ST_QIC            |       /*    00002         QIC tape device             */
2757     ST_BSF            |       /*    00008         Supports SPACE block fwd    */
2758     ST_BSR            |       /*    00010         Supports SPACE block rev    */
2759     ST_LONG_ERASE     |       /*    00020         Needs extra time to erase   */
2760     ST_KNOWS_EOD      |       /*    00200         Recognizes end-of-data      */
2761     ST_UNLOADABLE     |       /*    00400         Driver can be unloaded      */
2762     ST_BUFFERED_WRITES,       /*    04000         [Note 4]                    */
2763                               /*    -----                                     */
2764                               /*    0463A                                     */
2765     400,                      /* .max_rretries    [Note 3]                    */
2766     400,                      /* .max_wretries    [Note 3]                    */
2767     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2768     MT_DENSITY1,              /* .default_density (.densities[x])             */
2769     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2770   },
2771 
2772   /*
2773    * Tandberg MLR3 QIC
2774    *
2775    *     NOTES
2776    *     -----
2777    * [1] The density code entry requires four values, even if there are less
2778    *     than four values for the drive.
2779    * [2] The MLR3 has only one speed (if the driver ever cares).
2780    * [3] max_rretries and max_wretries are driver anachronisms.
2781    */
2782   {                           /* Structure member Description                 */
2783                               /* ---------------- -----------                 */
2784     "Tandberg 50 Gig QIC",    /* .name            Display ("pretty") name     */
2785     12,                       /* .length          Length of next item...      */
2786     "TANDBERGMLR3",           /* .vid             Vendor-product ID string    */
2787     MT_ISTAND25G,             /* .type            Numeric type (cf. mtio.h)   */
2788     0,                        /* .bsize           Block size (0 = variable)   */
2789                               /* .options         Drive option flags:         */
2790     ST_VARIABLE        |      /*    00001           Supports variable length  */
2791     ST_QIC             |      /*    00002           QIC tape device           */
2792     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2793     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2794     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2795     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2796     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2797     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2798     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2799                               /*    -----                                     */
2800                               /*    0963B                                     */
2801     400,                      /* .max_rretries    [Note 3]                    */
2802     400,                      /* .max_wretries    [Note 3]                    */
2803     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
2804     MT_DENSITY3,              /* .default_density (.densities[x])             */
2805     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2806   },
2807 
2808   /*
2809    * WangDAT 3.81mm cartridge
2810    *
2811    *     NOTES
2812    *     -----
2813    *  o This is an unsupported drive.
2814    *
2815    * [1] The WangDAT 3.81mm uses 0 or the "default" density code.
2816    * [2] The WangDAT 3.81mm has only one speed (if the driver ever cares).
2817    * [3] max_rretries and max_wretries are driver anachronisms.
2818    */
2819   {                           /* Structure member Description                 */
2820                               /* ---------------- -----------                 */
2821     "Wang DAT 3.81 Helical Scan",
2822                               /* .name            Display ("pretty") name     */
2823     7,                        /* .length          Length of next item...      */
2824     "WangDAT",                /* .vid             Vendor-product ID string    */
2825     ST_TYPE_WANGDAT,          /* .type            Numeric type (cf. mtio.h)   */
2826     0,                        /* .bsize           Block size (0 = variable)   */
2827                               /* .options         Drive option flags:         */
2828     ST_VARIABLE         |     /*    00001           Supports variable length  */
2829     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2830     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2831     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2832     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2833     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2834                               /*    -----                                     */
2835                               /*    00659                                     */
2836     5000,                     /* .max_rretries    [Note 3]                    */
2837     5000,                     /* .max_wretries    [Note 3]                    */
2838     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2839     MT_DENSITY2,              /* .default_density (.densities[x])             */
2840     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2841   },
2842 
2843   /*
2844    * Wangtek QIC-150 1/4" cartridge
2845    *
2846    *     NOTES
2847    *     -----
2848    *  o This is an unsupported drive.
2849    *
2850    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
2851    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
2852    * [3] max_rretries and max_wretries are driver anachronisms.
2853    */
2854   {                           /* Structure member Description                 */
2855                               /* ---------------- -----------                 */
2856     "Wangtek QIC-150",        /* .name            Display ("pretty") name     */
2857     14,                       /* .length          Length of next item...      */
2858     "WANGTEK 5150ES",         /* .vid             Vendor-product ID string    */
2859     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
2860     512,                      /* .bsize           Block size (0 = variable)   */
2861                               /* .options         Drive option flags:         */
2862     ST_QIC              |     /*    00002           QIC tape device           */
2863     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2864     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2865     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2866                               /*    -----                                     */
2867                               /*    00642                                     */
2868     400,                      /* .max_rretries    [Note 3]                    */
2869     400,                      /* .max_wretries    [Note 3]                    */
2870     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2871     MT_DENSITY2,              /* .default_density (.densities[x])             */
2872     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2873   },
2874 
2875   /*
2876    * Wangtek 4mm RDAT drive
2877    *
2878    *     NOTES
2879    *     -----
2880    *  o This is an unsupported drive.
2881    *
2882    *  o This entry uses a shortened Vendor-product ID string for the
2883    *    INQUIRY match.
2884    *
2885    * [1] The Wangtek 4mm RDAT uses 0 or the "default" density code.
2886    * [2] The Wangtek 4mm RDAT has only one speed (if the driver ever cares).
2887    * [3] max_rretries and max_wretries are driver anachronisms.
2888    */
2889   {                           /* Structure member Description                 */
2890                               /* ---------------- -----------                 */
2891     "Wangtek 4mm Helical Scan",
2892                               /* .name            Display ("pretty") name     */
2893     14,                       /* .length          Length of next item...      */
2894     "WANGTEK 6130-H*",        /* .vid             Vendor-product ID string    */
2895     ST_TYPE_WANGTHS,          /* .type            Numeric type (cf. mtio.h)   */
2896     0,                        /* .bsize           Block size (0 = variable)   */
2897                               /* .options         Drive option flags:         */
2898     ST_VARIABLE         |     /*    00001           Supports variable length  */
2899     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2900     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2901     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2902     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2903     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2904                               /*    -----                                     */
2905                               /*    00659                                     */
2906     400,                      /* .max_rretries    [Note 3]                    */
2907     400,                      /* .max_wretries    [Note 3]                    */
2908     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2909     MT_DENSITY2,              /* .default_density (.densities[x])             */
2910     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2911   },
2912 
2913   /*
2914    * Wangtek QIC-150 1/4" cartridge
2915    *
2916    *     NOTES
2917    *     -----
2918    *  o This is an unsupported drive.
2919    *
2920    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
2921    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
2922    * [3] max_rretries and max_wretries are driver anachronisms.
2923    */
2924   {                           /* Structure member Description                 */
2925                               /* ---------------- -----------                 */
2926     "Wangtek 5525ES SCSI",    /* .name            Display ("pretty") name     */
2927     19,                       /* .length          Length of next item...      */
2928     "WANGTEK 5525ES SCSI",    /* .vid             Vendor-product ID string    */
2929     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
2930     512,                      /* .bsize           Block size (0 = variable)   */
2931                               /* .options         Drive option flags:         */
2932     ST_QIC              |     /*    00002           QIC tape device           */
2933     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2934     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2935     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
2936     ST_AUTODEN_OVERRIDE |     /*    00040           Autdensity override flag  */
2937     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2938     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2939                               /*    -----                                     */
2940                               /*    0067A                                     */
2941     400,                      /* .max_rretries    [Note 3]                    */
2942     400,                      /* .max_wretries    [Note 3]                    */
2943     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2944     MT_DENSITY2,              /* .default_density (.densities[x])             */
2945     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2946   },
2947 
2948   /*
2949    * [1] The Ecrix VXA-1 has only one density at this time,
2950    *     Compression is controlled via the Device Configuration
2951    *     mode page.
2952    * [2] The Ecrix VXA-1 is a veriable speed device. The drive determines
2953    *     the optimum speed. (if the driver ever cares).
2954    */
2955   {                           /* Structure member Description                 */
2956                               /* ---------------- -----------                 */
2957     "Ecrix VXA-1",            /* .name            Display ("pretty") name     */
2958     13,                       /* .length          Length of next item...      */
2959     "ECRIX   VXA-1",          /* .vid             Vendor-product ID string    */
2960     MT_ISOTHER,               /* .type            Numeric type (cf. mtio.h)   */
2961     0,                        /* .bsize           Block size (0 = variable)   */
2962                               /* .options         Drive option flags:         */
2963     ST_VARIABLE             | /*    00001           Supports variable length  */
2964     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
2965     ST_BSR                  | /*    00010           Supports SPACE block rev  */
2966     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
2967     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
2968     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
2969     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
2970     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
2971     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
2972     ST_MODE_SEL_COMP        | /*    10000         Mode Select to enable comp  */
2973     ST_CLN_TYPE_1,            /* 10000000         Asks to be cleaned this way */
2974                               /* --------                                     */
2975                               /* 10019E39                                     */
2976     -1,                       /* .max_rretries                                */
2977     -1,                       /* .max_wretries                                */
2978     {0x80, 0x80, 0x80, 0x80}, /* .densities       Density codes [Note 1]      */
2979     MT_DENSITY4,              /* .default_density (.densities[x])             */
2980     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2981   },
2982 
2983   /*
2984    * [1] The IBM Ultrium Gen 4 "OEM" version has two densites at this time,
2985    *     One for Gen 3 0x44, One for Gen 4 0x46.
2986    *     This drive is configured with ST_KNOWS_MEDIA.
2987    *     That means that it will look at the mediatype from the mode sense
2988    *     to select the density code. The compression will be selected based
2989    *     on the minor node the user opened.
2990    * [2] The IBM LTO reports a medium type that is used to select the density.
2991    */
2992   {                           /* Structure member Description                 */
2993                               /* ---------------- -----------                 */
2994     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
2995     19,                       /* .length          Length of next item...      */
2996     "IBM     ULTRIUM-TD4",    /* .vid             Vendor-product ID string    */
2997     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
2998     0,                        /* .bsize           Block size (0 = variable)   */
2999                               /* .options         Drive option flags:         */
3000     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3001     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3002     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3003     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3004     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3005     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3006     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3007     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3008     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3009                               /*  -------                                     */
3010                               /*  1818619                                     */
3011     -1,                       /* .max_rretries    Not used any more.          */
3012     -1,                       /* .max_wretries    Not used any more.          */
3013     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
3014     MT_DENSITY4,              /* .default_density (.densities[x])             */
3015     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
3016     MINUTES(1),               /* .non_motion_time                             */
3017     MINUTES(23),              /* .io_time                                     */
3018     MINUTES(9),               /* .rewind_time                                 */
3019     MINUTES(183),             /* .space_time      worst case directory invalid*/
3020     MINUTES(9),               /* .load_time                                   */
3021     MINUTES(13),              /* .unload_time                                 */
3022     MINUTES(180)              /* .erase_time                                  */
3023   },
3024 
3025   /*
3026    * [1] The IBM Ultrium Gen 4 "IBM" version has two densites at this time,
3027    *     One for Gen 3 0x44, one for Gen 4 0x46.
3028    *     This drive is configured with ST_KNOWS_MEDIA.
3029    *     That means that it will look at the mediatype from the mode sense
3030    *     to select the density code. The compression will be selected based
3031    *     on the minor node the user opened.
3032    * [2] The IBM LTO reports a medium type that is used to select the density.
3033    */
3034   {                           /* Structure member Description                 */
3035                               /* ---------------- -----------                 */
3036     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
3037     19,                       /* .length          Length of next item...      */
3038     "IBM     ULT3580-TD4",    /* .vid             Vendor-product ID string    */
3039     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3040     0,                        /* .bsize           Block size (0 = variable)   */
3041                               /* .options         Drive option flags:         */
3042     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3043     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3044     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3045     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3046     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3047     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3048     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3049     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3050     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3051                               /*  -------                                     */
3052                               /*  1818619                                     */
3053     -1,                       /* .max_rretries    Not used any more.          */
3054     -1,                       /* .max_wretries    Not used any more.          */
3055     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
3056     MT_DENSITY4,              /* .default_density (.densities[x])             */
3057     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
3058     MINUTES(1),               /* .non_motion_time                             */
3059     MINUTES(23),              /* .io_time                                     */
3060     MINUTES(9),               /* .rewind_time                                 */
3061     MINUTES(183),             /* .space_time      worst case directory invalid*/
3062     MINUTES(9),               /* .load_time                                   */
3063     MINUTES(13),              /* .unload_time                                 */
3064     MINUTES(180)              /* .erase_time                                  */
3065   },
3066 
3067   /*
3068    * [1] The IBM Ultrium Gen 3 "OEM" version has three densites at this time,
3069    *     One for Gen 1 0x40, One for Gen 2 0x42 and for Gen 3 0x44.
3070    *     This drive is configured with ST_KNOWS_MEDIA.
3071    *     That means that it will look at the mediatype from the mode sense
3072    *     to select the density code. The compression will be selected based
3073    *     on the minor node the user opened.
3074    * [2] The IBM LTO reports a medium type that is used to select the density.
3075    */
3076   {                           /* Structure member Description                 */
3077                               /* ---------------- -----------                 */
3078     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
3079     19,                       /* .length          Length of next item...      */
3080     "IBM     ULTRIUM-TD3",    /* .vid             Vendor-product ID string    */
3081     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3082     0,                        /* .bsize           Block size (0 = variable)   */
3083                               /* .options         Drive option flags:         */
3084     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3085     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3086     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3087     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3088     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3089     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3090     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3091     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3092     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3093                               /*  -------                                     */
3094                               /*  1818619                                     */
3095     -1,                       /* .max_rretries    Not used any more.          */
3096     -1,                       /* .max_wretries    Not used any more.          */
3097     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
3098     MT_DENSITY4,              /* .default_density (.densities[x])             */
3099     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
3100     MINUTES(1),               /* .non_motion_time                             */
3101     MINUTES(18),              /* .io_time                                     */
3102     MINUTES(9),               /* .rewind_time                                 */
3103     MINUTES(165),             /* .space_time      worst case directory invalid*/
3104     MINUTES(9),               /* .load_time                                   */
3105     MINUTES(12),              /* .unload_time                                 */
3106     MINUTES(160)              /* .erase_time                                  */
3107   },
3108 
3109   /*
3110    * [1] The IBM Ultrium Gen 3 "IBM" version has three densites at this time,
3111    *     One for Gen 1 0x40, One for Gen 2 0x42 and Gen 3 0x44.
3112    *     This drive is configured with ST_KNOWS_MEDIA.
3113    *     That means that it will look at the mediatype from the mode sense
3114    *     to select the density code. The compression will be selected based
3115    *     on the minor node the user opened.
3116    * [2] The IBM LTO reports a medium type that is used to select the density.
3117    */
3118   {                           /* Structure member Description                 */
3119                               /* ---------------- -----------                 */
3120     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
3121     19,                       /* .length          Length of next item...      */
3122     "IBM     ULT3580-TD3",    /* .vid             Vendor-product ID string    */
3123     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3124     0,                        /* .bsize           Block size (0 = variable)   */
3125                               /* .options         Drive option flags:         */
3126     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3127     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3128     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3129     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3130     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3131     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3132     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3133     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3134     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3135                               /*  -------                                     */
3136                               /*  1818619                                     */
3137     -1,                       /* .max_rretries    Not used any more.          */
3138     -1,                       /* .max_wretries    Not used any more.          */
3139     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
3140     MT_DENSITY4,              /* .default_density (.densities[x])             */
3141     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
3142     MINUTES(1),               /* .non_motion_time                             */
3143     MINUTES(18),              /* .io_time                                     */
3144     MINUTES(9),               /* .rewind_time                                 */
3145     MINUTES(165),             /* .space_time      worst case directory invalid*/
3146     MINUTES(9),               /* .load_time                                   */
3147     MINUTES(12),              /* .unload_time                                 */
3148     MINUTES(160)              /* .erase_time                                  */
3149   },
3150 
3151   /*
3152    * [1] The IBM Ultrium Gen 2 "OEM" version has two densites at this time,
3153    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
3154    *     Selects which density code is used but this documents the codes
3155    *     for those who care to know.
3156    *     Compression is controlled via the Compression mode page.
3157    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3158    */
3159   {                           /* Structure member Description                 */
3160                               /* ---------------- -----------                 */
3161     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
3162     19,                       /* .length          Length of next item...      */
3163     "IBM     ULTRIUM-TD2",    /* .vid             Vendor-product ID string    */
3164     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3165     0,                        /* .bsize           Block size (0 = variable)   */
3166                               /* .options         Drive option flags:         */
3167     ST_VARIABLE         |     /*    00001           Supports variable length  */
3168     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3169     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3170     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3171     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3172     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3173     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3174                               /*    -----                                     */
3175                               /*    18619                                     */
3176     -1,                       /* .max_rretries    Not used any more.          */
3177     -1,                       /* .max_wretries    Not used any more.          */
3178     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
3179     MT_DENSITY4,              /* .default_density (.densities[x])             */
3180     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3181     MINUTES(1),               /* .non_motion_time                             */
3182     MINUTES(18),              /* .io_time                                     */
3183     MINUTES(9),               /* .rewind_time                                 */
3184     MINUTES(151),             /* .space_time      worst case directory invalid*/
3185     MINUTES(12),              /* .load_time                                   */
3186     MINUTES(11),              /* .unload_time                                 */
3187     MINUTES(151)              /* .erase_time                                  */
3188   },
3189 
3190   /*
3191    * [1] The IBM Ultrium Gen 2 "IBM" version has two densites at this time,
3192    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
3193    *     Selects which density code is used but this documents the codes
3194    *     for those who care to know.
3195    *     Compression is controlled via the Compression mode page.
3196    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3197    */
3198   {                           /* Structure member Description                 */
3199                               /* ---------------- -----------                 */
3200     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
3201     19,                       /* .length          Length of next item...      */
3202     "IBM     ULT3580-TD2",    /* .vid             Vendor-product ID string    */
3203     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3204     0,                        /* .bsize           Block size (0 = variable)   */
3205                               /* .options         Drive option flags:         */
3206     ST_VARIABLE         |     /*    00001           Supports variable length  */
3207     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3208     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3209     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3210     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3211     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3212     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3213                               /*    -----                                     */
3214                               /*    18619                                     */
3215     -1,                       /* .max_rretries    Not used any more.          */
3216     -1,                       /* .max_wretries    Not used any more.          */
3217     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
3218     MT_DENSITY4,              /* .default_density (.densities[x])             */
3219     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3220     MINUTES(1),               /* .non_motion_time                             */
3221     MINUTES(18),              /* .io_time                                     */
3222     MINUTES(9),               /* .rewind_time                                 */
3223     MINUTES(151),             /* .space_time      worst case directory invalid*/
3224     MINUTES(12),              /* .load_time                                   */
3225     MINUTES(11),              /* .unload_time                                 */
3226     MINUTES(151)              /* .erase_time                                  */
3227   },
3228 
3229   /*
3230    * [1] The IBM Ultrium has only one density at this time,
3231    *     Compression is controlled via the Device Configuration mode page.
3232    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3233    */
3234   {                           /* Structure member Description                 */
3235                               /* ---------------- -----------                 */
3236     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
3237     19,                       /* .length          Length of next item...      */
3238     "IBM     ULTRIUM-TD1",    /* .vid             Vendor-product ID string    */
3239     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3240     0,                        /* .bsize           Block size (0 = variable)   */
3241                               /* .options         Drive option flags:         */
3242     ST_VARIABLE         |     /*    00001           Supports variable length  */
3243     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3244     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3245     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3246     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3247     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3248     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3249                               /*    -----                                     */
3250                               /*    18619                                     */
3251     -1,                       /* .max_rretries    Not used any more.          */
3252     -1,                       /* .max_wretries    Not used any more.          */
3253     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
3254     MT_DENSITY4,              /* .default_density (.densities[x])             */
3255     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3256     MINUTES(1),               /* .non_motion_time                             */
3257     MINUTES(18),              /* .io_time                                     */
3258     MINUTES(8),               /* .rewind_time                                 */
3259     MINUTES(173),             /* .space_time      worst case directory invalid*/
3260     MINUTES(11),              /* .load_time                                   */
3261     MINUTES(11),              /* .unload_time                                 */
3262     MINUTES(173)              /* .erase_time                                  */
3263   },
3264 
3265   /*
3266    * This is the same drive as the above except for the inquiry string and
3267    * that it is a "End User Version".
3268    * [1] The IBM Ultrium has only one density at this time,
3269    *     Compression is controlled via the Device Configuration mode page.
3270    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3271    */
3272   {                           /* Structure member Description                 */
3273                               /* ---------------- -----------                 */
3274     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
3275     19,                       /* .length          Length of next item...      */
3276     "IBM     ULT3580-TD1",    /* .vid             Vendor-product ID string    */
3277     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3278     0,                        /* .bsize           Block size (0 = variable)   */
3279                               /* .options         Drive option flags:         */
3280     ST_VARIABLE         |     /*    00001           Supports variable length  */
3281     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3282     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3283     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3284     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3285     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3286     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3287                               /*    -----                                     */
3288                               /*    18619                                     */
3289     -1,                       /* .max_rretries    Not used any more.          */
3290     -1,                       /* .max_wretries    Not used any more.          */
3291     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
3292     MT_DENSITY4,              /* .default_density (.densities[x])             */
3293     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3294     MINUTES(1),               /* .non_motion_time                             */
3295     MINUTES(18),              /* .io_time                                     */
3296     MINUTES(8),               /* .rewind_time                                 */
3297     MINUTES(173),             /* .space_time      worst case directory invalid*/
3298     MINUTES(11),              /* .load_time                                   */
3299     MINUTES(11),              /* .unload_time                                 */
3300     MINUTES(173)              /* .erase_time                                  */
3301   },
3302 
3303   /*
3304    * [1] The IBM 3592 Cartridge has only one density at this time,
3305    *     Compression is controlled via the Device Configuration mode page.
3306    * [2] The IBM 3592 Cartridge has only one speed (if the driver ever cares).
3307    */
3308   {                           /* Structure member Description                 */
3309                               /* ---------------- -----------                 */
3310     "IBM 3592 Cartridge",     /* .name            Display ("pretty") name     */
3311     13,                       /* .length          Length of next item...      */
3312     "IBM     03592",          /* .vid             Vendor-product ID string    */
3313     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3314     0,                        /* .bsize           Block size (0 = variable)   */
3315                               /* .options         Drive option flags:         */
3316     ST_VARIABLE         |     /*    00001           Supports variable length  */
3317     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3318     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3319     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
3320     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3321     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3322     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3323     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3324                               /*    -----                                     */
3325                               /*    18659                                     */
3326     -1,                       /* .max_rretries    Not used any more.          */
3327     -1,                       /* .max_wretries    Not used any more.          */
3328     {0x51, 0x51, 0x51, 0x51}, /* .densities       Density codes [Note 1]      */
3329     MT_DENSITY4,              /* .default_density (.densities[x])             */
3330     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3331     MINUTES(1),               /* .non_motion_time                             */
3332     MINUTES(18),              /* .io_time                                     */
3333     MINUTES(8),               /* .rewind_time                                 */
3334     MINUTES(14),              /* .space_time      worst case directory invalid*/
3335     MINUTES(12),              /* .load_time                                   */
3336     MINUTES(12),              /* .unload_time                                 */
3337     MINUTES(235)              /* .erase_time                                  */
3338   },
3339 
3340   /*
3341    * Seagate Hornet NS20 USB Travan
3342    *
3343    *     NOTES
3344    *     -----
3345    *  o This drive is not OEM'ed or qualified by Sun.
3346    *
3347    * [1] The NS20 Travan uses 0 or the "default" density code.
3348    * [2] The NS20 Travan has only one speed (if the driver ever cares).
3349    * [3] max_rretries and max_wretries are driver anachronisms.
3350    */
3351   {                           /* Structure member Description                 */
3352                               /* ---------------- -----------                 */
3353     "Seagate Hornet NS20 Travan",
3354                               /* .name            Display ("pretty") name     */
3355     17,                       /* .length          Length of next item...      */
3356     "Seagate STT20000A",      /* .vid             Vendor-product ID string    */
3357     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
3358     512,                      /* .bsize           Block size (0 = variable)   */
3359                               /* .options         Drive option flags:         */
3360     ST_QIC              |     /*    00002           QIC tape device           */
3361     ST_BSF              |     /*    00008           Supports back SPACE file  */
3362     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
3363                               /*    -----                                     */
3364                               /*    0040A                                     */
3365     400,                      /* .max_rretries    [Note 3]                    */
3366     400,                      /* .max_wretries    [Note 3]                    */
3367     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3368     MT_DENSITY1,              /* .default_density (.densities[x])             */
3369     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3370   },
3371 
3372 
3373   /*
3374    * Seagate Hornet Travan 40
3375    *
3376    *     NOTES
3377    *     -----
3378    *  o This drive is not OEM'ed or qualified by Sun.
3379    *
3380    * [1] The Travan uses 0 or the "default" density code.
3381    * [2] The Travan has only one speed (if the driver ever cares).
3382    * [3] max_rretries and max_wretries are driver anachronisms.
3383    */
3384   {                           /* Structure member Description                 */
3385                               /* ---------------- -----------                 */
3386     "Seagate Hornet Travan 40",
3387                               /* .name            Display ("pretty") name     */
3388     16,                       /* .length          Length of next item...      */
3389     "Seagate STT3401A",       /* .vid             Vendor-product ID string    */
3390     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
3391     512,                      /* .bsize           Block size (0 = variable)   */
3392                               /* .options         Drive option flags:         */
3393     ST_QIC              |     /*    00002           QIC tape device           */
3394     ST_BSF              |     /*    00008           Supports back SPACE file  */
3395     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
3396                               /*    -----                                     */
3397                               /*    0040A                                     */
3398     400,                      /* .max_rretries    [Note 3]                    */
3399     400,                      /* .max_wretries    [Note 3]                    */
3400     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3401     MT_DENSITY1,              /* .default_density (.densities[x])             */
3402     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3403   }
3404 
3405 	/* END CSTYLED */
3406 
3407 };
3408 
3409 
3410 const int st_ndrivetypes = (sizeof (st_drivetypes)/sizeof (st_drivetypes[0]));
3411