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