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