xref: /onnv-gate/usr/src/uts/common/io/scsi/targets/st_conf.c (revision 8217:a9bbecf467ec)
10Sstevel@tonic-gate /*
20Sstevel@tonic-gate  * CDDL HEADER START
30Sstevel@tonic-gate  *
40Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
51866Szl149053  * Common Development and Distribution License (the "License").
61866Szl149053  * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate  *
80Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate  * See the License for the specific language governing permissions
110Sstevel@tonic-gate  * and limitations under the License.
120Sstevel@tonic-gate  *
130Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate  *
190Sstevel@tonic-gate  * CDDL HEADER END
200Sstevel@tonic-gate  */
211866Szl149053 
220Sstevel@tonic-gate /*
237862SRichard.Bean@Sun.COM  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
240Sstevel@tonic-gate  * Use is subject to license terms.
250Sstevel@tonic-gate  */
260Sstevel@tonic-gate 
270Sstevel@tonic-gate #include <sys/scsi/scsi.h>
280Sstevel@tonic-gate #include <sys/mtio.h>
290Sstevel@tonic-gate #include <sys/condvar.h>
300Sstevel@tonic-gate #include <sys/kstat.h>
310Sstevel@tonic-gate #include <sys/scsi/targets/stdef.h>
320Sstevel@tonic-gate 
337862SRichard.Bean@Sun.COM const char st_conf_version[] = "st_conf.c 1.92 08/10/17";
340Sstevel@tonic-gate /*
350Sstevel@tonic-gate  * General
360Sstevel@tonic-gate  * -------
370Sstevel@tonic-gate  * o MT_DENSITYx counts from 1..4, rather than 0..3.
380Sstevel@tonic-gate  * o Some entries specify a value for the 'length' member that is
390Sstevel@tonic-gate  *   less than the actual length of the 'vid' member. This is done
400Sstevel@tonic-gate  *   intentionally to allow the comparison to succeed for different
410Sstevel@tonic-gate  *   drives.
420Sstevel@tonic-gate  */
430Sstevel@tonic-gate 
440Sstevel@tonic-gate /*
450Sstevel@tonic-gate  * Drive Tables.
460Sstevel@tonic-gate  *
470Sstevel@tonic-gate  * The structure and option definitions can be
480Sstevel@tonic-gate  * found in <sys/scsi/targets/stdef.h>.
490Sstevel@tonic-gate  *
500Sstevel@tonic-gate  * Note: that blocksize should be a power of two
510Sstevel@tonic-gate  * for fixed-length recording devices.
520Sstevel@tonic-gate  *
530Sstevel@tonic-gate  * Note: the speed codes are unused at present.
540Sstevel@tonic-gate  * The driver turns around whatever is reported
550Sstevel@tonic-gate  * from the drive via the mode sense.
560Sstevel@tonic-gate  *
570Sstevel@tonic-gate  * Note: the read retry and write retry counts
580Sstevel@tonic-gate  * are there to provide a limit until warning
590Sstevel@tonic-gate  * messages are printed.
600Sstevel@tonic-gate  *
610Sstevel@tonic-gate  *
620Sstevel@tonic-gate  * Note: For drives that are not in this table....
630Sstevel@tonic-gate  *
640Sstevel@tonic-gate  * The first open of the device will cause a MODE SENSE command
650Sstevel@tonic-gate  * to be sent. From that we can determine block size. If block
660Sstevel@tonic-gate  * size is zero, than this drive is in variable-record length
670Sstevel@tonic-gate  * mode. The driver uses the SCSI-2 specification density codes in
680Sstevel@tonic-gate  * order to attempt to determine what kind of sequential access
690Sstevel@tonic-gate  * device this is. This will allow determination of 1/4" cartridge,
700Sstevel@tonic-gate  * 1/2" cartridge, some helical scan (3.81 && 8 mm cartridge) and
710Sstevel@tonic-gate  * 1/2" reel tape devices. The driver will print what it finds and is
720Sstevel@tonic-gate  * assuming to the console. If the device you have hooked up returns
730Sstevel@tonic-gate  * the default density code (0) after power up, the drive cannot
740Sstevel@tonic-gate  * determine what kind of drive it might be, so it will assume that
750Sstevel@tonic-gate  * it is an unknown 1/4" cartridge tape (QIC).
760Sstevel@tonic-gate  *
770Sstevel@tonic-gate  * If the drive is determined in this way to be a 1/2" 9-track reel
780Sstevel@tonic-gate  * type device, an attempt will be mode to put it in Variable
790Sstevel@tonic-gate  * record length mode.
800Sstevel@tonic-gate  *
810Sstevel@tonic-gate  * Generic drives are assumed to support only the long erase option
820Sstevel@tonic-gate  * and will not to be run in buffered mode.
830Sstevel@tonic-gate  */
840Sstevel@tonic-gate 
850Sstevel@tonic-gate /*
860Sstevel@tonic-gate  * Format for Tape Drive Entry
870Sstevel@tonic-gate  *
880Sstevel@tonic-gate  * Please maintain the format currently in use for defining the properties
890Sstevel@tonic-gate  * associated with each tape drive. This format is intended to make the
900Sstevel@tonic-gate  * entries more readable and help increase the accuracy of the entries.
910Sstevel@tonic-gate  * See the actual entries for examples of what they should look like.
920Sstevel@tonic-gate  *
930Sstevel@tonic-gate  * Important points to note about the format:
940Sstevel@tonic-gate  *
950Sstevel@tonic-gate  * 1. The opening and closing braces are indented 2 spaces.
960Sstevel@tonic-gate  * 2. Each line in the entry is indented 4 spaces.
970Sstevel@tonic-gate  * 3. The numerical values and text in the .options comments are indented two
980Sstevel@tonic-gate  *    spaces in the comment block.
990Sstevel@tonic-gate  * 4. The maximum line width is 80 columns; do not exceed this.
1000Sstevel@tonic-gate  * 5. The comment delimiters should line up, per the example.
1010Sstevel@tonic-gate  * 6. The OR symbol (|) should line up for multiple options.
1020Sstevel@tonic-gate  * 7. Hexadecimal values should be capitalized, for consistency.
1030Sstevel@tonic-gate  * 8. The leading / in the comment block header is indented 2 spaces and the
1040Sstevel@tonic-gate  *    susequent *'s should all line up.
1050Sstevel@tonic-gate  * 9. Order of the entries is very important. There are several groups of
1060Sstevel@tonic-gate  *    entries where the last entry in the grouping acts as a catch-all. If you
1070Sstevel@tonic-gate  *    place an entry after the catch-all, it will never be used by the driver.
1080Sstevel@tonic-gate  * 10. TABs should not be used anywhere between the BEGIN CSTYLED and
1090Sstevel@tonic-gate  *    END CSTYLED lines.
1100Sstevel@tonic-gate  */
1110Sstevel@tonic-gate 
1120Sstevel@tonic-gate /*
1130Sstevel@tonic-gate  * Supported Drive Options
1140Sstevel@tonic-gate  *
1150Sstevel@tonic-gate  * The descriptions for the supported drive options are taken from stdef.h.
1160Sstevel@tonic-gate  *
1170Sstevel@tonic-gate  * ST_VARIABLE                          Device supports variable length record
1180Sstevel@tonic-gate  *                                      sizes.
1190Sstevel@tonic-gate  * ST_QIC                               QIC tape device.
1200Sstevel@tonic-gate  * ST_REEL                              1/2-inch reel tape device.
1210Sstevel@tonic-gate  * ST_BSF                               Device supports backspace file as in
1220Sstevel@tonic-gate  *                                      mt(1) bsf backspace over EOF marks.
1230Sstevel@tonic-gate  *                                      Devices not supporting bsf will fail
1240Sstevel@tonic-gate  *                                      with ENOTTY upon use of bsf.
1250Sstevel@tonic-gate  * ST_BSR                               Device supports backspace record as in
1260Sstevel@tonic-gate  *                                      mt(1) bsr : backspace over records. If
1270Sstevel@tonic-gate  *                                      the device does not support bsr, the st
1280Sstevel@tonic-gate  *                                      driver emulates the action by rewinding
1290Sstevel@tonic-gate  *                                      the tape and using forward space file
1300Sstevel@tonic-gate  *                                      (fsf) to the correct file and then uses
1310Sstevel@tonic-gate  *                                      forward space record (fsr) to the
1320Sstevel@tonic-gate  *                                      correct record.
1330Sstevel@tonic-gate  * ST_LONG_ERASE                        Device needs a longer time than normal
1340Sstevel@tonic-gate  *                                      to erase.
1350Sstevel@tonic-gate  * ST_AUTODEN_OVERRIDE                  Autodensity override flag Device can
1360Sstevel@tonic-gate  *                                      figure out the tape density
1370Sstevel@tonic-gate  *                                      automatically,without issuing a mode-
1380Sstevel@tonic-gate  *                                      select/mode-sense.
1390Sstevel@tonic-gate  * ST_NOBUF                             Don't use buffered mode. This disables
1400Sstevel@tonic-gate  *                                      the device's ability for buffered writes
1410Sstevel@tonic-gate  *                                      i.e. The device acknowledges write
1420Sstevel@tonic-gate  *                                      completion after the data is written to
1430Sstevel@tonic-gate  *                                      the device's buffer, but before all the
1440Sstevel@tonic-gate  *                                      data is actually written to tape.
1450Sstevel@tonic-gate  * ST_RESERVED_BIT1                     Reserved bit parity while talking to it.
1460Sstevel@tonic-gate  * ST_KNOWS_EOD                         Device knows when EOD (End of Data) has
1470Sstevel@tonic-gate  *                                      been reached. If the device knows EOD,
1480Sstevel@tonic-gate  *                                      st uses fast file skipping. If it does
1490Sstevel@tonic-gate  *                                      not know EOD, file skipping happens one
1500Sstevel@tonic-gate  *                                      file at a time.
1510Sstevel@tonic-gate  * ST_UNLOADABLE                        Device will not complain if the st
1520Sstevel@tonic-gate  *                                      driver is unloaded & loaded again;
1530Sstevel@tonic-gate  *                                      e.g. will return the correct inquiry
1540Sstevel@tonic-gate  *                                      string.
1550Sstevel@tonic-gate  * ST_SOFT_ERROR_REPORTING              Do request or log sense on close to
1560Sstevel@tonic-gate  *                                      report soft errors.Currently only
1570Sstevel@tonic-gate  *                                      Exabyte and DAT drives support this
1580Sstevel@tonic-gate  *                                      feature.
1590Sstevel@tonic-gate  * ST_LONG_TIMEOUTS                     Device needs 5 times longer timeouts
1600Sstevel@tonic-gate  *                                      for normal operation.
1610Sstevel@tonic-gate  * ST_BUFFERED_WRITES                   The data is buffered in the driver and
1620Sstevel@tonic-gate  *                                      pre-acked to the application.
1630Sstevel@tonic-gate  * ST_NO_RECSIZE_LIMIT                  For variable record size devices only.
1640Sstevel@tonic-gate  *                                      If flag is set,then don't limit record
1650Sstevel@tonic-gate  *                                      size to 64k as in pre-Solaris 2.4
1660Sstevel@tonic-gate  *                                      releases. The only limit on the record
1670Sstevel@tonic-gate  *                                      size will be the max record size the
1680Sstevel@tonic-gate  *                                      device can handle or the max DMA
1690Sstevel@tonic-gate  *                                      transfer size of the machine, which ever
1700Sstevel@tonic-gate  *                                      is smaller. Beware of incompatabilities
1710Sstevel@tonic-gate  *                                      with tapes of pre-Solaris 2.4 OS's
1720Sstevel@tonic-gate  *                                      written with large (>64k) block sizes,
1730Sstevel@tonic-gate  *                                      as their true block size is a max of
1740Sstevel@tonic-gate  *                                      approx 64k.
1750Sstevel@tonic-gate  * ST_MODE_SEL_COMP                     Use mode select of device configuration
1760Sstevel@tonic-gate  *                                      page (0x10) to enable/disable
1770Sstevel@tonic-gate  *                                      compression instead of density codes
1780Sstevel@tonic-gate  *                                      for the "c" and "u" devices.
1790Sstevel@tonic-gate  * ST_NO_RESERVE_RELEASE                For devices which do not support
1800Sstevel@tonic-gate  *                                      RESERVE/RELEASE SCSI command. If this
1810Sstevel@tonic-gate  *                                      is enabled then RESERVE/RELEASE would
1820Sstevel@tonic-gate  *                                      not be used during open/close for High
1830Sstevel@tonic-gate  *                                      Availability.
1840Sstevel@tonic-gate  * ST_READ_IGNORE_ILI                   This flag is only applicable to
1850Sstevel@tonic-gate  *                                      variable block devices which support
1860Sstevel@tonic-gate  *                                      the SILI bit option. It indicates that
1870Sstevel@tonic-gate  *                                      the SILI bit will be ignored during
1880Sstevel@tonic-gate  *                                      reads.
1890Sstevel@tonic-gate  * ST_READ_IGNORE_EOFS                  When this flag is set two EOF marks do
1900Sstevel@tonic-gate  *                                      not indicate an EOM. This option is
1910Sstevel@tonic-gate  *                                      only supported on 1/2" reel tapes.
1920Sstevel@tonic-gate  * ST_SHORT_FILEMARKS                   This option applies only to EXABYTE 8mm
1930Sstevel@tonic-gate  *                                      tape drives which support short
1940Sstevel@tonic-gate  *                                      filemarks. When this flag is set, short
1950Sstevel@tonic-gate  *                                      filemarks will be used for writing
1960Sstevel@tonic-gate  *                                      filemarks.
1970Sstevel@tonic-gate  * ST_EJECT_ON_CHANGER_FAILURE          When this flag is set and the tape is
1980Sstevel@tonic-gate  *                                      trapped in the medium changer, the
1990Sstevel@tonic-gate  *                                      tape is automatically ejected.
2000Sstevel@tonic-gate  * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR This option applies only to IBM MAGSTAR
2010Sstevel@tonic-gate  *                                      3590. If this flag is set, the st
2020Sstevel@tonic-gate  *                                      driver will retry the last cmd if the
2030Sstevel@tonic-gate  *                                      last error cause a check condition with
2040Sstevel@tonic-gate  *                                      error code 0x71 and sense code 0x01.
2050Sstevel@tonic-gate  */
2060Sstevel@tonic-gate 
2070Sstevel@tonic-gate /*
2080Sstevel@tonic-gate  * Values Corresponding To The Supported Drive Options Flags
2090Sstevel@tonic-gate  *
2100Sstevel@tonic-gate  * ST_VARIABLE                            0x000001
2110Sstevel@tonic-gate  * ST_QIC                                 0x000002
2120Sstevel@tonic-gate  * ST_REEL                                0x000004
2130Sstevel@tonic-gate  * ST_BSF                                 0x000008
2140Sstevel@tonic-gate  * ST_BSR                                 0x000010
2150Sstevel@tonic-gate  * ST_LONG_ERASE                          0x000020
2160Sstevel@tonic-gate  * ST_AUTODEN_OVERRIDE                    0x000040
2170Sstevel@tonic-gate  * ST_NOBUF                               0x000080
2180Sstevel@tonic-gate  * ST_RESERVED_BIT1                       0x000100
2190Sstevel@tonic-gate  * ST_KNOWS_EOD                           0x000200
2200Sstevel@tonic-gate  * ST_UNLOADABLE                          0x000400
2210Sstevel@tonic-gate  * ST_SOFT_ERROR_REPORTING                0x000800
2220Sstevel@tonic-gate  * ST_LONG_TIMEOUT                        0x001000
2230Sstevel@tonic-gate  * ST_BUFFERED_WRITES                     0x004000
2240Sstevel@tonic-gate  * ST_NO_RECSIZE_LIMIT                    0x008000
2250Sstevel@tonic-gate  * ST_MODE_SEL_COMP                       0x010000
2260Sstevel@tonic-gate  * ST_NO_RESERVE_RELEASE                  0x020000
2270Sstevel@tonic-gate  * ST_READ_IGNORE_ILI                     0x040000
2280Sstevel@tonic-gate  * ST_READ_IGNORE_EOFS                    0x080000
2290Sstevel@tonic-gate  * ST_SHORT_FILEMARKS                     0x100000
2300Sstevel@tonic-gate  * ST_EJECT_ON_CHANGER_FAILURE            0x200000
2310Sstevel@tonic-gate  * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR   0x400000
2320Sstevel@tonic-gate  */
2330Sstevel@tonic-gate 
2340Sstevel@tonic-gate const struct st_drivetype st_drivetypes[] =
2350Sstevel@tonic-gate {
2360Sstevel@tonic-gate 	/* BEGIN CSTYLED */
2370Sstevel@tonic-gate   /*
2380Sstevel@tonic-gate    * Anritsu 1/2" reel
2390Sstevel@tonic-gate    *
2400Sstevel@tonic-gate    *     NOTES
2410Sstevel@tonic-gate    *     -----
2420Sstevel@tonic-gate    *  o This is an unsupported drive.
2430Sstevel@tonic-gate    *
2440Sstevel@tonic-gate    * [1] The Anritsu 1/2" reel has two density codes (or 0 for "default").
2450Sstevel@tonic-gate    * [2] The Anritsu 1/2" reel has only one speed (if the driver ever cares).
2460Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
2470Sstevel@tonic-gate    */
2480Sstevel@tonic-gate   {                           /* Structure member Description                 */
2490Sstevel@tonic-gate                               /* ---------------- -----------                 */
2500Sstevel@tonic-gate     "Unisys 1/2\" Reel",      /* .name            Display ("pretty") name     */
2510Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
2520Sstevel@tonic-gate     "ANRITSU DMT2120",        /* .vid             Vendor-product ID string    */
2530Sstevel@tonic-gate     ST_TYPE_ANRITSU,          /* .type            Numeric type (cf. mtio.h)   */
2540Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
2550Sstevel@tonic-gate                               /* .options         Drive option flags:         */
2560Sstevel@tonic-gate     ST_VARIABLE  |            /*    00001           Supports variable length  */
2570Sstevel@tonic-gate     ST_REEL      |            /*    00004           1/2-inch reel tape device */
2580Sstevel@tonic-gate     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
2590Sstevel@tonic-gate     ST_BSR       |            /*    00010           Supports SPACE block rev  */
2600Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2610Sstevel@tonic-gate                               /*    -----                                     */
2620Sstevel@tonic-gate                               /*    0041D                                     */
2630Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
2640Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
2650Sstevel@tonic-gate     {0x00, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
2660Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
2670Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2680Sstevel@tonic-gate   },
2690Sstevel@tonic-gate 
2700Sstevel@tonic-gate   /*
2710Sstevel@tonic-gate    * Archive QIC-150 1/4" cartridge
2720Sstevel@tonic-gate    *
2730Sstevel@tonic-gate    *     NOTES
2740Sstevel@tonic-gate    *     -----
2750Sstevel@tonic-gate    *  o The manual for the Archive drive claims that this drive
2760Sstevel@tonic-gate    *    can backspace filemarks. In practice this doens't always
2770Sstevel@tonic-gate    *    seem to be the case.
2780Sstevel@tonic-gate    * [1] The QIC-150 uses 0 or "default" density.
2790Sstevel@tonic-gate    * [2] The QIC-150 has only one speed (if the driver ever cares).
2800Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
2810Sstevel@tonic-gate    */
2820Sstevel@tonic-gate   {                           /* Structure member Description                 */
2830Sstevel@tonic-gate                               /* ---------------- -----------                 */
2840Sstevel@tonic-gate     "Archive QIC-150",        /* .name            Display ("pretty") name     */
2850Sstevel@tonic-gate     13,                       /* .length          Length of next item...      */
2860Sstevel@tonic-gate     "ARCHIVE VIPER",          /* .vid             Vendor-product ID string    */
2870Sstevel@tonic-gate     ST_TYPE_ARCHIVE,          /* .type            Numeric type (cf. mtio.h)   */
2880Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
2890Sstevel@tonic-gate                               /* .options         Drive option flags:         */
2900Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
2910Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2920Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2930Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2940Sstevel@tonic-gate                               /*    -----                                     */
2950Sstevel@tonic-gate                               /*    00642                                     */
2960Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
2970Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
2980Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2990Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
3000Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3010Sstevel@tonic-gate   },
3020Sstevel@tonic-gate 
3030Sstevel@tonic-gate   /*
3040Sstevel@tonic-gate    * Archive Python 04106 4mm 2GB drive
3050Sstevel@tonic-gate    *
3060Sstevel@tonic-gate    *     NOTES
3070Sstevel@tonic-gate    *     -----
3080Sstevel@tonic-gate    *  o This is an unsupported drive.
3090Sstevel@tonic-gate    *
3100Sstevel@tonic-gate    * [1] The Python 04106 has only one density, 0x42 (or 0 for "default").
3110Sstevel@tonic-gate    * [2] The Python 04106 has only one speed (if the driver ever cares).
3120Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
3130Sstevel@tonic-gate    * [4] The manufacturer recommends 0x2c ("MT_ISPYTHON") here,
3140Sstevel@tonic-gate    *     even though ST_TYPE_PYTHON is recommended.  For con-
3150Sstevel@tonic-gate    *     sistency, let's not fight it.
3160Sstevel@tonic-gate    */
3170Sstevel@tonic-gate   {                           /* Structure member Description                 */
3180Sstevel@tonic-gate                               /* ---------------- -----------                 */
3190Sstevel@tonic-gate     "Seagate Scorpion 24 DDS3 DAT",
3200Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
3210Sstevel@tonic-gate     20,                       /* .length          Length of next item...      */
3220Sstevel@tonic-gate     "ARCHIVE Python 04106",   /* .vid             Vendor-product ID string    */
3230Sstevel@tonic-gate     MT_ISPYTHON,              /* .type            Numeric type  [Note 4]      */
3240Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
3250Sstevel@tonic-gate                               /* .options         Drive option flags:         */
3260Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
3270Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
3280Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
3290Sstevel@tonic-gate     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
3300Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
3310Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
3320Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
3330Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
3340Sstevel@tonic-gate                               /*    -----                                     */
3350Sstevel@tonic-gate                               /*    09639                                     */
3360Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
3370Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
3380Sstevel@tonic-gate     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
3390Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
3400Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3410Sstevel@tonic-gate   },
3420Sstevel@tonic-gate 
3430Sstevel@tonic-gate   /*
3440Sstevel@tonic-gate    * Archive/Conner CTDX004 4mm DAT
3450Sstevel@tonic-gate    *
3460Sstevel@tonic-gate    *     NOTES
3470Sstevel@tonic-gate    *     -----
3480Sstevel@tonic-gate    * [1] The CTDX004 uses 0 or the "default" density code.
3490Sstevel@tonic-gate    * [2] The CTDX004 has only one speed (if the driver ever cares).
3500Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
3510Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
3520Sstevel@tonic-gate    *     is only supported in 2.5.1.
3530Sstevel@tonic-gate    */
3540Sstevel@tonic-gate   {                           /* Structure member Description                 */
3550Sstevel@tonic-gate                               /* ---------------- -----------                 */
3560Sstevel@tonic-gate     "Archive/Conner CTDX004 4mm DAT",
3570Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
3580Sstevel@tonic-gate     20,                       /* .length          Length of next item...      */
3590Sstevel@tonic-gate     "ARCHIVE Python 28388",   /* .vid             Vendor-product ID string    */
3600Sstevel@tonic-gate     ST_TYPE_PYTHON,           /* .type            Numeric type (cf. mtio.h)   */
3610Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
3620Sstevel@tonic-gate                               /* .options         Drive option flags:         */
3630Sstevel@tonic-gate     ST_VARIABLE             | /*    00001           Supports variable length  */
3640Sstevel@tonic-gate     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
3650Sstevel@tonic-gate     ST_BSR                  | /*    00010           Supports SPACE block rev  */
3660Sstevel@tonic-gate     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
3670Sstevel@tonic-gate     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
3680Sstevel@tonic-gate     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
3690Sstevel@tonic-gate     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
3700Sstevel@tonic-gate     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
3710Sstevel@tonic-gate     ST_BUFFERED_WRITES      | /*    04000           [Note 4]                  */
3720Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
3730Sstevel@tonic-gate                               /*    -----                                     */
3740Sstevel@tonic-gate                               /*    0DE39                                     */
3750Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
3760Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
3770Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3780Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density (.densities[x])             */
3790Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3800Sstevel@tonic-gate   },
3810Sstevel@tonic-gate 
3820Sstevel@tonic-gate   /*
3830Sstevel@tonic-gate    * Archive Python 4mm 2GB drive
3840Sstevel@tonic-gate    *
3850Sstevel@tonic-gate    *     NOTES
3860Sstevel@tonic-gate    *     -----
3870Sstevel@tonic-gate    *  o This must be the last entry in the list of Python drives, since it
3880Sstevel@tonic-gate    *    acts as a catch-all for any Python drive not listed above.
3890Sstevel@tonic-gate    *
3900Sstevel@tonic-gate    * [1] The Archive Python 4mm has only one density, 0x8c (or 0 for "default").
3910Sstevel@tonic-gate    * [2] The Archive Python 4mm has only one speed (if the driver ever cares).
3920Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
3930Sstevel@tonic-gate    * [4] Do a request or log sense on close to report soft errors.
3940Sstevel@tonic-gate    */
3950Sstevel@tonic-gate   {                           /* Structure member Description                 */
3960Sstevel@tonic-gate                               /* ---------------- -----------                 */
3970Sstevel@tonic-gate     "Archive Python 4mm Helical Scan",
3980Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
3990Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
4000Sstevel@tonic-gate     "ARCHIVE Python",         /* .vid             Vendor-product ID string    */
4010Sstevel@tonic-gate     ST_TYPE_PYTHON,           /* .type            Numeric type (cf. mtio.h)   */
4020Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
4030Sstevel@tonic-gate                               /* .options         Drive option flags:         */
4040Sstevel@tonic-gate     ST_VARIABLE             | /*    00001           Supports variable length  */
4050Sstevel@tonic-gate     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
4060Sstevel@tonic-gate     ST_BSR                  | /*    00010           Supports SPACE block rev  */
4070Sstevel@tonic-gate     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
4080Sstevel@tonic-gate     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
4090Sstevel@tonic-gate     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
4100Sstevel@tonic-gate     ST_SOFT_ERROR_REPORTING | /*    00800           Error reporting [Note 4]  */
4110Sstevel@tonic-gate     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
4120Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
4130Sstevel@tonic-gate                               /*    -----                                     */
4140Sstevel@tonic-gate                               /*    09E39                                     */
4150Sstevel@tonic-gate     5000,                     /* .max_rretries    [Note 3]                    */
4160Sstevel@tonic-gate     5000,                     /* .max_wretries    [Note 3]                    */
4170Sstevel@tonic-gate     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
4180Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
4190Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
4200Sstevel@tonic-gate   },
4210Sstevel@tonic-gate 
4220Sstevel@tonic-gate   /*
4230Sstevel@tonic-gate    * Benchmark DLT1
4240Sstevel@tonic-gate    *
4250Sstevel@tonic-gate    *     NOTES
4260Sstevel@tonic-gate    *     -----
4270Sstevel@tonic-gate    * [1] The DLT1 reads several tape formats, but the st driver supports
4280Sstevel@tonic-gate    *     only DLT1 native.
4290Sstevel@tonic-gate    * [2] The DLT1 has only one speed (if the driver ever cares).
4300Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
4310Sstevel@tonic-gate    * [4] The DLT1 has Density codes that turn on and off compression however
4320Sstevel@tonic-gate    *     the data compression enable overrides them.
4330Sstevel@tonic-gate    */
4340Sstevel@tonic-gate   {                           /* Structure member Description                 */
4350Sstevel@tonic-gate                               /* ---------------- -----------                 */
4360Sstevel@tonic-gate     "Benchmark DLT1",         /* .name            Display ("pretty") name     */
4370Sstevel@tonic-gate     12,                       /* .length          Length of next item...      */
4380Sstevel@tonic-gate     "BNCHMARKDLT1",           /* .vid             Vendor-product ID string    */
4390Sstevel@tonic-gate     ST_TYPE_BMDLT1,           /* .type            Numeric type (cf. mtio.h)   */
4400Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
4410Sstevel@tonic-gate                               /* .options         Drive option flags:         */
4420Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
4430Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
4440Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
4450Sstevel@tonic-gate     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
4460Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
4470Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
4480Sstevel@tonic-gate     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
4490Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
4500Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           [Note 4]                  */
4510Sstevel@tonic-gate                               /*    -----                                     */
4520Sstevel@tonic-gate                               /*    19639                                     */
4530Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
4540Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
4550Sstevel@tonic-gate     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
4560Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
4570Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
4580Sstevel@tonic-gate   },
4590Sstevel@tonic-gate 
4600Sstevel@tonic-gate 
4610Sstevel@tonic-gate 
4620Sstevel@tonic-gate   /*
4630Sstevel@tonic-gate    * CDC 1/2" cartridge
4640Sstevel@tonic-gate    *
4650Sstevel@tonic-gate    *     NOTES
4660Sstevel@tonic-gate    *     -----
4670Sstevel@tonic-gate    *  o This is an unsupported drive.
4680Sstevel@tonic-gate    *
4690Sstevel@tonic-gate    * [1] The CDC 1/2" cartridge uses 0 or the "default" density code.
4700Sstevel@tonic-gate    * [2] The CDC 1/2" cartridge has only one speed (if the driver ever cares).
4710Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
4720Sstevel@tonic-gate    */
4730Sstevel@tonic-gate   {                           /* Structure member Description                 */
4740Sstevel@tonic-gate                               /* ---------------- -----------                 */
4750Sstevel@tonic-gate     "CDC 1/2\" Cartridge",    /* .name            Display ("pretty") name     */
4760Sstevel@tonic-gate     3,                        /* .length          Length of next item...      */
4770Sstevel@tonic-gate     "LMS",                    /* .vid             Vendor-product ID string    */
4780Sstevel@tonic-gate     ST_TYPE_CDC,              /* .type            Numeric type (cf. mtio.h)   */
4790Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
4800Sstevel@tonic-gate                               /* .options         Drive option flags:         */
4810Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
4820Sstevel@tonic-gate     ST_QIC              |     /*    0x002           QIC tape device           */
4830Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
4840Sstevel@tonic-gate     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
4850Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
4860Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
4870Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
4880Sstevel@tonic-gate                               /*    -----                                     */
4890Sstevel@tonic-gate                               /*    0066B                                     */
4900Sstevel@tonic-gate     300,                      /* .max_rretries    [Note 3]                    */
4910Sstevel@tonic-gate     300,                      /* .max_wretries    [Note 3]                    */
4920Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
4930Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
4940Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
4950Sstevel@tonic-gate   },
4960Sstevel@tonic-gate 
4970Sstevel@tonic-gate    /*
4980Sstevel@tonic-gate    * Emulex MT-02 controller for 1/4" cartridge
4990Sstevel@tonic-gate    *
5000Sstevel@tonic-gate    *     NOTES
5010Sstevel@tonic-gate    *     -----
5020Sstevel@tonic-gate    *  o The EMULEX MT-02 adheres to CCS level 0, and thus
5030Sstevel@tonic-gate    *    returns nothing of interest for the INQUIRY command
5040Sstevel@tonic-gate    *    past the 'response data format' field (which will be
5050Sstevel@tonic-gate    *    zero). The driver will recognize this and assume that
5060Sstevel@tonic-gate    *    a drive that so responds is actually an MT-02 (there
5070Sstevel@tonic-gate    *    is no other way to really do this, awkward as it
5080Sstevel@tonic-gate    *    may seem).
5090Sstevel@tonic-gate    *
5100Sstevel@tonic-gate    *  o This is an unsupported drive.
5110Sstevel@tonic-gate    *
5120Sstevel@tonic-gate    * [1] Low density is a vendor unique density code.
5130Sstevel@tonic-gate    *     This gives us 9 Track QIC-11. Supposedly the MT02 can
5140Sstevel@tonic-gate    *     read 4 Track QIC-11 while in this mode. If that doesn't
5150Sstevel@tonic-gate    *     work, change one of the duplicated QIC-24 fields to 0x4.
5160Sstevel@tonic-gate    * [2] The MT-02 has only one speed (if the driver ever cares).
5170Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
5180Sstevel@tonic-gate    */
5190Sstevel@tonic-gate   {                           /* Structure member Description                 */
5200Sstevel@tonic-gate                               /* ---------------- -----------                 */
5210Sstevel@tonic-gate     "Emulex MT02 QIC-11/QIC-24",
5220Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
5230Sstevel@tonic-gate     12,                       /* .length          Length of next item...      */
5240Sstevel@tonic-gate     "Emulex  MT02",           /* .vid             Vendor-product ID string    */
5250Sstevel@tonic-gate     ST_TYPE_EMULEX,           /* .type            Numeric type (cf. mtio.h)   */
5260Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
5270Sstevel@tonic-gate                               /* .options         Drive option flags:         */
5280Sstevel@tonic-gate     ST_QIC       |            /*    00002           QIC tape device           */
5290Sstevel@tonic-gate     ST_KNOWS_EOD |            /*    00200           Recognizes end-of-data    */
5300Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
5310Sstevel@tonic-gate                               /*    -----                                     */
5320Sstevel@tonic-gate                               /*    00602                                     */
5330Sstevel@tonic-gate     130,                      /* .max_rretries    [Note 3]                    */
5340Sstevel@tonic-gate     130,                      /* .max_wretries    [Note 3]                    */
5350Sstevel@tonic-gate     {0x84, 0x05, 0x05, 0x05}, /* .densities       Density codes [Note 1]      */
5360Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
5370Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
5380Sstevel@tonic-gate   },
5390Sstevel@tonic-gate 
5400Sstevel@tonic-gate   /*
5410Sstevel@tonic-gate    * Exabyte 8900 8mm helical scan drive (also called Mammoth)
5420Sstevel@tonic-gate    *
5430Sstevel@tonic-gate    *     NOTES
5440Sstevel@tonic-gate    *     -----
5450Sstevel@tonic-gate    * [1] Compression on the 8900 is controlled via the Device Configuration mode
5460Sstevel@tonic-gate    *     page or the Data Compression page (either one). Even when enabled, the
5470Sstevel@tonic-gate    *     8900 automatically disables compression on-the-fly if it determines
5480Sstevel@tonic-gate    *     that it cannot achieve a reasonable compression ratio on the data.
5490Sstevel@tonic-gate    * [2] The 8900 can write in only one format, which is selected overtly by
5500Sstevel@tonic-gate    *     setting Density Code in the block descriptor to 27h; in addition to
5510Sstevel@tonic-gate    *     this native format, the 8900 can read tapes written in 8200, 8500 and
5520Sstevel@tonic-gate    *     8500-compressed formats. We set the density to 27h at all times: we
5530Sstevel@tonic-gate    *     _can_ do this because the format is changed automatically to match the
5540Sstevel@tonic-gate    *     data on any previously-written tape; we _must_ do this to ensure that
5550Sstevel@tonic-gate    *     never-before-written 8900 AME tapes are written in "8900 format" (all
5560Sstevel@tonic-gate    *     writes to them in any other format will fail). By establishing
5570Sstevel@tonic-gate    *     MT_DENSITY4 (corresponding to the "c" and "u" minor devices) as the
5580Sstevel@tonic-gate    *     default, applications which open '/dev/rmt/x' write compressed data
5590Sstevel@tonic-gate    *     automatically (but see Note [1]).
5600Sstevel@tonic-gate    * [3] The 8900 has only one speed (if the driver ever cares).
5610Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
5620Sstevel@tonic-gate    */
5630Sstevel@tonic-gate   {                           /* Structure member Description                 */
5640Sstevel@tonic-gate                               /* ---------------- -----------                 */
5650Sstevel@tonic-gate     "Mammoth EXB-8900 8mm Helical Scan",
5660Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
5670Sstevel@tonic-gate     16,                       /* .length          Length of next item...      */
5680Sstevel@tonic-gate     "EXABYTE EXB-8900",       /* .vid             Vendor-product ID string    */
5690Sstevel@tonic-gate     ST_TYPE_EXB8500,          /* .type            Numeric type (cf. mtio.h)   */
5700Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
5710Sstevel@tonic-gate                               /* .options         Drive option flags:         */
5720Sstevel@tonic-gate     ST_VARIABLE             | /*    00001           Supports variable length  */
5730Sstevel@tonic-gate     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
5740Sstevel@tonic-gate     ST_BSR                  | /*    00010           Supports SPACE block rev  */
5750Sstevel@tonic-gate     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
5760Sstevel@tonic-gate     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
5770Sstevel@tonic-gate     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
5780Sstevel@tonic-gate     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
5790Sstevel@tonic-gate     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
5800Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
5810Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
5820Sstevel@tonic-gate                               /*    -----                                     */
5830Sstevel@tonic-gate                               /*    19E39                                     */
5840Sstevel@tonic-gate     5000,                     /* .max_rretries    [Note 4]                    */
5850Sstevel@tonic-gate     5000,                     /* .max_wretries    [Note 4]                    */
5860Sstevel@tonic-gate     {0x27, 0x27, 0x27, 0x27}, /* .densities       Density codes [Note 2]      */
5870Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
5880Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
5890Sstevel@tonic-gate   },
5900Sstevel@tonic-gate 
5910Sstevel@tonic-gate   /*
5920Sstevel@tonic-gate    * Exabyte 8mm 5GB cartridge
5930Sstevel@tonic-gate    *
5940Sstevel@tonic-gate    *     NOTES
5950Sstevel@tonic-gate    *     -----
5960Sstevel@tonic-gate    *  o  ST_KNOWS_EOD here will cause medium error messages
5970Sstevel@tonic-gate    *
5980Sstevel@tonic-gate    *  o  The string length (16) has been reduced to 15 to allow for other
5990Sstevel@tonic-gate    *     compatible models (eg the 8505 half-height)  (BugTraq #1091196)
6000Sstevel@tonic-gate    *
6010Sstevel@tonic-gate    * [1] The density code entry requires four values, even if there are less
6020Sstevel@tonic-gate    *     than four values for the drive.
6030Sstevel@tonic-gate    * [2] The Exabyte EXB-8500 has only one speed (if the driver ever cares).
6040Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
6050Sstevel@tonic-gate    */
6060Sstevel@tonic-gate   {                           /* Structure member Description                 */
6070Sstevel@tonic-gate                               /* ---------------- -----------                 */
6080Sstevel@tonic-gate     "Exabyte EXB-8500 8mm Helical Scan",
6090Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
6100Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
6110Sstevel@tonic-gate     "EXABYTE EXB-850*",       /* .vid             Vendor-product ID string    */
6120Sstevel@tonic-gate     ST_TYPE_EXB8500,          /* .type            Numeric type (cf. mtio.h)   */
6130Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
6140Sstevel@tonic-gate                               /* .options         Drive option flags:         */
6150Sstevel@tonic-gate     ST_VARIABLE             | /*    00001           Supports variable length  */
6160Sstevel@tonic-gate     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
6170Sstevel@tonic-gate     ST_BSR                  | /*    00010           Supports SPACE block rev  */
6180Sstevel@tonic-gate     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
6190Sstevel@tonic-gate     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
6200Sstevel@tonic-gate     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
6210Sstevel@tonic-gate     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
6220Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
6230Sstevel@tonic-gate                               /*    -----                                     */
6240Sstevel@tonic-gate                               /*    08E39                                     */
6250Sstevel@tonic-gate     5000,                     /* .max_rretries    [Note 3]                    */
6260Sstevel@tonic-gate     5000,                     /* .max_wretries    [Note 3]                    */
6270Sstevel@tonic-gate     {0x14, 0x15, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
6280Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
6290Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
6300Sstevel@tonic-gate   },
6310Sstevel@tonic-gate 
6320Sstevel@tonic-gate   /*
6330Sstevel@tonic-gate    * Exabyte 8mm 2GB cartridge
6340Sstevel@tonic-gate    *
6350Sstevel@tonic-gate    *     NOTES
6360Sstevel@tonic-gate    *     -----
6370Sstevel@tonic-gate    * [1] The Exabyte EXB-8200 uses 0 or the "default" density code.
6380Sstevel@tonic-gate    * [2] The Exabyte EXB-8200 has only one speed (if the driver ever cares).
6390Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
6400Sstevel@tonic-gate    * [4] Do a request or log sense on close to report soft errors.
6410Sstevel@tonic-gate    */
6420Sstevel@tonic-gate   {                           /* Structure member Description                 */
6430Sstevel@tonic-gate                               /* ---------------- -----------                 */
6440Sstevel@tonic-gate     "Exabyte EXB-8200 8mm Helical Scan",
6450Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
6460Sstevel@tonic-gate     16,                       /* .length          Length of next item...      */
6470Sstevel@tonic-gate     "EXABYTE EXB-8200",       /* .vid             Vendor-product ID string    */
6480Sstevel@tonic-gate     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
6490Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
6500Sstevel@tonic-gate                               /* .options         Drive option flags:         */
6510Sstevel@tonic-gate     ST_VARIABLE             | /*    00001           Supports variable length  */
6520Sstevel@tonic-gate     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
6530Sstevel@tonic-gate     ST_BSR                  | /*    00010           Supports SPACE block rev  */
6540Sstevel@tonic-gate     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
6550Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE     | /*    00040           Autodensity override flag */
6560Sstevel@tonic-gate     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
6570Sstevel@tonic-gate     ST_SOFT_ERROR_REPORTING | /*    00800           Error reporting [Note 4]  */
6580Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
6590Sstevel@tonic-gate                               /*    -----                                     */
6600Sstevel@tonic-gate                               /*    08C79                                     */
6610Sstevel@tonic-gate     5000,                     /* .max_rretries    [Note 3]                    */
6620Sstevel@tonic-gate     5000,                     /* .max_wretries    [Note 3]                    */
6630Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
6640Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
6650Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
6660Sstevel@tonic-gate   },
6670Sstevel@tonic-gate 
6680Sstevel@tonic-gate   /*
6690Sstevel@tonic-gate    * Exabyte DC-2000 cartridge
6700Sstevel@tonic-gate    *
6710Sstevel@tonic-gate    *     NOTES
6720Sstevel@tonic-gate    *     -----
6730Sstevel@tonic-gate    *  o This is an unsupported drive.
6740Sstevel@tonic-gate    *
6750Sstevel@tonic-gate    *  o This entry uses a shortened Vendor-product ID string for the
6760Sstevel@tonic-gate    *    INQUIRY match.
6770Sstevel@tonic-gate    *
6780Sstevel@tonic-gate    * [1] The Exabyte DC-2000 uses 0 or the "default" density.
6790Sstevel@tonic-gate    * [2] The Exabyte DC-2000 has only one speed (if the driver ever cares).
6800Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
6810Sstevel@tonic-gate    */
6820Sstevel@tonic-gate   {                           /* Structure member Description                 */
6830Sstevel@tonic-gate                               /* ---------------- -----------                 */
6840Sstevel@tonic-gate     "Exabyte EXB-2501 QIC",   /* .name            Display ("pretty") name     */
6850Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
6860Sstevel@tonic-gate     "EXABYTE EXB-25**",       /* .vid             Vendor-product ID string    */
6870Sstevel@tonic-gate     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
6880Sstevel@tonic-gate     1024,                     /* .bsize           Block size (0 = variable)   */
6890Sstevel@tonic-gate                               /* .options         Drive option flags:         */
6900Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
6910Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
6920Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
6930Sstevel@tonic-gate                               /*    -----                                     */
6940Sstevel@tonic-gate                               /*    00442                                     */
6950Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
6960Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
6970Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
6980Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
6990Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
7000Sstevel@tonic-gate   },
7010Sstevel@tonic-gate 
7020Sstevel@tonic-gate   /*
7030Sstevel@tonic-gate    * EXABYTE 4mm Helical Scan
7040Sstevel@tonic-gate    *
7050Sstevel@tonic-gate    *     NOTES
7060Sstevel@tonic-gate    *     -----
7070Sstevel@tonic-gate    *
7080Sstevel@tonic-gate    *  o This entry uses a shortened Vendor-product ID string for the
7090Sstevel@tonic-gate    *    INQUIRY match.
7100Sstevel@tonic-gate    *
7110Sstevel@tonic-gate    * [1] The EXABYTE 4mm uses 0 or the "default" density code.
7120Sstevel@tonic-gate    * [2] The EXABYTE 4mm has only one speed (if the driver ever cares).
7130Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
7140Sstevel@tonic-gate    */
7150Sstevel@tonic-gate   {                           /* Structure member Description                 */
7160Sstevel@tonic-gate                               /* ---------------- -----------                 */
7170Sstevel@tonic-gate     "Exabyte 4mm Helical Scan",
7180Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
7190Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
7200Sstevel@tonic-gate     "EXABYTE EXB-420*",       /* .vid             Vendor-product ID string    */
7210Sstevel@tonic-gate     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
7220Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
7230Sstevel@tonic-gate                               /* .options         Drive option flags:         */
7240Sstevel@tonic-gate     ST_VARIABLE   |           /*    00001           Supports variable length  */
7250Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
7260Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
7270Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
7280Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
7290Sstevel@tonic-gate                               /*    -----                                     */
7300Sstevel@tonic-gate                               /*    00439                                     */
7310Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
7320Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
7330Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
7340Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
7350Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
7360Sstevel@tonic-gate   },
7370Sstevel@tonic-gate 
7380Sstevel@tonic-gate   /*
7390Sstevel@tonic-gate    * Fujitsu 1/2" cartridge
7400Sstevel@tonic-gate    *
7410Sstevel@tonic-gate    *     NOTES
7420Sstevel@tonic-gate    *     -----
7430Sstevel@tonic-gate    *  o This is an unsupported drive.
7440Sstevel@tonic-gate    *
7450Sstevel@tonic-gate    * [1] The Fujitsu 1/2" drive uses 0 or the "default" density code.
7460Sstevel@tonic-gate    * [2] The Fujitsu 1/2" drive has only one speed (if the driver ever cares).
7470Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
7480Sstevel@tonic-gate    */
7490Sstevel@tonic-gate   {                           /* Structure member Description                 */
7500Sstevel@tonic-gate                               /* ---------------- -----------                 */
7510Sstevel@tonic-gate     "Fujitsu 1/2\" Cartridge",/* .name            Display ("pretty") name     */
7520Sstevel@tonic-gate     2,                        /* .length          Length of next item...      */
7530Sstevel@tonic-gate     "\076\000",               /* .vid             Vendor-product ID string    */
7540Sstevel@tonic-gate     ST_TYPE_FUJI,             /* .type            Numeric type (cf. mtio.h)   */
7550Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
7560Sstevel@tonic-gate                               /* .options         Drive option flags:         */
7570Sstevel@tonic-gate     ST_VARIABLE   |           /*    00001           Supports variable length  */
7580Sstevel@tonic-gate     ST_QIC        |           /*    00002           QIC tape device           */
7590Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
7600Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
7610Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
7620Sstevel@tonic-gate     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
7630Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
7640Sstevel@tonic-gate                               /*    -----                                     */
7650Sstevel@tonic-gate                               /*    0063B                                     */
7660Sstevel@tonic-gate     300,                      /* .max_rretries    [Note 3]                    */
7670Sstevel@tonic-gate     300,                      /* .max_wretries    [Note 3]                    */
7680Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
7690Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
7700Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
7710Sstevel@tonic-gate   },
7720Sstevel@tonic-gate 
7730Sstevel@tonic-gate   /*
7740Sstevel@tonic-gate    * HP 1/2" reel
7750Sstevel@tonic-gate    *
7760Sstevel@tonic-gate    *     NOTES
7770Sstevel@tonic-gate    *     -----
7780Sstevel@tonic-gate    * [1] The HP 1/2" reel uses the vendor unique density '0xC3':
7790Sstevel@tonic-gate    *     this is compressed 6250 mode. Beware that using large
7800Sstevel@tonic-gate    *     data sets consisting of repeated data compresses *too*
7810Sstevel@tonic-gate    *     well and one can run into the unix 2 gb file offset limit
7820Sstevel@tonic-gate    *     this way.
7830Sstevel@tonic-gate    * [2] The HP 1/2" reel has only one speed (if the driver ever cares).
7840Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
7850Sstevel@tonic-gate    */
7860Sstevel@tonic-gate   {                           /* Structure member Description                 */
7870Sstevel@tonic-gate                               /* ---------------- -----------                 */
7880Sstevel@tonic-gate     "HP-88780 1/2\" Reel",    /* .name            Display ("pretty") name     */
7890Sstevel@tonic-gate     13,                       /* .length          Length of next item...      */
7900Sstevel@tonic-gate     "HP      88780",          /* .vid             Vendor-product ID string    */
7910Sstevel@tonic-gate     ST_TYPE_HP,               /* .type            Numeric type (cf. mtio.h)   */
7920Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
7930Sstevel@tonic-gate                               /* .options         Drive option flags:         */
7940Sstevel@tonic-gate     ST_VARIABLE  |            /*    00001           Supports variable length  */
7950Sstevel@tonic-gate     ST_REEL      |            /*    00004           1/2-inch reel tape device */
7960Sstevel@tonic-gate     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
7970Sstevel@tonic-gate     ST_BSR       |            /*    00010           Supports SPACE block rev  */
7980Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
7990Sstevel@tonic-gate                               /*    -----                                     */
8000Sstevel@tonic-gate                               /*    0041D                                     */
8010Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
8020Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
8030Sstevel@tonic-gate     {0x01, 0x02, 0x03, 0xC3}, /* .densities       Density codes [Note 1]      */
8040Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
8050Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
8060Sstevel@tonic-gate   },
8070Sstevel@tonic-gate 
8080Sstevel@tonic-gate   /*
8090Sstevel@tonic-gate    * HP 35470A 4mm DAT
8100Sstevel@tonic-gate    *
8110Sstevel@tonic-gate    *     NOTES
8120Sstevel@tonic-gate    *     -----
8130Sstevel@tonic-gate    *  o This is an unsupported drive.
8140Sstevel@tonic-gate    *
8150Sstevel@tonic-gate    * [1] The HP 35470A uses 0 or the "default" density code.
8160Sstevel@tonic-gate    * [2] The HP 35470A has only one speed (if the driver ever cares).
8170Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
8180Sstevel@tonic-gate    */
8190Sstevel@tonic-gate   {                           /* Structure member Description                 */
8200Sstevel@tonic-gate                               /* ---------------- -----------                 */
8210Sstevel@tonic-gate     "HP 35470A 4mm DAT",      /* .name            Display ("pretty") name     */
8220Sstevel@tonic-gate     16,                       /* .length          Length of next item...      */
8230Sstevel@tonic-gate     "HP      HP35470A",       /* .vid             Vendor-product ID string    */
8240Sstevel@tonic-gate     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
8250Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
8260Sstevel@tonic-gate                               /* .options         Drive option flags:         */
8270Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
8280Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
8290Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
8300Sstevel@tonic-gate     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
8310Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
8320Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
8330Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
8340Sstevel@tonic-gate     ST_LONG_TIMEOUTS,         /*    01000           More time for some ops    */
8350Sstevel@tonic-gate                               /*    -----                                     */
8360Sstevel@tonic-gate                               /*    01679                                     */
8370Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
8380Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
8390Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
8400Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
8410Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
8420Sstevel@tonic-gate   },
8430Sstevel@tonic-gate 
8440Sstevel@tonic-gate   /*
8450Sstevel@tonic-gate    * HP 35480A 4mm DAT
8460Sstevel@tonic-gate    *
8470Sstevel@tonic-gate    *     NOTES
8480Sstevel@tonic-gate    *     -----
8490Sstevel@tonic-gate    *  o This is an unsupported drive.
8500Sstevel@tonic-gate    *
8510Sstevel@tonic-gate    * [1] The HP 35480A uses 0 or the "default" density code.
8520Sstevel@tonic-gate    * [2] The HP 35480A has only one speed (if the driver ever cares).
8530Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
8540Sstevel@tonic-gate    */
8550Sstevel@tonic-gate   {                           /* Structure member Description                 */
8560Sstevel@tonic-gate                               /* ---------------- -----------                 */
8570Sstevel@tonic-gate     "HP 35480A 4mm DAT",      /* .name            Display ("pretty") name     */
8580Sstevel@tonic-gate     16,                       /* .length          Length of next item...      */
8590Sstevel@tonic-gate     "HP      HP35480A",       /* .vid             Vendor-product ID string    */
8600Sstevel@tonic-gate     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
8610Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
8620Sstevel@tonic-gate                               /* .options         Drive option flags:         */
8630Sstevel@tonic-gate     ST_VARIABLE   |           /*    00001           Supports variable length  */
8640Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
8650Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
8660Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
8670Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
8680Sstevel@tonic-gate                               /*    -----                                     */
8690Sstevel@tonic-gate                               /*    00439                                     */
8700Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 1]                    */
8710Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 1]                    */
8720Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 2]      */
8730Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
8740Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
8750Sstevel@tonic-gate   },
8760Sstevel@tonic-gate 
8770Sstevel@tonic-gate   /*
8780Sstevel@tonic-gate    * HP JetStore 6000 C1533
8790Sstevel@tonic-gate    *
8800Sstevel@tonic-gate    *     NOTES
8810Sstevel@tonic-gate    *     -----
8820Sstevel@tonic-gate    *  o This is only supported for x86.
8830Sstevel@tonic-gate    *
8840Sstevel@tonic-gate    * [1] The HP JetStore 6000 uses 0 or the "default" density code.
8850Sstevel@tonic-gate    * [2] The HP JetStore 6000 has only one speed (if the driver ever cares).
8860Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
8870Sstevel@tonic-gate    */
8880Sstevel@tonic-gate   {                           /* Structure member Description                 */
8890Sstevel@tonic-gate                               /* ---------------- -----------                 */
8900Sstevel@tonic-gate     "HP JetStore 6000 C1533", /* .name            Display ("pretty") name     */
8910Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
8920Sstevel@tonic-gate     "HP      C1533A",         /* .vid             Vendor-product ID string    */
8930Sstevel@tonic-gate     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
8940Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
8950Sstevel@tonic-gate                               /* .options         Drive option flags:         */
8960Sstevel@tonic-gate     ST_VARIABLE   |           /*    00001           Supports variable length  */
8970Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
8980Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
8990Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
9000Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
9010Sstevel@tonic-gate                               /*    -----                                     */
9020Sstevel@tonic-gate                               /*    00639                                     */
9030Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
9040Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
9050Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
9060Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
9070Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
9080Sstevel@tonic-gate   },
9090Sstevel@tonic-gate 
9100Sstevel@tonic-gate   /*
9110Sstevel@tonic-gate    * HP DDS-3 4mm DAT
9120Sstevel@tonic-gate    *
9130Sstevel@tonic-gate    *     NOTES
9140Sstevel@tonic-gate    *     -----
9150Sstevel@tonic-gate    *  o This is an unsupported drive.
9160Sstevel@tonic-gate    *
9170Sstevel@tonic-gate    * [1] Compression on the HP DDS-3 is controlled
9180Sstevel@tonic-gate    *     via the Device Configuration mode page.
9190Sstevel@tonic-gate    * [2] The HP DDS-3 has only one density, 0x8c (or 0 for "default").
9200Sstevel@tonic-gate    * [3] The HP DDS-3 has only one speed (if the driver ever cares).
9210Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
9220Sstevel@tonic-gate    */
9230Sstevel@tonic-gate   {                           /* Structure member Description                 */
9240Sstevel@tonic-gate                               /* ---------------- -----------                 */
9250Sstevel@tonic-gate     "HP DDS-3 4MM DAT",       /* .name            Display ("pretty") name     */
9260Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
9270Sstevel@tonic-gate     "HP      C1537A",         /* .vid             Vendor-product ID string    */
9280Sstevel@tonic-gate     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
9290Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
9300Sstevel@tonic-gate                               /* .options         Drive option flags:         */
9310Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
9320Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
9330Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
9340Sstevel@tonic-gate     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
9350Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
9360Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
9370Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
9380Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
9390Sstevel@tonic-gate                               /*    -----                                     */
9400Sstevel@tonic-gate                               /*    09639                                     */
9410Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 4]                    */
9420Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 4]                    */
9430Sstevel@tonic-gate     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 2]      */
9440Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
9450Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
9460Sstevel@tonic-gate   },
9470Sstevel@tonic-gate 
9480Sstevel@tonic-gate   /*
9490Sstevel@tonic-gate    * HP DDS-3 4mm DAT loader
9500Sstevel@tonic-gate    *
9510Sstevel@tonic-gate    *     NOTES
9520Sstevel@tonic-gate    *     -----
9530Sstevel@tonic-gate    *  o This is an unsupported drive.
9540Sstevel@tonic-gate    *
9550Sstevel@tonic-gate    * [1] Compression on the DDS-3 Loader is controlled
9560Sstevel@tonic-gate    *     via the Device Configuration mode page.
9570Sstevel@tonic-gate    * [2] The DDS-3 Loader has only one density, 0x8c (or 0 for "default").
9580Sstevel@tonic-gate    * [3] The DDS-3 Loader has only one speed (if the driver ever cares).
9590Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
9600Sstevel@tonic-gate    */
9610Sstevel@tonic-gate   {                           /* Structure member Description                 */
9620Sstevel@tonic-gate                               /* ---------------- -----------                 */
9630Sstevel@tonic-gate     "HP DDS-3 4MM DAT loader",/* .name            Display ("pretty") name     */
9640Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
9650Sstevel@tonic-gate     "HP      C1557A",         /* .vid             Vendor-product ID string    */
9660Sstevel@tonic-gate     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
9670Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
9680Sstevel@tonic-gate                               /* .options         Drive option flags:         */
9690Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
9700Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
9710Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
9720Sstevel@tonic-gate     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
9730Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
9740Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
9750Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
9760Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
9770Sstevel@tonic-gate                               /*    -----                                     */
9780Sstevel@tonic-gate                               /*    09639                                     */
9790Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 4]                    */
9800Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 4]                    */
9810Sstevel@tonic-gate     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 2]      */
9820Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
9830Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
9840Sstevel@tonic-gate   },
9850Sstevel@tonic-gate 
9860Sstevel@tonic-gate   /*
9870Sstevel@tonic-gate    * HP C5683A DDS-4 DAT drives with Sun-specific behavior
9880Sstevel@tonic-gate    *
9890Sstevel@tonic-gate    * When the configuration switches on the drive are set appropriately, the
9900Sstevel@tonic-gate    * HP C5683A: interprets a density code of 8Ch to mean "enable compression",
9910Sstevel@tonic-gate    * 00h to mean "disable compression"; senses the tape type automatically;
9920Sstevel@tonic-gate    * adjusts to match the tape type. (That is, compression is controlled via
9930Sstevel@tonic-gate    * the Sun-unique 8Ch density code, rather than using the Data Compression
9940Sstevel@tonic-gate    * mode page).
9950Sstevel@tonic-gate    *
9960Sstevel@tonic-gate    *     NOTES
9970Sstevel@tonic-gate    *     -----
9980Sstevel@tonic-gate    * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x
9990Sstevel@tonic-gate    *     format-related adjustments are performed automatically by the drive.
10000Sstevel@tonic-gate    * [2] The 5683 has only one speed (if the driver ever cares).
10010Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
10020Sstevel@tonic-gate    */
10030Sstevel@tonic-gate   {                           /* Structure member Description                 */
10040Sstevel@tonic-gate                               /* ---------------- -----------                 */
10050Sstevel@tonic-gate     "HP DDS-4 DAT (Sun)",     /* .name            Display ("pretty") name     */
10060Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
10070Sstevel@tonic-gate     "HP      C5683A",         /* .vid             Vendor-product ID string    */
10080Sstevel@tonic-gate     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
10090Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
10100Sstevel@tonic-gate                               /* .options         Drive option flags:         */
10110Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
10120Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
10130Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
10140Sstevel@tonic-gate     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
10150Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
10160Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
10170Sstevel@tonic-gate     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
10180Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
10190Sstevel@tonic-gate                               /*    -----                                     */
10200Sstevel@tonic-gate                               /*    09639                                     */
10210Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
10220Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
10230Sstevel@tonic-gate     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
10240Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
10250Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
10260Sstevel@tonic-gate   },
10270Sstevel@tonic-gate 
10280Sstevel@tonic-gate   /*
10290Sstevel@tonic-gate    * HP C5713A DDS-4 DAT autochangers with Sun-specific behavior
10300Sstevel@tonic-gate    *
10310Sstevel@tonic-gate    * When the configuration switches on the drive are set appropriately, the
10320Sstevel@tonic-gate    * HP C5713A: interprets a density code of 8Ch to mean "enable compression",
10330Sstevel@tonic-gate    * 00h to mean "disable compression"; senses the tape type automatically;
10340Sstevel@tonic-gate    * adjusts to match the tape type. (That is, compression is controlled via
10350Sstevel@tonic-gate    * the Sun-unique 8Ch density code, rather than using the Data Compression
10360Sstevel@tonic-gate    * mode page).
10370Sstevel@tonic-gate    *
10380Sstevel@tonic-gate    *     NOTES
10390Sstevel@tonic-gate    *     -----
10400Sstevel@tonic-gate    * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x
10410Sstevel@tonic-gate    *     format-related adjustments are performed automatically by the drive.
10420Sstevel@tonic-gate    * [2] The 5713 has only one speed (if the driver ever cares).
10430Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
10440Sstevel@tonic-gate    */
10450Sstevel@tonic-gate   {                           /* Structure member Description                 */
10460Sstevel@tonic-gate                               /* ---------------- -----------                 */
10470Sstevel@tonic-gate     "HP DDS-4 DAT (Sun)",     /* .name            Display ("pretty") name     */
10480Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
10490Sstevel@tonic-gate     "HP      C5713A",         /* .vid             Vendor-product ID string    */
10500Sstevel@tonic-gate     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
10510Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
10520Sstevel@tonic-gate                               /* .options         Drive option flags:         */
10530Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
10540Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
10550Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
10560Sstevel@tonic-gate     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
10570Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
10580Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
10590Sstevel@tonic-gate     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
10600Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
10610Sstevel@tonic-gate                               /*    -----                                     */
10620Sstevel@tonic-gate                               /*    09639                                     */
10630Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
10640Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
10650Sstevel@tonic-gate     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
10660Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
10670Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
10680Sstevel@tonic-gate   },
10690Sstevel@tonic-gate 
10700Sstevel@tonic-gate    /*
10710Sstevel@tonic-gate     * HP C7438A
10720Sstevel@tonic-gate     */
10730Sstevel@tonic-gate   {                           /* Structure member Description                 */
10740Sstevel@tonic-gate                               /* ---------------- -----------                 */
10750Sstevel@tonic-gate     "HP DAT-72",              /* .name            Display ("pretty") name     */
10760Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
10770Sstevel@tonic-gate     "HP      C7438A",         /* .vid             Vendor-product ID string    */
10780Sstevel@tonic-gate     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
10790Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
10800Sstevel@tonic-gate                               /* .options         Drive option flags:         */
10810Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
10820Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
10830Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
10840Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
10850Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
10860Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
10870Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
10880Sstevel@tonic-gate                               /*    -----                                     */
10890Sstevel@tonic-gate                               /*    18619                                     */
10900Sstevel@tonic-gate     -1,                       /* .max_rretries      Not Used                  */
10910Sstevel@tonic-gate     -1,                       /* .max_wretries      Not Used                  */
10920Sstevel@tonic-gate     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes               */
10930Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
10940Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
10950Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing Special          */
10960Sstevel@tonic-gate     MINUTES(7),               /* .io_timeout         7 minutes (recover read) */
10970Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
10980Sstevel@tonic-gate     MINUTES(600),             /* .space_timeout      10 Hours (space seq file)*/
10990Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
11000Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
11010Sstevel@tonic-gate     MINUTES(290)              /* .erase_timeout      4 hours 50 minutes       */
11020Sstevel@tonic-gate   },
11030Sstevel@tonic-gate 
11040Sstevel@tonic-gate   /*
11054771Slh195018    * HP DAT-160
11064771Slh195018    */
11074771Slh195018   {                           /* Structure member Description                 */
11084771Slh195018                               /* ---------------- -----------                 */
11094771Slh195018     "HP DDS-6 DAT",           /* .name            Display ("pretty") name     */
11104771Slh195018     14,                       /* .length          Length of next item...      */
11114771Slh195018     "HP      DAT160",         /* .vid             Vendor-product ID string    */
11124771Slh195018     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
11134771Slh195018     0,                        /* .bsize           Block size (0 = variable)   */
11144771Slh195018                               /* .options         Drive option flags:         */
11154771Slh195018     ST_VARIABLE         |     /*    00001           Supports variable length  */
11164771Slh195018     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
11174771Slh195018     ST_BSR              |     /*    00010           Supports SPACE block rev  */
11184771Slh195018     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
11194771Slh195018     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
11204771Slh195018     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
11214771Slh195018     ST_MODE_SEL_COMP    |     /*    10000           Mode select compression   */
11224771Slh195018     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
11234771Slh195018                               /*  -------                                     */
11244771Slh195018                               /*  1018619                                     */
11254771Slh195018     -1,                       /* .max_rretries      Not Used                  */
11264771Slh195018     -1,                       /* .max_wretries      Not Used                  */
11274771Slh195018     {0x48, 0x48, 0x48, 0x48}, /* .densities       Density codes               */
11284771Slh195018     MT_DENSITY4,              /* .default_density (.densities[x])             */
11294771Slh195018     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
11304771Slh195018     0,                        /* .non_motion_timeout Nothing Special          */
11314771Slh195018     MINUTES(5),               /* .io_timeout                                  */
11324771Slh195018     MINUTES(10),              /* .rewind_timeout                              */
11334771Slh195018     MINUTES(20),              /* .space_timeout                               */
11344771Slh195018     MINUTES(10),              /* .load_timeout                                */
11354771Slh195018     MINUTES(10),              /* .unload_timeout                              */
11364771Slh195018     MINUTES(300)              /* .erase_timeout      5 hours                  */
11374771Slh195018   },
11384771Slh195018 
11394771Slh195018   /*
11404037Syl194034    * HP Ultrium LTO Gen 4
11414037Syl194034    * [1] This drive supports two densites at this time.
11424037Syl194034    *     In reality the type of media GEN 3 or GEN 4 selects the density.
11434037Syl194034    *     ST_MODE_SEL_COMP controls compression.
11444037Syl194034    * [2] The Ultrium LTO has one speed.
11454037Syl194034    * [3] max_rretries and max_wretries are not used but kept for
11464037Syl194034    *     backward compatibility.
11474037Syl194034    */
11484037Syl194034   {                           /* Structure member Description                 */
11494037Syl194034                               /* ---------------- -----------                 */
11504037Syl194034     "HP Ultrium LTO 4",       /* .name            Display ("pretty") name     */
11514037Syl194034     17,                       /* .length          Length of next item...      */
11524037Syl194034     "HP      Ultrium 4*",     /* .vid             handles SCSI or FC          */
11534037Syl194034     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
11544037Syl194034     0,                        /* .bsize           Block size (0 = variable)   */
11554037Syl194034                               /* .options         Drive option flags:         */
11564037Syl194034     ST_VARIABLE         |     /*  0000001           Supports variable length  */
11574037Syl194034     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
11584037Syl194034     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
11594037Syl194034     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
11604037Syl194034     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
11614037Syl194034     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
11624037Syl194034     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
11634037Syl194034     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
11644037Syl194034                               /*  -------                                     */
11654037Syl194034                               /*  1018619                                     */
11664037Syl194034     -1,                       /* .max_rretries    [Note 3]                    */
11674037Syl194034     -1,                       /* .max_wretries    [Note 3]                    */
11684037Syl194034     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
11694037Syl194034     MT_DENSITY4,              /* .default_density (.densities[x])             */
11704037Syl194034     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
11714037Syl194034     MINUTES(1),               /* .non_motion_timeout                          */
11724037Syl194034     MINUTES(20),              /* .io_timeout                                  */
11734037Syl194034     MINUTES(10),              /* .rewind_timeout                              */
11744037Syl194034     MINUTES(20),              /* .space_timeout                               */
11754037Syl194034     MINUTES(10),              /* .load_timeout                                */
11764037Syl194034     MINUTES(10),              /* .unload_timeout                              */
11774037Syl194034     MINUTES(300)              /* .erase_timeout      Five Hours               */
11784037Syl194034   },
11794037Syl194034 
11804037Syl194034   /*
11810Sstevel@tonic-gate    * HP Ultrium LTO Gen 3
11820Sstevel@tonic-gate    * [1] This drive supports two densites at this time.
11830Sstevel@tonic-gate    *     In reality the type of media GEN 2 or GEN 3 selects the density.
11840Sstevel@tonic-gate    *     ST_MODE_SEL_COMP controls compression.
11850Sstevel@tonic-gate    * [2] The Ultrium LTO has one speed.
11860Sstevel@tonic-gate    * [3] max_rretries and max_wretries are not used but kept for
11870Sstevel@tonic-gate    *     backward compatibility.
11880Sstevel@tonic-gate    */
11890Sstevel@tonic-gate   {                           /* Structure member Description                 */
11900Sstevel@tonic-gate                               /* ---------------- -----------                 */
11910Sstevel@tonic-gate     "HP Ultrium LTO 3",       /* .name            Display ("pretty") name     */
11920Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
11930Sstevel@tonic-gate     "HP      Ultrium 3*",     /* .vid             handles SCSI or FC          */
11940Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
11950Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
11960Sstevel@tonic-gate                               /* .options         Drive option flags:         */
11972537Srralphs     ST_VARIABLE         |     /*  0000001           Supports variable length  */
11982537Srralphs     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
11992537Srralphs     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
12002537Srralphs     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
12012537Srralphs     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
12022537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
12032537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
12042537Srralphs     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
12052537Srralphs                               /*  -------                                     */
12062537Srralphs                               /*  1018619                                     */
12070Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
12080Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
12090Sstevel@tonic-gate     {0x42, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
12100Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
12110Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
12120Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_timeout                          */
12130Sstevel@tonic-gate     MINUTES(20),              /* .io_timeout                                  */
12140Sstevel@tonic-gate     MINUTES(10),              /* .rewind_timeout                              */
12150Sstevel@tonic-gate     MINUTES(20),              /* .space_timeout                               */
12160Sstevel@tonic-gate     MINUTES(10),              /* .load_timeout                                */
12170Sstevel@tonic-gate     MINUTES(10),              /* .unload_timeout                              */
12180Sstevel@tonic-gate     MINUTES(300)              /* .erase_timeout      Five Hours               */
12190Sstevel@tonic-gate   },
12200Sstevel@tonic-gate 
12210Sstevel@tonic-gate   /*
12220Sstevel@tonic-gate    * HP Ultrium LTO Gen 2
12230Sstevel@tonic-gate    * [1] This drive supports two densites at this time.
12240Sstevel@tonic-gate    *     In reality the type of media GEN 1 or GEN 2 selects the density.
12250Sstevel@tonic-gate    *     ST_MODE_SEL_COMP controls compression.
12260Sstevel@tonic-gate    * [2] The Ultrium LTO has one speed.
12270Sstevel@tonic-gate    * [3] max_rretries and max_wretries are not used but kept for
12280Sstevel@tonic-gate    *     backward compatibility.
12290Sstevel@tonic-gate    */
12300Sstevel@tonic-gate   {                           /* Structure member Description                 */
12310Sstevel@tonic-gate                               /* ---------------- -----------                 */
12320Sstevel@tonic-gate     "HP Ultrium LTO 2",       /* .name            Display ("pretty") name     */
12330Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
12340Sstevel@tonic-gate     "HP      Ultrium 2*",     /* .vid             handles SCSI or FC          */
12350Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
12360Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
12370Sstevel@tonic-gate                               /* .options         Drive option flags:         */
12380Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
12390Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
12400Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
12410Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
12420Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
12430Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
12440Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
12450Sstevel@tonic-gate                               /*    -----                                     */
12460Sstevel@tonic-gate                               /*    18619                                     */
12470Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
12480Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
12490Sstevel@tonic-gate     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
12500Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
12510Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1252*8217SBo.Zhou@Sun.COM     MINUTES(10),              /* .non_motion_timeout                          */
12530Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout Four                             */
12540Sstevel@tonic-gate     MINUTES(10),              /* .rewind_timeout                              */
12550Sstevel@tonic-gate     MINUTES(20),              /* .space_timeout                               */
12560Sstevel@tonic-gate     MINUTES(10),              /* .load_timeout                                */
12570Sstevel@tonic-gate     MINUTES(10),              /* .unload_timeout                              */
12580Sstevel@tonic-gate     MINUTES(300)              /* .erase_timeout      Five Hours               */
12590Sstevel@tonic-gate   },
12600Sstevel@tonic-gate 
12610Sstevel@tonic-gate   /*
12620Sstevel@tonic-gate    * HP Ultrium LTO
12630Sstevel@tonic-gate    * [1] This drive supports only one density at this time.
12640Sstevel@tonic-gate          ST_MODE_SEL_COMP controls compression.
12650Sstevel@tonic-gate    * [2] The Ultrium LTO has one speed.
12660Sstevel@tonic-gate    * [3] max_rretries and max_wretries are not used but kept for
12670Sstevel@tonic-gate    *     backward compatibility.
12680Sstevel@tonic-gate    */
12690Sstevel@tonic-gate   {                           /* Structure member Description                 */
12700Sstevel@tonic-gate                               /* ---------------- -----------                 */
12710Sstevel@tonic-gate     "HP Ultrium LTO",         /* .name            Display ("pretty") name     */
12720Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
12730Sstevel@tonic-gate     "HP      Ultrium 1*",     /* .vid             handles SCSI and FC         */
12740Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
12750Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
12760Sstevel@tonic-gate                               /* .options         Drive option flags:         */
12770Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
12780Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
12790Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
12800Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
12810Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
12820Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
12830Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
12840Sstevel@tonic-gate                               /*    -----                                     */
12850Sstevel@tonic-gate                               /*    18619                                     */
12860Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
12870Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
12880Sstevel@tonic-gate     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
12890Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
12900Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
12910Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_timeout                          */
12920Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout Four                             */
12930Sstevel@tonic-gate     MINUTES(10),              /* .rewind_timeout                              */
12940Sstevel@tonic-gate     MINUTES(20),              /* .space_timeout                               */
12950Sstevel@tonic-gate     MINUTES(10),              /* .load_timeout                                */
12960Sstevel@tonic-gate     MINUTES(10),              /* .unload_timeout                              */
12970Sstevel@tonic-gate     MINUTES(300)              /* .erase_timeout      Five Hours               */
12980Sstevel@tonic-gate   },
12990Sstevel@tonic-gate 
13000Sstevel@tonic-gate   /*
13010Sstevel@tonic-gate    * Kennedy 1/2" reel
13020Sstevel@tonic-gate    *
13030Sstevel@tonic-gate    *     NOTES
13040Sstevel@tonic-gate    *     -----
13050Sstevel@tonic-gate    *  o This is an unsupported drive.
13060Sstevel@tonic-gate    *
13070Sstevel@tonic-gate    *  o This entry uses a shortened Vendor-product ID string for the
13080Sstevel@tonic-gate    *    INQUIRY match.
13090Sstevel@tonic-gate    *
13100Sstevel@tonic-gate    * [1] The density code entry requires four values, even if there are less
13110Sstevel@tonic-gate    *     than four values for the drive.
13120Sstevel@tonic-gate    * [2] The Kennedy 1/2" reel has only one speed (if the driver ever cares).
13130Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
13140Sstevel@tonic-gate    */
13150Sstevel@tonic-gate   {                           /* Structure member Description                 */
13160Sstevel@tonic-gate                               /* ---------------- -----------                 */
13170Sstevel@tonic-gate     "Kennedy 1/2\" Reel",     /* .name            Display ("pretty") name     */
13180Sstevel@tonic-gate     4,                        /* .length          Length of next item...      */
13190Sstevel@tonic-gate     "KENN***",                /* .vid             Vendor-product ID string    */
13200Sstevel@tonic-gate     ST_TYPE_KENNEDY,          /* .type            Numeric type (cf. mtio.h)   */
13210Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
13220Sstevel@tonic-gate                               /* .options         Drive option flags:         */
13230Sstevel@tonic-gate     ST_VARIABLE |             /*    00001           Supports variable length  */
13240Sstevel@tonic-gate     ST_REEL     |             /*    00004           1/2-inch reel tape device */
13250Sstevel@tonic-gate     ST_BSF      |             /*    00008           Supports SPACE block fwd  */
13260Sstevel@tonic-gate     ST_BSR      |             /*    00010           Supports SPACE block rev  */
13270Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
13280Sstevel@tonic-gate                               /*    -----                                     */
13290Sstevel@tonic-gate                               /*    0041D                                     */
13300Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
13310Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
13320Sstevel@tonic-gate     {0x01, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
13330Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
13340Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
13350Sstevel@tonic-gate   },
13360Sstevel@tonic-gate 
13370Sstevel@tonic-gate   /*
13380Sstevel@tonic-gate    * M4 Data Systems 9303 transport with 9700 512k i/f
13390Sstevel@tonic-gate    *
13400Sstevel@tonic-gate    *     NOTES
13410Sstevel@tonic-gate    *     -----
13420Sstevel@tonic-gate    *  o  The M4 Data 9303 is in non-buffered mode because it doesn't
13430Sstevel@tonic-gate    *     flush the buffer at end of tape writes. If you don't care
13440Sstevel@tonic-gate    *     about end of tape conditions (e.g., you use dump(8) which
13450Sstevel@tonic-gate    *     cannot handle end-of-tape anyhow), take out the ST_NOBUF.
13460Sstevel@tonic-gate    *
13470Sstevel@tonic-gate    *  o This is an unsupported drive.
13480Sstevel@tonic-gate    *
13490Sstevel@tonic-gate    * [1] The density code entry requires four values, even if there are less
13500Sstevel@tonic-gate    *     than four values for the drive.
13510Sstevel@tonic-gate    * [2] The M4 Data has only one speed (if the driver ever cares).
13520Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
13530Sstevel@tonic-gate    */
13540Sstevel@tonic-gate   {                           /* Structure member Description                 */
13550Sstevel@tonic-gate                               /* ---------------- -----------                 */
13560Sstevel@tonic-gate     "M4-Data 1/2\" Reel",     /* .name            Display ("pretty") name     */
13570Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
13580Sstevel@tonic-gate     "M4 DATA 123107 SCSI",    /* .vid             Vendor-product ID string    */
13590Sstevel@tonic-gate     ST_TYPE_REEL,             /* .type            Numeric type (cf. mtio.h)   */
13600Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
13610Sstevel@tonic-gate                               /* .options         Drive option flags:         */
13620Sstevel@tonic-gate     ST_VARIABLE  |            /*    00001           Supports variable length  */
13630Sstevel@tonic-gate     ST_REEL      |            /*    00004           1/2-inch reel tape device */
13640Sstevel@tonic-gate     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
13650Sstevel@tonic-gate     ST_BSR       |            /*    00010           Supports SPACE block rev  */
13660Sstevel@tonic-gate     ST_NOBUF     |            /*    00080           Don't use buffered mode.  */
13670Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
13680Sstevel@tonic-gate                               /*    -----                                     */
13690Sstevel@tonic-gate                               /*    0049D                                     */
13700Sstevel@tonic-gate     500,                      /* .max_rretries    [Note 3]                    */
13710Sstevel@tonic-gate     500,                      /* .max_wretries    [Note 3]                    */
13720Sstevel@tonic-gate     {0x01, 0x02, 0x06, 0x06}, /* .densities       Density codes [Note 1]      */
13730Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
13740Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
13750Sstevel@tonic-gate   },
13760Sstevel@tonic-gate 
13770Sstevel@tonic-gate   /*
13780Sstevel@tonic-gate    * Quantum VS 160
13790Sstevel@tonic-gate    *
13800Sstevel@tonic-gate    * Notes
13810Sstevel@tonic-gate    * [1] The VS160 reads several formats which the drive autodetects.
13820Sstevel@tonic-gate    *     It can write only in VS160 format so all densities set ro 0x50.
13830Sstevel@tonic-gate    * [2] The speed field is not used and the VS160's speed is not setable.
13840Sstevel@tonic-gate    * [3] Retry counts are not used any more and set to -1.
13850Sstevel@tonic-gate    */
13860Sstevel@tonic-gate   {                           /* Structure member Description                 */
13870Sstevel@tonic-gate                               /* ---------------- -----------                 */
13880Sstevel@tonic-gate     "Quantum VS160",          /* .name            Display ("pretty") name     */
13890Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
13900Sstevel@tonic-gate     "QUANTUM DLT VS160",      /* .vid             Vendor-product ID string    */
13910Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
13920Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
13930Sstevel@tonic-gate                               /* .options         Drive option flags:         */
13940Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001         Supports variable length    */
13950Sstevel@tonic-gate     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
13960Sstevel@tonic-gate     ST_BSR              |     /*    00010         Supports SPACE block rev    */
13970Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040         Has only one density        */
13980Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
13990Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
14000Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000         Supports blocks > 64KB      */
14010Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000         Uses Mode select Compress   */
14020Sstevel@tonic-gate                               /* --------                                     */
14030Sstevel@tonic-gate                               /* 00018659                                     */
14040Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
14050Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
14060Sstevel@tonic-gate     {0x50, 0x50, 0x50, 0x50}, /* .densities       [Note 1]                    */
14070Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
14080Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
14090Sstevel@tonic-gate     MINUTES(2),               /* .non_motion_timeout Nothing special          */
14100Sstevel@tonic-gate     MINUTES(15),              /* .io_timeout         First write to new tape  */
14110Sstevel@tonic-gate     MINUTES(15),              /* .rewind_timeout     15 minutes               */
14120Sstevel@tonic-gate     MINUTES(15),              /* .space_timeout      15 minutes               */
14130Sstevel@tonic-gate     MINUTES(15),              /* .load_timeout       read catalog             */
14140Sstevel@tonic-gate     MINUTES(15),              /* .unload_timeout     write catalog + unthread */
14150Sstevel@tonic-gate     MINUTES(180)              /* .erase_timeout      3 hours                  */
14160Sstevel@tonic-gate   },
14170Sstevel@tonic-gate   /*
14180Sstevel@tonic-gate    * Quantum Super DLT600
14190Sstevel@tonic-gate    *
14200Sstevel@tonic-gate    *    NOTES
14210Sstevel@tonic-gate    *    -----
14220Sstevel@tonic-gate    *
14230Sstevel@tonic-gate    * [1] The Super DLT 600 supports many tape formats, Most are media selected.
14240Sstevel@tonic-gate    *     Previous DLT drives had density codes for compress and non-compress,
14250Sstevel@tonic-gate          This drive uses mode select to control compression.
14260Sstevel@tonic-gate    * [2] The Super DLT has only one speed (if the driver ever cares).
14270Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
14280Sstevel@tonic-gate    */
14290Sstevel@tonic-gate   {                           /* Structure member Description                 */
14300Sstevel@tonic-gate                               /* ---------------- -----------                 */
14310Sstevel@tonic-gate     "Quantum Super DLT 600",  /* .name            Display ("pretty") name     */
14320Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
14330Sstevel@tonic-gate     "QUANTUM SDLT600",        /* .vid             Vendor-product ID string    */
14340Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
14350Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
14360Sstevel@tonic-gate                               /* .options         Drive option flags:         */
14372537Srralphs     ST_VARIABLE         |     /*  0000001         Supports variable length    */
14382537Srralphs     ST_BSF              |     /*  0000008         Supports SPACE block fwd    */
14392537Srralphs     ST_BSR              |     /*  0000010         Supports SPACE block rev    */
14402537Srralphs     ST_KNOWS_EOD        |     /*  0000200         Recognizes end-of-data      */
14412537Srralphs     ST_UNLOADABLE       |     /*  0000400         Driver can be unloaded      */
14422537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000         Supports blocks > 64KB      */
14432537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000         Uses Mode select Compress   */
14442537Srralphs     ST_WORMABLE,              /*  1000000         Is capable of WORM          */
14452537Srralphs                               /*  -------                                     */
14462537Srralphs                               /*  1018619                                     */
14470Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
14480Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
14490Sstevel@tonic-gate     {0x4a, 0x4a, 0x4a, 0x4a}, /* .densities       [Note 1]                    */
14500Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
14510Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
14520Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
14530Sstevel@tonic-gate     MINUTES(60),              /* .io_timeout Four    One Hour                 */
14540Sstevel@tonic-gate     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
14550Sstevel@tonic-gate     MINUTES(360),             /* .space_timeout      6 Hour if Directory bad  */
14560Sstevel@tonic-gate     MINUTES(16),              /* .load_timeout       Nothing Special          */
14570Sstevel@tonic-gate     MINUTES(16),              /* .unload_timeout     Nothing Special          */
14580Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
14590Sstevel@tonic-gate   },
14600Sstevel@tonic-gate 
14610Sstevel@tonic-gate  /*
14620Sstevel@tonic-gate    * Quantum Super DLT320
14630Sstevel@tonic-gate    *
14640Sstevel@tonic-gate    *    NOTES
14650Sstevel@tonic-gate    *    -----
14660Sstevel@tonic-gate    *  o  There is not going to be a SUN version of this drive. It will
14670Sstevel@tonic-gate    *     be released as QUANTUM only.
14680Sstevel@tonic-gate    *
14690Sstevel@tonic-gate    * [1] The Super DLT implements many tape formats, but the st driver supports
14700Sstevel@tonic-gate    *     only the four highest densities.
14710Sstevel@tonic-gate    * [2] The Super DLT has only one speed (if the driver ever cares).
14720Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
14730Sstevel@tonic-gate    */
14740Sstevel@tonic-gate   {                           /* Structure member Description                 */
14750Sstevel@tonic-gate                               /* ---------------- -----------                 */
14760Sstevel@tonic-gate     "Quantum Super DLT 320",  /* .name            Display ("pretty") name     */
14770Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
14780Sstevel@tonic-gate     "QUANTUM SDLT320",        /* .vid             Vendor-product ID string    */
14790Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
14800Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
14810Sstevel@tonic-gate                               /* .options         Drive option flags:         */
14820Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001         Supports variable length    */
14830Sstevel@tonic-gate     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
14840Sstevel@tonic-gate     ST_BSR              |     /*    00010         Supports SPACE block rev    */
14850Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
14860Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
14870Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
14880Sstevel@tonic-gate                               /* --------                                     */
14890Sstevel@tonic-gate                               /* 00008619                                     */
14900Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
14910Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
14920Sstevel@tonic-gate     {0x90, 0x91, 0x92, 0x93}, /* .densities       [Note 1]                    */
14930Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
14940Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
14950Sstevel@tonic-gate     0,                        /* .non_motion_timeout Default 2 minutes        */
14960Sstevel@tonic-gate     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
14970Sstevel@tonic-gate     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
14980Sstevel@tonic-gate     MINUTES(360),             /* .space_timeout      Six Hours                */
14990Sstevel@tonic-gate     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
15000Sstevel@tonic-gate     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
15010Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
15020Sstevel@tonic-gate   },
15030Sstevel@tonic-gate 
15040Sstevel@tonic-gate   /*
15050Sstevel@tonic-gate    * Quantum Super DLT
15060Sstevel@tonic-gate    *
15070Sstevel@tonic-gate    *    NOTES
15080Sstevel@tonic-gate    *    -----
15090Sstevel@tonic-gate    *  o  There is not going to be a SUN version of this drive. It will
15100Sstevel@tonic-gate    *     be released as QUANTUM only.
15110Sstevel@tonic-gate    *
15120Sstevel@tonic-gate    * [1] The Super DLT implements many tape formats, but the st driver supports
15130Sstevel@tonic-gate    *     only the four highest densities.
15140Sstevel@tonic-gate    * [2] The Super DLT has only one speed (if the driver ever cares).
15150Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
15160Sstevel@tonic-gate    */
15170Sstevel@tonic-gate   {                           /* Structure member Description                 */
15180Sstevel@tonic-gate                               /* ---------------- -----------                 */
15190Sstevel@tonic-gate     "Quantum Super DLT 220",  /* .name            Display ("pretty") name     */
15200Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
15210Sstevel@tonic-gate     "QUANTUM SuperDLT1",      /* .vid             Vendor-product ID string    */
15220Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
15230Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
15240Sstevel@tonic-gate                               /* .options         Drive option flags:         */
15250Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001         Supports variable length    */
15260Sstevel@tonic-gate     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
15270Sstevel@tonic-gate     ST_BSR              |     /*    00010         Supports SPACE block rev    */
15280Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
15290Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
15300Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
15310Sstevel@tonic-gate                               /* --------                                     */
15320Sstevel@tonic-gate                               /* 00008619                                     */
15330Sstevel@tonic-gate     -1,                       /* .max_rretries    [Note 3]                    */
15340Sstevel@tonic-gate     -1,                       /* .max_wretries    [Note 3]                    */
15350Sstevel@tonic-gate     {0x88, 0x89, 0x90, 0x91}, /* .densities       [Note 1]                    */
15360Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
15370Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
15380Sstevel@tonic-gate     0,                        /* .non_motion_timeout Default 2 minutes        */
15390Sstevel@tonic-gate     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
15400Sstevel@tonic-gate     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
15410Sstevel@tonic-gate     MINUTES(360),             /* .space_timeout      Six Hours                */
15420Sstevel@tonic-gate     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
15430Sstevel@tonic-gate     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
15440Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
15450Sstevel@tonic-gate   },
15460Sstevel@tonic-gate 
15470Sstevel@tonic-gate   /*
15480Sstevel@tonic-gate    * Quantum DLT8000
15490Sstevel@tonic-gate    *
15500Sstevel@tonic-gate    *    NOTES
15510Sstevel@tonic-gate    *    -----
15520Sstevel@tonic-gate    *  o  There is not going to be a SUN version of this drive. It will
15530Sstevel@tonic-gate    *     be released as QUANTUM only.
15540Sstevel@tonic-gate    *
15550Sstevel@tonic-gate    * [1] The DLT8000 implements many tape formats, but the st driver supports
15560Sstevel@tonic-gate    *     only the four highest densities.
15570Sstevel@tonic-gate    * [2] The DLT8000 has only one speed (if the driver ever cares).
15580Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
15590Sstevel@tonic-gate    */
15600Sstevel@tonic-gate   {                           /* Structure member Description                 */
15610Sstevel@tonic-gate                               /* ---------------- -----------                 */
15620Sstevel@tonic-gate     "Quantum DLT8000",        /* .name            Display ("pretty") name     */
15630Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
15640Sstevel@tonic-gate     "QUANTUM DLT8000",        /* .vid             Vendor-product ID string    */
15650Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
15660Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
15670Sstevel@tonic-gate                               /* .options         Drive option flags:         */
15680Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
15690Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
15700Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
15710Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
15720Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
15730Sstevel@tonic-gate     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
15740Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
15750Sstevel@tonic-gate     ST_CLN_TYPE_3,            /* 40000000                                     */
15760Sstevel@tonic-gate                               /*    -----                                     */
15770Sstevel@tonic-gate                               /* 40009619                                     */
15780Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
15790Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
15800Sstevel@tonic-gate     {0x84, 0x85, 0x88, 0x89}, /* .densities       [Note 1]                    */
15810Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
15820Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
15830Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
15840Sstevel@tonic-gate     0,                        /* .io_timeout Four    Nothing Special          */
15850Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
15860Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
15870Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
15880Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
15890Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
15900Sstevel@tonic-gate   },
15910Sstevel@tonic-gate 
15920Sstevel@tonic-gate   /*
15930Sstevel@tonic-gate    * Quantum DLT7000
15940Sstevel@tonic-gate    *
15950Sstevel@tonic-gate    *     NOTES
15960Sstevel@tonic-gate    *     -----
15970Sstevel@tonic-gate    * [1] The DLT7000 implements many tape formats, but the st driver supports
15980Sstevel@tonic-gate    *     only the four highest densities.
15990Sstevel@tonic-gate    * [2] The DLT7000 has only one speed (if the driver ever cares).
16000Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
16010Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
16020Sstevel@tonic-gate    *      is only supported in Solaris 2.5.1.
16030Sstevel@tonic-gate    */
16040Sstevel@tonic-gate   {                           /* Structure member Description                 */
16050Sstevel@tonic-gate                               /* ---------------- -----------                 */
16060Sstevel@tonic-gate     "Quantum DLT7000",        /* .name            Display ("pretty") name     */
16070Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
16080Sstevel@tonic-gate     "QUANTUM DLT7000",        /* .vid             Vendor-product ID string    */
16090Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
16100Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
16110Sstevel@tonic-gate                               /* .options         Drive option flags:         */
16120Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
16130Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
16140Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
16150Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
16160Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
16170Sstevel@tonic-gate     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
16180Sstevel@tonic-gate     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
16190Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
16200Sstevel@tonic-gate     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
16210Sstevel@tonic-gate                               /* --------                                     */
16220Sstevel@tonic-gate                               /* 4000D619                                     */
16230Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
16240Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
16250Sstevel@tonic-gate     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
16260Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
16270Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
16280Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
16290Sstevel@tonic-gate     0,                        /* .io_timeout Four    Nothing Special          */
16300Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
16310Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
16320Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
16330Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
16340Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
16350Sstevel@tonic-gate   },
16360Sstevel@tonic-gate 
16370Sstevel@tonic-gate   /*
16380Sstevel@tonic-gate    * Quantum DLT4000
16390Sstevel@tonic-gate    *
16400Sstevel@tonic-gate    *     NOTES
16410Sstevel@tonic-gate    *     -----
16420Sstevel@tonic-gate    * [1] The DLT4000 implements many tape formats, but the st driver supports
16430Sstevel@tonic-gate    *     only the four highest densities.
16440Sstevel@tonic-gate    * [2] The DLT4000 has only one speed (if the driver ever cares).
16450Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
16460Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
16470Sstevel@tonic-gate    *     is only supported in 2.5.1.
16480Sstevel@tonic-gate    */
16490Sstevel@tonic-gate   {                           /* Structure member Description                 */
16500Sstevel@tonic-gate                               /* ---------------- -----------                 */
16510Sstevel@tonic-gate     "Quantum DLT4000",        /* .name            Display ("pretty") name     */
16520Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
16530Sstevel@tonic-gate     "Quantum DLT4000",        /* .vid             Vendor-product ID string    */
16540Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
16550Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
16560Sstevel@tonic-gate                               /* .options         Drive option flags:         */
16570Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
16580Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
16590Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
16600Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
16610Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
16620Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
16630Sstevel@tonic-gate     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
16640Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
16650Sstevel@tonic-gate     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
16660Sstevel@tonic-gate                               /* --------                                     */
16670Sstevel@tonic-gate                               /* 4000D619                                     */
16680Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
16690Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
16700Sstevel@tonic-gate     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
16710Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
16720Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
16730Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
16740Sstevel@tonic-gate     0,                        /* .io_timeout Four    Nothing Special          */
16750Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
16760Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
16770Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
16780Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
16790Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
16800Sstevel@tonic-gate   },
16810Sstevel@tonic-gate 
16820Sstevel@tonic-gate   /*
16832446Szl149053    * [1] The DLT-S4 has three densites at this time,
16842446Szl149053    *     0x49 for SuperDLT tape I, 0x4a for SuperDLT tape II,
16852446Szl149053    *     0x4b for SuperDLT tape III.
16862446Szl149053    *     This drive is configured with ST_KNOWS_MEDIA.
16872446Szl149053    *     That means that it will look at the mediatype from the mode sense
16882446Szl149053    *     to select the density code. The compression will be selected based
16892446Szl149053    *     on the minor node the user opened.
16902446Szl149053    * [2] S4 reports a medium type that is used to select the density.
16912446Szl149053    */
16922446Szl149053   {                           /* Structure member Description                 */
16932446Szl149053                               /* ---------------- -----------                 */
16942446Szl149053     "Quantum DLT-S4",         /* .name            Display ("pretty") name     */
16952446Szl149053     14,                       /* .length          Length of next item...      */
16962446Szl149053     "QUANTUM DLT-S4",         /* .vid             Vendor-product ID string    */
16972446Szl149053     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
16982446Szl149053     0,                        /* .bsize           Block size (0 = variable)   */
16992446Szl149053                               /* .options         Drive option flags:         */
17002537Srralphs     ST_VARIABLE         |     /*  0000001           Supports variable length  */
17012537Srralphs     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
17022537Srralphs     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
17032537Srralphs     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
17042537Srralphs     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
17052537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
17062537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
17072537Srralphs     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
17082537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM            */
17092446Szl149053                               /*    -----                                     */
17102537Srralphs                               /*  1818619                                     */
17112446Szl149053     -1,                       /* .max_rretries    Not used any more.          */
17122446Szl149053     -1,                       /* .max_wretries    Not used any more.          */
17132446Szl149053     {0x49, 0x4a, 0x4b, 0x4b}, /* .densities       Density codes [Note 1]      */
17142446Szl149053     MT_DENSITY4,              /* .default_density (.densities[x])             */
17152446Szl149053     {0x86, 0x87, 0x91, 0x91}, /* .mediatype       Media type  [Note 2]        */
17162446Szl149053     0,                        /* .non_motion_time                             */
17172446Szl149053     MINUTES(60),              /* .io_time                                     */
17182446Szl149053     MINUTES(4),               /* .rewind_time                                 */
17192446Szl149053     MINUTES(360),             /* .space_time                                  */
17202446Szl149053     MINUTES(16),              /* .load_time                                   */
17212446Szl149053     MINUTES(16),              /* .unload_time                                 */
17222446Szl149053     MINUTES(360)              /* .erase_time                                  */
17232446Szl149053   },
17242446Szl149053 
17252446Szl149053   /*
17260Sstevel@tonic-gate    * Seagate Hornet NS20 Travan
17270Sstevel@tonic-gate    *
17280Sstevel@tonic-gate    *     NOTES
17290Sstevel@tonic-gate    *     -----
17300Sstevel@tonic-gate    *  o This is an unsupported drive.
17310Sstevel@tonic-gate    *
17320Sstevel@tonic-gate    * [1] The NS20 Travan uses 0 or the "default" density code.
17330Sstevel@tonic-gate    * [2] The NS20 Travan has only one speed (if the driver ever cares).
17340Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
17350Sstevel@tonic-gate    */
17360Sstevel@tonic-gate   {                           /* Structure member Description                 */
17370Sstevel@tonic-gate                               /* ---------------- -----------                 */
17380Sstevel@tonic-gate     "Seagate Hornet NS20 Travan",
17390Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
17400Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
17410Sstevel@tonic-gate     "Seagate STT20000N",      /* .vid             Vendor-product ID string    */
17420Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
17430Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
17440Sstevel@tonic-gate                               /* .options         Drive option flags:         */
17450Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
17460Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
17470Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
17480Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
17490Sstevel@tonic-gate                               /*    -----                                     */
17500Sstevel@tonic-gate                               /*    0840A                                     */
17510Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
17520Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
17530Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
17540Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density (.densities[x])             */
17550Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
17560Sstevel@tonic-gate   },
17570Sstevel@tonic-gate 
17580Sstevel@tonic-gate   /*
17590Sstevel@tonic-gate    * Seagate DAT 72
17600Sstevel@tonic-gate    *
17610Sstevel@tonic-gate    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
17620Sstevel@tonic-gate    *  [2] Only one speed.
17630Sstevel@tonic-gate    */
17640Sstevel@tonic-gate 
17650Sstevel@tonic-gate   {                           /* Structure member Description                 */
17660Sstevel@tonic-gate                               /* ---------------- -----------                 */
17670Sstevel@tonic-gate     "Seagate DAT 72",         /* .name            Display ("pretty") name     */
17680Sstevel@tonic-gate     23,                       /* .length          Length of next item...      */
17690Sstevel@tonic-gate     "SEAGATE DAT    DAT72-00",/* .vid             Vendor-product ID string    */
17700Sstevel@tonic-gate     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
17710Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
17720Sstevel@tonic-gate                               /* .options         Drive option flags:         */
17730Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           variable length records   */
17740Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
17750Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports backspace record */
17760Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
17770Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
17780Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
17790Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
17800Sstevel@tonic-gate                               /*    -----                                     */
17810Sstevel@tonic-gate                               /*    18619                                     */
17820Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
17830Sstevel@tonic-gate     -1,                       /* .max_wretries    Not Used any more.          */
17840Sstevel@tonic-gate     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes [Note 1]      */
17850Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
17860Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
17870Sstevel@tonic-gate     0,                        /* .non_motion_timeout                          */
17880Sstevel@tonic-gate     MINUTES(15),              /* .io_timeout                                  */
17890Sstevel@tonic-gate     MINUTES(2),               /* .rewind_timeout                              */
17900Sstevel@tonic-gate     MINUTES(15),              /* .space_timeout                               */
17910Sstevel@tonic-gate     0,                        /* .load_timeout                                */
17920Sstevel@tonic-gate     0,                        /* .unload_timeout                              */
17930Sstevel@tonic-gate     MINUTES(240)              /* .erase_timeout                               */
17940Sstevel@tonic-gate   },
17950Sstevel@tonic-gate 
17960Sstevel@tonic-gate   /*
17971866Szl149053    * Certance Ultrium LTO 3
17981866Szl149053    * [1] This drive supports 3 densites at this time.
17991866Szl149053    *     ST_MODE_SEL_COMP controls compression.
18001866Szl149053    * [2] max_rretries and max_wretries are not used but kept for
18011866Szl149053    *     backward compatibility.
18021866Szl149053    */
18031866Szl149053   {                           /* Structure member Description                 */
18041866Szl149053                               /* ---------------- -----------                 */
18051866Szl149053     "Certance Ultrium 3",     /* .name            Display ("pretty") name     */
18061866Szl149053     17,                       /* .length          Length of next item...      */
18071866Szl149053     "CERTANCEULTRIUM 3",      /* .vid             handles SCSI or FC          */
18081866Szl149053     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
18091866Szl149053     0,                        /* .bsize           Block size (0 = variable)   */
18101866Szl149053                               /* .options         Drive option flags:         */
18111866Szl149053     ST_VARIABLE         |     /*    00001           Supports variable length  */
18121866Szl149053     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
18131866Szl149053     ST_BSR              |     /*    00010           Supports SPACE block rev  */
18141866Szl149053     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
18151866Szl149053     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
18161866Szl149053     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
18171866Szl149053     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
18181866Szl149053                               /*    -----                                     */
18191866Szl149053                               /*    18619                                     */
18201866Szl149053     -1,                       /* .max_rretries    [Note 2]                    */
18211866Szl149053     -1,                       /* .max_wretries    [Note 2]                    */
18221866Szl149053     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
18231866Szl149053     MT_DENSITY4,              /* .default_density (.densities[x])             */
18241866Szl149053     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
18251866Szl149053     0,                        /* .non_motion_timeout                          */
18261866Szl149053     MINUTES(60),              /* .io_timeout                                  */
18271866Szl149053     MINUTES(35),              /* .rewind_timeout                              */
18281866Szl149053     MINUTES(60),              /* .space_timeout                               */
18291866Szl149053     MINUTES(35),              /* .load_timeout                                */
18301866Szl149053     MINUTES(35),              /* .unload_timeout                              */
18311866Szl149053     MINUTES(180)              /* .erase_timeout                               */
18321866Szl149053   },
18331866Szl149053 
18341866Szl149053   /*
18351866Szl149053    * Certance Ultrium LTO 2
18361866Szl149053    * [1] This drive supports two densites at this time.
18371866Szl149053    *     0x40 for Ultrium 1 and 0x42 for Ultrium 2.
18381866Szl149053    *     ST_MODE_SEL_COMP controls compression.
18391866Szl149053    * [2] max_rretries and max_wretries are not used but kept for
18401866Szl149053    *     backward compatibility.
18411866Szl149053    */
18421866Szl149053   {                           /* Structure member Description                 */
18431866Szl149053                               /* ---------------- -----------                 */
18441866Szl149053     "Certance Ultrium 2", /* .name            Display ("pretty") name     */
18451866Szl149053     17,                       /* .length          Length of next item...      */
18461866Szl149053     "CERTANCEULTRIUM 2",      /* .vid             handles SCSI or FC          */
18471866Szl149053     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
18481866Szl149053     0,                        /* .bsize           Block size (0 = variable)   */
18491866Szl149053                               /* .options         Drive option flags:         */
18501866Szl149053     ST_VARIABLE         |     /*    00001           Supports variable length  */
18511866Szl149053     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
18521866Szl149053     ST_BSR              |     /*    00010           Supports SPACE block rev  */
18531866Szl149053     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
18541866Szl149053     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
18551866Szl149053     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
18561866Szl149053     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
18571866Szl149053                               /*    -----                                     */
18581866Szl149053                               /*    18619                                     */
18591866Szl149053     -1,                       /* .max_rretries    [Note 2]                    */
18601866Szl149053     -1,                       /* .max_wretries    [Note 2]                    */
18611866Szl149053     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
18621866Szl149053     MT_DENSITY4,              /* .default_density (.densities[x])             */
18631866Szl149053     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
18641866Szl149053     0,                        /* .non_motion_timeout                          */
18651866Szl149053     MINUTES(60),              /* .io_timeout                                  */
18661866Szl149053     MINUTES(35),              /* .rewind_timeout                              */
18671866Szl149053     MINUTES(60),              /* .space_timeout                               */
18681866Szl149053     MINUTES(35),              /* .load_timeout                                */
18691866Szl149053     MINUTES(35),              /* .unload_timeout                              */
18701866Szl149053     MINUTES(180)              /* .erase_timeout                               */
18711866Szl149053   },
18721866Szl149053 
18731866Szl149053   /*
18740Sstevel@tonic-gate    * Seagate Ultrium LTO
18750Sstevel@tonic-gate    *
18760Sstevel@tonic-gate    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
18770Sstevel@tonic-gate    *  [2] Only one speed.
18780Sstevel@tonic-gate    */
18790Sstevel@tonic-gate 
18800Sstevel@tonic-gate   {                           /* Structure member Description                 */
18810Sstevel@tonic-gate                               /* ---------------- -----------                 */
18820Sstevel@tonic-gate     "Seagate Ultrium LTO",    /* .name            Display ("pretty") name     */
18830Sstevel@tonic-gate     23,                       /* .length          Length of next item...      */
18840Sstevel@tonic-gate     "SEAGATE ULTRIUM06242-XX",/* .vid             Vendor-product ID string    */
18850Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
18860Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
18870Sstevel@tonic-gate                               /* .options         Drive option flags:         */
18880Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           variable length records   */
18890Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
18900Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports backspace record */
18910Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
18920Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
18930Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
18940Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
18950Sstevel@tonic-gate                               /*    -----                                     */
18960Sstevel@tonic-gate                               /*    18619                                     */
18970Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
18980Sstevel@tonic-gate     -1,                       /* .max_wretries    Not Used any more.          */
18990Sstevel@tonic-gate     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
19000Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
19010Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
19020Sstevel@tonic-gate     0,                        /* .non_motion_timeout                          */
19030Sstevel@tonic-gate     MINUTES(10),              /* .io_timeout                                  */
19040Sstevel@tonic-gate     MINUTES(15),              /* .rewind_timeout                              */
19050Sstevel@tonic-gate     MINUTES(120),             /* .space_timeout                               */
19060Sstevel@tonic-gate     MINUTES(5),               /* .load_timeout                                */
19070Sstevel@tonic-gate     MINUTES(2),               /* .unload_timeout                              */
19080Sstevel@tonic-gate     MINUTES(120)              /* .erase_timeout                               */
19090Sstevel@tonic-gate   },
19100Sstevel@tonic-gate 
19110Sstevel@tonic-gate   /*
19120Sstevel@tonic-gate    * SONY 4mm DAT
19130Sstevel@tonic-gate    *
19140Sstevel@tonic-gate    *     NOTES
19150Sstevel@tonic-gate    *     -----
19160Sstevel@tonic-gate    *  o This is an unsupported drive.
19170Sstevel@tonic-gate    *
19180Sstevel@tonic-gate    *  o This entry uses a shortened Vendor-product ID string for the
19190Sstevel@tonic-gate    *    INQUIRY match.
19200Sstevel@tonic-gate    *
19210Sstevel@tonic-gate    * [1] The SDT-5000 uses 0 or the "default" density code.
19220Sstevel@tonic-gate    * [2] The SDT-5000 has only one speed (if the driver ever cares).
19230Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
19240Sstevel@tonic-gate    */
19250Sstevel@tonic-gate   {                           /* Structure member Description                 */
19260Sstevel@tonic-gate                               /* ---------------- -----------                 */
19270Sstevel@tonic-gate     "SONY 4mm DAT",           /* .name            Display ("pretty") name     */
19280Sstevel@tonic-gate     12,                       /* .length          Length of next item...      */
19290Sstevel@tonic-gate     "SONY    SDT-****",       /* .vid             Vendor-product ID string    */
19300Sstevel@tonic-gate     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
19310Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
19320Sstevel@tonic-gate                               /* .options         Drive option flags:         */
19330Sstevel@tonic-gate     ST_VARIABLE   |           /*    00001           Supports variable length  */
19340Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
19350Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
19360Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
19370Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
19380Sstevel@tonic-gate                               /*    -----                                     */
19390Sstevel@tonic-gate                               /*    00439                                     */
19400Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
19410Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
19420Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
19430Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
19440Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
19450Sstevel@tonic-gate   },
19460Sstevel@tonic-gate 
19470Sstevel@tonic-gate   /*
1948877Sgz161490    * Sun StorageTek T10000A tape drive.
1949877Sgz161490    *
1950877Sgz161490    *     NOTES
1951877Sgz161490    *     -----
1952877Sgz161490    *  o  The T10000A has special needs - support for SCSI LOCATE and
1953877Sgz161490    *     READ POSITION commands - so we must be sure to place this
1954877Sgz161490    *     entry before the one for ST_TYPE_STC3490 (generic STK
1955877Sgz161490    *     half-inch cartridge drives).
1956877Sgz161490    * [1] Compression on the T10000A is controlled
1957877Sgz161490    *     via the Device Configuration mode page.
1958877Sgz161490    * [2] The T10000A has only one writable density, 0x4A.
1959877Sgz161490    * [3] The T10000A has only one speed (if the driver ever cares).
1960877Sgz161490    * [4] max_rretries and max_wretries are driver anachronisms.
1961877Sgz161490    */
1962877Sgz161490   {                           /* Structure member    Description              */
1963877Sgz161490                               /* ----------------    -----------              */
1964877Sgz161490     "Sun StorageTek T10000A", /* .name               Display ("pretty") name  */
1965877Sgz161490     15,                       /* .length             Length of next item...   */
1966877Sgz161490     "STK     T10000A",        /* .vid                Vendor-product ID string */
1967877Sgz161490     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
1968877Sgz161490     0,                        /* .bsize              Block size (0 = variable)*/
1969877Sgz161490                               /* .options            Drive option flags:      */
19702537Srralphs     ST_VARIABLE         |     /*  0000001            Supports variable length */
19712537Srralphs     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
19722537Srralphs     ST_BSR              |     /*  0000010            Supports SPACE block rev */
19732537Srralphs     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag*/
19742537Srralphs     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
19752537Srralphs     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
19762537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
19772537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
19782537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM            */
19792537Srralphs                               /*  -------                                     */
19802537Srralphs                               /*  1018659                                     */
1981877Sgz161490     -1,                       /* .max_rretries       [Note 4]                 */
1982877Sgz161490     -1,                       /* .max_wretries       [Note 4]                 */
1983877Sgz161490     {0x4A,0x4A,0x4A,0x4A},    /* .densities          Density codes [Note 2]   */
1984877Sgz161490     MT_DENSITY4,              /* .default_density    (.densities[x])          */
1985877Sgz161490     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
1986877Sgz161490     0,                        /* .non_motion_timeout Nothing Special          */
1987877Sgz161490     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
1988877Sgz161490     0,                        /* .rewind_timeout     Nothing Special          */
1989877Sgz161490     0,                        /* .space_timeout      Nothing Special          */
1990877Sgz161490     0,                        /* .load_timeout       Nothing Special          */
1991877Sgz161490     0,                        /* .unload_timeout     Nothing Special          */
1992877Sgz161490     MINUTES(180)              /* .erase_timeout      Three Hours              */
1993877Sgz161490   },
1994877Sgz161490 
1995877Sgz161490   /*
19960Sstevel@tonic-gate    * STK 9840C cartridge drive.
19970Sstevel@tonic-gate    *
19980Sstevel@tonic-gate    *     NOTES
19990Sstevel@tonic-gate    *     -----
20000Sstevel@tonic-gate    *  o  The 9840C has special needs - support for SCSI LOCATE and
20010Sstevel@tonic-gate    *     READ POSITION commands - so we must be sure to place this
20020Sstevel@tonic-gate    *     entry before the one for ST_TYPE_STC3490 (generic STK
20030Sstevel@tonic-gate    *     half-inch cartridge drives).
20040Sstevel@tonic-gate    * [1] Compression on the 9840C is controlled
20050Sstevel@tonic-gate    *     via the Device Configuration mode page.
20060Sstevel@tonic-gate    * [2] The 9840C has only one writable density, 0x45. I can read tapes writen
20070Sstevel@tonic-gate    *     with 9840 and 9840B writen with there density code 0x42.
20080Sstevel@tonic-gate    * [3] The 9840C has only one speed (if the driver ever cares).
20090Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
20100Sstevel@tonic-gate    */
20110Sstevel@tonic-gate   {                           /* Structure member    Description              */
20120Sstevel@tonic-gate                               /* ----------------    -----------              */
20130Sstevel@tonic-gate     "StorageTek 9840C",       /* .name               Display ("pretty") name  */
20140Sstevel@tonic-gate     14,                       /* .length             Length of next item...   */
20150Sstevel@tonic-gate     "STK     T9840C",         /* .vid                Vendor-product ID string */
20160Sstevel@tonic-gate     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
20170Sstevel@tonic-gate     0,                        /* .bsize              Block size (0 = variable)*/
20180Sstevel@tonic-gate                               /* .options            Drive option flags:      */
20192537Srralphs     ST_VARIABLE         |     /*  0000001            Supports variable length */
20202537Srralphs     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
20212537Srralphs     ST_BSR              |     /*  0000010            Supports SPACE block rev */
20222537Srralphs     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
20232537Srralphs     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
20242537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
20252537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
20262537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM            */
20272537Srralphs                               /*  -------                                     */
20282537Srralphs                               /*  1018619                                     */
20290Sstevel@tonic-gate     -1,                       /* .max_rretries       [Note 4]                 */
20300Sstevel@tonic-gate     -1,                       /* .max_wretries       [Note 4]                 */
20310Sstevel@tonic-gate     {0x45,0x45,0x45,0x45},    /* .densities          Density codes [Note 2]   */
20320Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density    (.densities[x])          */
20330Sstevel@tonic-gate     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
20340Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing Special          */
20350Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
20360Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
20370Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
20380Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
20390Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
20400Sstevel@tonic-gate     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
20410Sstevel@tonic-gate   },
20420Sstevel@tonic-gate 
20430Sstevel@tonic-gate   /*
20440Sstevel@tonic-gate    * STK 9840B cartridge drive.
20450Sstevel@tonic-gate    *
20460Sstevel@tonic-gate    *     NOTES
20470Sstevel@tonic-gate    *     -----
20480Sstevel@tonic-gate    *  o  The 9840B has special needs - support for SCSI LOCATE and
20490Sstevel@tonic-gate    *     READ POSITION commands - so we must be sure to place this
20500Sstevel@tonic-gate    *     entry before the one for ST_TYPE_STC3490 (generic STK
20510Sstevel@tonic-gate    *     half-inch cartridge drives).
20520Sstevel@tonic-gate    * [1] Compression on the 9840B is controlled
20530Sstevel@tonic-gate    *     via the Device Configuration mode page.
20540Sstevel@tonic-gate    * [2] The 9840B has only one density, 0x42 (or 0 for "default").
20550Sstevel@tonic-gate    * [3] The 9840B has only one speed (if the driver ever cares).
20560Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
20570Sstevel@tonic-gate    */
20580Sstevel@tonic-gate   {                           /* Structure member    Description              */
20590Sstevel@tonic-gate                               /* ----------------    -----------              */
20600Sstevel@tonic-gate     "StorageTek 9840B",       /* .name               Display ("pretty") name  */
20610Sstevel@tonic-gate     14,                       /* .length             Length of next item...   */
20620Sstevel@tonic-gate     "STK     T9840B",         /* .vid                Vendor-product ID string */
20630Sstevel@tonic-gate     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
20640Sstevel@tonic-gate     0,                        /* .bsize              Block size (0 = variable)*/
20650Sstevel@tonic-gate                               /* .options            Drive option flags:      */
20662537Srralphs     ST_VARIABLE         |     /*  0000001            Supports variable length */
20672537Srralphs     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
20682537Srralphs     ST_BSR              |     /*  0000010            Supports SPACE block rev */
20692537Srralphs     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
20702537Srralphs     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
20712537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
20722537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
20732537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM            */
20742537Srralphs                               /*  -------                                     */
20752537Srralphs                               /*  1018619                                     */
20760Sstevel@tonic-gate     -1,                       /* .max_rretries       [Note 4]                 */
20770Sstevel@tonic-gate     -1,                       /* .max_wretries       [Note 4]                 */
20780Sstevel@tonic-gate     {0x42,0x42,0x42,0x42},    /* .densities          Density codes [Note 2]   */
20790Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density    (.densities[x])          */
20800Sstevel@tonic-gate     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
20810Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing Special          */
20820Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
20830Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
20840Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
20850Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
20860Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
20870Sstevel@tonic-gate     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
20880Sstevel@tonic-gate   },
20890Sstevel@tonic-gate 
20900Sstevel@tonic-gate   /*
20910Sstevel@tonic-gate    * STK 9940B cartridge drive.
20920Sstevel@tonic-gate    *
20930Sstevel@tonic-gate    *     NOTES
20940Sstevel@tonic-gate    *     -----
20950Sstevel@tonic-gate    * [1] Compression on the 9940 is controlled
20960Sstevel@tonic-gate    *     via the Device Configuration mode page.
20970Sstevel@tonic-gate    * [2] The 9940 has only one density, 0x44.
20980Sstevel@tonic-gate    * [3] The 9940 has only one speed (if the driver ever cares).
20990Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver not used.
21000Sstevel@tonic-gate    */
21010Sstevel@tonic-gate   {                           /* Structure member    Description               */
21020Sstevel@tonic-gate                               /* ----------------    -----------               */
21030Sstevel@tonic-gate     "StorageTek 9940B",       /* .name               Display ("pretty") name   */
21040Sstevel@tonic-gate     14,                       /* .length             Length of next item...    */
21050Sstevel@tonic-gate     "STK     T9940B",         /* .vid                Vendor-product ID string  */
21060Sstevel@tonic-gate     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h) */
21070Sstevel@tonic-gate     0,                        /* .bsize              Block size (0 = variable) */
21080Sstevel@tonic-gate                               /* .options            Drive option flags:       */
21092537Srralphs     ST_VARIABLE         |     /*  0000001            Supports variable length  */
21102537Srralphs     ST_BSF              |     /*  0000008            Supports SPACE block fwd  */
21112537Srralphs     ST_BSR              |     /*  0000010            Supports SPACE block rev  */
21122537Srralphs     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag */
21132537Srralphs     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data    */
21142537Srralphs     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded    */
21152537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB    */
21162537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                  */
21172537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM             */
21182537Srralphs                               /*  -------                                      */
21192537Srralphs                               /*  1018659                                      */
21200Sstevel@tonic-gate     -1,                       /* .max_rretries       [Note 4]                  */
21210Sstevel@tonic-gate     -1,                       /* .max_wretries       [Note 4]                  */
21220Sstevel@tonic-gate     {0x44,0x44,0x44,0x44},    /* .densities          Density codes [Note 2]    */
21230Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density    (.densities[x])           */
21240Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]      */
21250Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing Special           */
21260Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout         Five minutes              */
21270Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special           */
21280Sstevel@tonic-gate     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840  */
21290Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special           */
21300Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special           */
21310Sstevel@tonic-gate     MINUTES(210)              /* .erase_timeout      Three and a half hours    */
21320Sstevel@tonic-gate   },
21330Sstevel@tonic-gate 
21340Sstevel@tonic-gate   /*
21350Sstevel@tonic-gate    * STK 9940 cartridge drive.
21360Sstevel@tonic-gate    *
21370Sstevel@tonic-gate    *     NOTES
21380Sstevel@tonic-gate    *     -----
21390Sstevel@tonic-gate    * [1] Compression on the 9940 is controlled
21400Sstevel@tonic-gate    *     via the Device Configuration mode page.
21410Sstevel@tonic-gate    * [2] The 9940 has only one density, 0x43.
21420Sstevel@tonic-gate    * [3] The 9940 has only one speed (if the driver ever cares).
21430Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver not used.
21440Sstevel@tonic-gate    */
21450Sstevel@tonic-gate   {                           /* Structure member    Description              */
21460Sstevel@tonic-gate                               /* ----------------    -----------              */
21470Sstevel@tonic-gate     "StorageTek 9940",        /* .name               Display ("pretty") name  */
21480Sstevel@tonic-gate     14,                       /* .length             Length of next item...   */
21490Sstevel@tonic-gate     "STK     T9940A",         /* .vid                Vendor-product ID string */
21500Sstevel@tonic-gate     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
21510Sstevel@tonic-gate     0,                        /* .bsize              Block size (0 = variable)*/
21520Sstevel@tonic-gate                               /* .options            Drive option flags:      */
21532537Srralphs     ST_VARIABLE         |     /*  0000001            Supports variable length */
21542537Srralphs     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
21552537Srralphs     ST_BSR              |     /*  0000010            Supports SPACE block rev */
21562537Srralphs     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
21572537Srralphs     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
21582537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
21592537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
21602537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM            */
21612537Srralphs                               /*  -------                                     */
21622537Srralphs                               /*  1018619                                     */
21630Sstevel@tonic-gate     -1,                       /* .max_rretries       [Note 4]                 */
21640Sstevel@tonic-gate     -1,                       /* .max_wretries       [Note 4]                 */
21650Sstevel@tonic-gate     {0x43,0x43,0x43,0x43},    /* .densities          Density codes [Note 2]   */
21660Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density    (.densities[x])          */
21670Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
21680Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing Special          */
21690Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout         Five Minutes             */
21700Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
21710Sstevel@tonic-gate     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840 */
21720Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
21730Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
21740Sstevel@tonic-gate     MINUTES(210)              /* .erase_timeout      Three and a half hours   */
21750Sstevel@tonic-gate   },
21760Sstevel@tonic-gate 
21770Sstevel@tonic-gate   /*
21780Sstevel@tonic-gate    * STK 9840 cartridge drive (Sun codename: Ironsides)
21790Sstevel@tonic-gate    *
21800Sstevel@tonic-gate    *     NOTES
21810Sstevel@tonic-gate    *     -----
21820Sstevel@tonic-gate    *  o  The 9840 has special needs - support for SCSI LOCATE and
21830Sstevel@tonic-gate    *     READ POSITION commands - so we must be sure to place this
21840Sstevel@tonic-gate    *     entry before the one for ST_TYPE_STC3490 (generic STK
21850Sstevel@tonic-gate    *     half-inch cartridge drives).
21860Sstevel@tonic-gate    * [1] Compression on the 9840 is controlled
21870Sstevel@tonic-gate    *     via the Device Configuration mode page.
21880Sstevel@tonic-gate    * [2] The 9840 has only one density, 0x42 (or 0 for "default").
21890Sstevel@tonic-gate    * [3] The 9840 has only one speed (if the driver ever cares).
21900Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
21910Sstevel@tonic-gate    * [5] ST_LONG_ERASE is not needed or used when .erase_timeout
21920Sstevel@tonic-gate    *     is non-zero.
21930Sstevel@tonic-gate    */
21940Sstevel@tonic-gate   {                           /* Structure member    Description              */
21950Sstevel@tonic-gate                               /* ----------------    -----------              */
21960Sstevel@tonic-gate     "StorageTek 9840",        /* .name               Display ("pretty") name  */
21970Sstevel@tonic-gate     12,                       /* .length             Length of next item...   */
21980Sstevel@tonic-gate     "STK     9840",           /* .vid                Vendor-product ID string */
21990Sstevel@tonic-gate     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
22000Sstevel@tonic-gate     0,                        /* .bsize              Block size (0 = variable)*/
22010Sstevel@tonic-gate                               /* .options            Drive option flags:      */
22022537Srralphs     ST_VARIABLE         |     /*  0000001            Supports variable length */
22032537Srralphs     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
22042537Srralphs     ST_BSR              |     /*  0000010            Supports SPACE block rev */
22052537Srralphs     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
22062537Srralphs     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
22072537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
22082537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
22092537Srralphs     ST_WORMABLE,              /*  1000000            Supports WORM            */
22102537Srralphs                               /*  -------                                     */
22112537Srralphs                               /*  1018619                                     */
22120Sstevel@tonic-gate     10,                       /* .max_rretries       [Note 4]                 */
22130Sstevel@tonic-gate     10,                       /* .max_wretries       [Note 4]                 */
22140Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities          Density codes [Note 2]   */
22150Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density    (.densities[x])          */
22160Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
22170Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing Special          */
22180Sstevel@tonic-gate     MINUTES(5),               /* .io_timeout         Five Minutes             */
22190Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
22200Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
22210Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
22220Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
22230Sstevel@tonic-gate     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
22240Sstevel@tonic-gate   },
22250Sstevel@tonic-gate 
22260Sstevel@tonic-gate   /*
22272537Srralphs    * Sony SAIT
22282537Srralphs    *
22292537Srralphs    * Only looking at part of the product ID so it will match SDZ-100 and
22302537Srralphs    * SDZ-130. One is SCSI other is Fibre but same configuration otherwise.
22312537Srralphs    *
22322537Srralphs    */
22332537Srralphs   {                           /* Structure member Description                 */
22342537Srralphs                               /* ---------------- -----------                 */
22352537Srralphs     "Sony Super AIT",         /* .name            Display ("pretty") name     */
22362537Srralphs     13,                       /* .length          Length of next item...      */
22372537Srralphs     "SONY    SDZ-1*",         /* .vid             Vendor-product ID string    */
22382537Srralphs     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
22392537Srralphs     0,
22402537Srralphs     ST_VARIABLE         |     /*  0000001           Supports variable length  */
22412537Srralphs     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
22422537Srralphs     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
22432537Srralphs     ST_AUTODEN_OVERRIDE |     /*  0000040           Suports only one density  */
22442537Srralphs     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
22452537Srralphs     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
22462537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
22472537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
22482537Srralphs     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
22492537Srralphs                               /*  -------                                     */
22502537Srralphs                               /*  1018659                                     */
22512537Srralphs     -1,                       /* .max_rretries    Not used                    */
22522537Srralphs     -1,                       /* .max_wretries    Not used                    */
22532537Srralphs     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
22542537Srralphs     MT_DENSITY4,              /* .default_density (.densities[x])             */
22552537Srralphs     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
22562537Srralphs     0,                        /* .non_motion_timeout Nothing special          */
22572537Srralphs     0,                        /* .io_timeout Four    Nothing Special          */
22582537Srralphs     0,                        /* .rewind_timeout     Nothing Special          */
22592537Srralphs     0,                        /* .space_timeout      Nothing Special          */
22602537Srralphs     0,                        /* .load_timeout       Nothing Special          */
22612537Srralphs     0,                        /* .unload_timeout     Nothing Special          */
22622537Srralphs     0,                        /* .erase_timeout      Six hours                */
22632537Srralphs   },
22642537Srralphs 
22652537Srralphs   /*
22662537Srralphs    * Sony SDX-420
22672537Srralphs    * This drive is listed before the more generic AIT drives becouse it runs
22682537Srralphs    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
22692537Srralphs    * leads st to beleive its a variable block capable but it will fail any
22702537Srralphs    * i/o that doesn't have the fix bit set in the CDB.
22712537Srralphs    */
22722537Srralphs   {                           /* Structure member Description                 */
22732537Srralphs                               /* ---------------- -----------                 */
22742537Srralphs     "Sony AIT II",            /* .name            Display ("pretty") name     */
22752537Srralphs     15,                       /* .length          Length of next item...      */
22762537Srralphs     "SONY    SDX-420*",       /* .vid             Vendor-product ID string    */
22772537Srralphs     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
22782537Srralphs     512,
22792537Srralphs     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
22802537Srralphs     ST_BSR              |     /*    00010           Supports SPACE block rev  */
22812537Srralphs     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
22822537Srralphs     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
22832537Srralphs     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
22842537Srralphs     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
22852537Srralphs     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
22862537Srralphs                               /*    -----                                     */
22872537Srralphs                               /*    18658                                     */
22882537Srralphs     -1,                       /* .max_rretries    Not used                    */
22892537Srralphs     -1,                       /* .max_wretries    Not used                    */
22902537Srralphs     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
22912537Srralphs     MT_DENSITY4,              /* .default_density (.densities[x])             */
22922537Srralphs     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
22932537Srralphs     0,                        /* .non_motion_timeout Nothing special          */
22942537Srralphs     0,                        /* .io_timeout Four    Nothing Special          */
22952537Srralphs     0,                        /* .rewind_timeout     Nothing Special          */
22962537Srralphs     0,                        /* .space_timeout      Nothing Special          */
22972537Srralphs     0,                        /* .load_timeout       Nothing Special          */
22982537Srralphs     0,                        /* .unload_timeout     Nothing Special          */
22992537Srralphs     0,                        /* .erase_timeout      Six hours                */
23002537Srralphs   },
23012537Srralphs 
23022537Srralphs   /*
23032537Srralphs    * Sony SDX-520
23042537Srralphs    * This drive is listed before the more generic AIT drives becouse it runs
23052537Srralphs    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
23062537Srralphs    * leads st to beleive its a variable block capable but it will fail any
23072537Srralphs    * i/o that doesn't have the fix bit set in the CDB.
23082537Srralphs    */
23092537Srralphs   {                           /* Structure member Description                 */
23102537Srralphs                               /* ---------------- -----------                 */
23112537Srralphs     "Sony AIT II",            /* .name            Display ("pretty") name     */
23122537Srralphs     15,                       /* .length          Length of next item...      */
23132537Srralphs     "SONY    SDX-520*",       /* .vid             Vendor-product ID string    */
23142537Srralphs     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
23152537Srralphs     512,
23162537Srralphs     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
23172537Srralphs     ST_BSR              |     /*    00010           Supports SPACE block rev  */
23182537Srralphs     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
23192537Srralphs     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
23202537Srralphs     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
23212537Srralphs     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
23222537Srralphs     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
23232537Srralphs                               /*    -----                                     */
23242537Srralphs                               /*    18658                                     */
23252537Srralphs     -1,                       /* .max_rretries    Not used                    */
23262537Srralphs     -1,                       /* .max_wretries    Not used                    */
23272537Srralphs     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
23282537Srralphs     MT_DENSITY4,              /* .default_density (.densities[x])             */
23292537Srralphs     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
23302537Srralphs     0,                        /* .non_motion_timeout Nothing special          */
23312537Srralphs     0,                        /* .io_timeout Four    Nothing Special          */
23322537Srralphs     0,                        /* .rewind_timeout     Nothing Special          */
23332537Srralphs     0,                        /* .space_timeout      Nothing Special          */
23342537Srralphs     0,                        /* .load_timeout       Nothing Special          */
23352537Srralphs     0,                        /* .unload_timeout     Nothing Special          */
23362537Srralphs     0,                        /* .erase_timeout      Six hours                */
23372537Srralphs   },
23382537Srralphs 
23392537Srralphs   /* Sony generic AIT
23402537Srralphs    *
23412537Srralphs    *
23422537Srralphs    */
23432537Srralphs   {                           /* Structure member Description                 */
23442537Srralphs                               /* ---------------- -----------                 */
23452537Srralphs     "Sony AIT",               /* .name            Display ("pretty") name     */
23462537Srralphs     12,                       /* .length          Length of next item...      */
23472537Srralphs     "SONY    SDX-*",          /* .vid             Vendor-product ID string    */
23482537Srralphs     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
23492537Srralphs     0,
23502537Srralphs     ST_VARIABLE         |     /*  0000001           Supports variable length  */
23512537Srralphs     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
23522537Srralphs     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
23532537Srralphs     ST_AUTODEN_OVERRIDE |     /*  0000040           One density code          */
23542537Srralphs     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
23552537Srralphs     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
23562537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
23572537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
23582537Srralphs     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
23592537Srralphs                               /*  -------                                     */
23602537Srralphs                               /*  1018659                                     */
23612537Srralphs     -1,                       /* .max_rretries    Not used                    */
23622537Srralphs     -1,                       /* .max_wretries    Not used                    */
23632537Srralphs     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
23642537Srralphs     MT_DENSITY4,              /* .default_density (.densities[x])             */
23652537Srralphs     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
23662537Srralphs     0,                        /* .non_motion_timeout Nothing special          */
23672537Srralphs     0,                        /* .io_timeout Four    Nothing Special          */
23682537Srralphs     0,                        /* .rewind_timeout     Nothing Special          */
23692537Srralphs     0,                        /* .space_timeout      Nothing Special          */
23702537Srralphs     0,                        /* .load_timeout       Nothing Special          */
23712537Srralphs     0,                        /* .unload_timeout     Nothing Special          */
23722537Srralphs     0,                        /* .erase_timeout      Six hours                */
23732537Srralphs   },
23742537Srralphs 
23752537Srralphs   /*
23760Sstevel@tonic-gate    * Sun DLT7000
23770Sstevel@tonic-gate    *
23780Sstevel@tonic-gate    *     NOTES
23790Sstevel@tonic-gate    *     -----
23800Sstevel@tonic-gate    * [1] The DLT7000 implements many tape formats, but the st driver supports
23810Sstevel@tonic-gate    *     only the four highest densities.
23820Sstevel@tonic-gate    * [2] The DLT7000 has only one speed (if the driver ever cares).
23830Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
23840Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
23850Sstevel@tonic-gate    *     is only supported in 2.5.1.
23860Sstevel@tonic-gate    */
23870Sstevel@tonic-gate   {                           /* Structure member Description                 */
23880Sstevel@tonic-gate                               /* ---------------- -----------                 */
23890Sstevel@tonic-gate     "Sun DLT7000",            /* .name            Display ("pretty") name     */
23900Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
23910Sstevel@tonic-gate     "SUN     DLT7000",        /* .vid             Vendor-product ID string    */
23920Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
23930Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
23940Sstevel@tonic-gate                               /* .options         Drive option flags:         */
23950Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
23960Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
23970Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
23980Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
23990Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
24000Sstevel@tonic-gate     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
24010Sstevel@tonic-gate     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
24020Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
24030Sstevel@tonic-gate     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
24040Sstevel@tonic-gate                               /* --------                                     */
24050Sstevel@tonic-gate                               /* 4000D619                                     */
24060Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
24070Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
24080Sstevel@tonic-gate     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
24090Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
24100Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
24110Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
24120Sstevel@tonic-gate     0,                        /* .io_timeout Four    Nothing Special          */
24130Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
24140Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
24150Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
24160Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
24170Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
24180Sstevel@tonic-gate   },
24190Sstevel@tonic-gate 
24200Sstevel@tonic-gate   /*
24210Sstevel@tonic-gate    * Sun DLT4000
24220Sstevel@tonic-gate    *
24230Sstevel@tonic-gate    *     NOTES
24240Sstevel@tonic-gate    *     -----
24250Sstevel@tonic-gate    * [1] The DLT4000 implements many tape formats, but the st driver supports
24260Sstevel@tonic-gate    *     only the four highest densities.
24270Sstevel@tonic-gate    * [2] The DLT4000 has only one speed (if the driver ever cares).
24280Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
24290Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
24300Sstevel@tonic-gate    *     is only supported in 2.5.1.
24310Sstevel@tonic-gate    */
24320Sstevel@tonic-gate   {                           /* Structure member Description                 */
24330Sstevel@tonic-gate                               /* ---------------- -----------                 */
24340Sstevel@tonic-gate     "DLT4000",                /* .name            Display ("pretty") name     */
24350Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
24360Sstevel@tonic-gate     "SUN     DLT4000",        /* .vid             Vendor-product ID string    */
24370Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
24380Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
24390Sstevel@tonic-gate                               /* .options         Drive option flags:         */
24400Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
24410Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
24420Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
24430Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
24440Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
24450Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
24460Sstevel@tonic-gate     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
24470Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
24480Sstevel@tonic-gate     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
24490Sstevel@tonic-gate                               /* --------                                     */
24500Sstevel@tonic-gate                               /* 4000D619                                     */
24510Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
24520Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
24530Sstevel@tonic-gate     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
24540Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
24550Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
24560Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
24570Sstevel@tonic-gate     0,                        /* .io_timeout Four    Nothing Special          */
24580Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
24590Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
24600Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
24610Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
24620Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
24630Sstevel@tonic-gate   },
24640Sstevel@tonic-gate 
24650Sstevel@tonic-gate   /*
24660Sstevel@tonic-gate    * Sun DLT4700
24670Sstevel@tonic-gate    *
24680Sstevel@tonic-gate    *     NOTES
24690Sstevel@tonic-gate    *     -----
24700Sstevel@tonic-gate    * [1] Compression on the DLT4700 is controlled via the Device Configuration
24710Sstevel@tonic-gate    *     mode page or the Data Compression page (either one).
24720Sstevel@tonic-gate    * [2] The DLT4700 implements many tape formats, but the st driver supports
24730Sstevel@tonic-gate    *     only the four highest densities.
24740Sstevel@tonic-gate    * [3] The DLT4700 has only one speed (if the driver ever cares).
24750Sstevel@tonic-gate    * [4] max_rretries and max_wretries are driver anachronisms.
24760Sstevel@tonic-gate    * [5] Data is buffered in the driver and pre-acked to the application. This
24770Sstevel@tonic-gate    *     is only supported in 2.5.1.
24780Sstevel@tonic-gate    */
24790Sstevel@tonic-gate   {                           /* Structure member Description                 */
24800Sstevel@tonic-gate                               /* ---------------- -----------                 */
24810Sstevel@tonic-gate     "DLT4700 Library",        /* .name            Display ("pretty") name     */
24820Sstevel@tonic-gate     15,                       /* .length          Length of next item...      */
24830Sstevel@tonic-gate     "SUN     DLT4700",        /* .vid             Vendor-product ID string    */
24840Sstevel@tonic-gate     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
24850Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
24860Sstevel@tonic-gate                               /* .options         Drive option flags:         */
24870Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
24880Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
24890Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
24900Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
24910Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
24920Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
24930Sstevel@tonic-gate     ST_BUFFERED_WRITES |      /*    04000           [Note 5]                  */
24940Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
24950Sstevel@tonic-gate                               /*    -----                                     */
24960Sstevel@tonic-gate                               /*    0D619                                     */
24970Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 4]                    */
24980Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 4]                    */
24990Sstevel@tonic-gate     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 2]      */
25000Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
25010Sstevel@tonic-gate     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
25020Sstevel@tonic-gate     0,                        /* .non_motion_timeout Nothing special          */
25030Sstevel@tonic-gate     0,                        /* .io_timeout Four    Nothing Special          */
25040Sstevel@tonic-gate     0,                        /* .rewind_timeout     Nothing Special          */
25050Sstevel@tonic-gate     0,                        /* .space_timeout      Nothing Special          */
25060Sstevel@tonic-gate     0,                        /* .load_timeout       Nothing Special          */
25070Sstevel@tonic-gate     0,                        /* .unload_timeout     Nothing Special          */
25080Sstevel@tonic-gate     MINUTES(360)              /* .erase_timeout      Six hours                */
25090Sstevel@tonic-gate   },
25100Sstevel@tonic-gate 
25110Sstevel@tonic-gate   /*
25120Sstevel@tonic-gate    * Tandberg SLR5 4/8G (standard firmware)
25130Sstevel@tonic-gate    *
25140Sstevel@tonic-gate    *     NOTES
25150Sstevel@tonic-gate    *     -----
25160Sstevel@tonic-gate    * [1] The density code entry requires four values, even if there are less
25170Sstevel@tonic-gate    *     than four values for the drive.
25180Sstevel@tonic-gate    * [2] The Tandberg SLR5 4/8G has only one speed (if the driver ever cares).
25190Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
25200Sstevel@tonic-gate    */
25210Sstevel@tonic-gate   {                           /* Structure member Description                 */
25220Sstevel@tonic-gate                               /* ---------------- -----------                 */
25230Sstevel@tonic-gate     "Tandberg 4/8 Gig QIC",   /* .name            Display ("pretty") name     */
25240Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
25250Sstevel@tonic-gate     "TANDBERG SLR5 4/8GB",    /* .vid             Vendor-product ID string    */
25260Sstevel@tonic-gate     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
25270Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
25280Sstevel@tonic-gate                               /* .options         Drive option flags:         */
25290Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
25300Sstevel@tonic-gate     ST_QIC             |      /*    00002           QIC tape device           */
25310Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
25320Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
25330Sstevel@tonic-gate     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
25340Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
25350Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
25360Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
25370Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
25380Sstevel@tonic-gate                               /*    -----                                     */
25390Sstevel@tonic-gate                               /*    0963B                                     */
25400Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
25410Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
25420Sstevel@tonic-gate     {0x22, 0x22, 0x26, 0x26}, /* .densities       Density codes [Note 1]      */
25430Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
25440Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
25450Sstevel@tonic-gate   },
25460Sstevel@tonic-gate 
25470Sstevel@tonic-gate   /*
25480Sstevel@tonic-gate    * Tandberg SLR5 (SMI firmware).
25490Sstevel@tonic-gate    *
25500Sstevel@tonic-gate    *     NOTES
25510Sstevel@tonic-gate    *     -----
25520Sstevel@tonic-gate    *  o The inquiry string for this drive is actually padded with blanks, but
25530Sstevel@tonic-gate    *    we only check the first 13 characters so that this will act as a default
25540Sstevel@tonic-gate    *    to cover other revisions of firmware on SLR5s which may show up.
25550Sstevel@tonic-gate    *
25560Sstevel@tonic-gate    * [1] The density code entry requires four values, even if there are less
25570Sstevel@tonic-gate    *     than four values for the drive.
25580Sstevel@tonic-gate    * [2] The Tandberg SLR5 has only one speed (if the driver ever cares).
25590Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
25600Sstevel@tonic-gate    */
25610Sstevel@tonic-gate   {                           /* Structure member Description                 */
25620Sstevel@tonic-gate                               /* ---------------- -----------                 */
25630Sstevel@tonic-gate     "Tandberg 8 Gig QIC",     /* .name            Display ("pretty") name     */
25640Sstevel@tonic-gate     13,                       /* .length          Length of next item...      */
25650Sstevel@tonic-gate     "TANDBERG SLR5",          /* .vid             Vendor-product ID string    */
25660Sstevel@tonic-gate     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
25670Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
25680Sstevel@tonic-gate                               /* .options         Drive option flags:         */
25690Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
25700Sstevel@tonic-gate     ST_QIC             |      /*    00002           QIC tape device           */
25710Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
25720Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
25730Sstevel@tonic-gate     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
25740Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
25750Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
25760Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
25770Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
25780Sstevel@tonic-gate                               /*    -----                                     */
25790Sstevel@tonic-gate                               /*    0963B                                     */
25800Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
25810Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
25820Sstevel@tonic-gate     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
25830Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
25840Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
25850Sstevel@tonic-gate   },
25860Sstevel@tonic-gate 
25870Sstevel@tonic-gate   /*
25880Sstevel@tonic-gate    * Tandberg 4100 QIC
25890Sstevel@tonic-gate    *
25900Sstevel@tonic-gate    *     NOTES
25910Sstevel@tonic-gate    *     -----
25920Sstevel@tonic-gate    *  o This is an unsupported drive.
25930Sstevel@tonic-gate    *
25940Sstevel@tonic-gate    * [1] The Tandberg 4100 uses 0 or the "default" density code.
25950Sstevel@tonic-gate    * [2] The Tandberg 4100 has only one speed (if the driver ever cares).
25960Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
25970Sstevel@tonic-gate    */
25980Sstevel@tonic-gate   {                           /* Structure member Description                 */
25990Sstevel@tonic-gate                               /* ---------------- -----------                 */
26000Sstevel@tonic-gate     "Tandberg 4100 QIC",      /* .name            Display ("pretty") name     */
26010Sstevel@tonic-gate     13,                       /* .length          Length of next item...      */
26020Sstevel@tonic-gate     "TANDBERG 4100",          /* .vid             Vendor-product ID string    */
26030Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
26040Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
26050Sstevel@tonic-gate                               /* .options         Drive option flags:         */
26060Sstevel@tonic-gate     ST_QIC        |           /*    00002           QIC tape device           */
26070Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
26080Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
26090Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
26100Sstevel@tonic-gate     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
26110Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
26120Sstevel@tonic-gate                               /*    -----                                     */
26130Sstevel@tonic-gate                               /*    0063A                                     */
26140Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
26150Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
26160Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
26170Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
26180Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
26190Sstevel@tonic-gate   },
26200Sstevel@tonic-gate 
26210Sstevel@tonic-gate   /*
26220Sstevel@tonic-gate    * Tandberg 4200 QIC
26230Sstevel@tonic-gate    *
26240Sstevel@tonic-gate    *     NOTES
26250Sstevel@tonic-gate    *     -----
26260Sstevel@tonic-gate    *  o This is an unsupported drive.
26270Sstevel@tonic-gate    *
26280Sstevel@tonic-gate    * [1] The Tandberg 4200 uses 0 or the "default" density code.
26290Sstevel@tonic-gate    * [2] The Tandberg 4200 has only one speed (if the driver ever cares).
26300Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
26310Sstevel@tonic-gate    */
26320Sstevel@tonic-gate   {                           /* Structure member Description                 */
26330Sstevel@tonic-gate                               /* ---------------- -----------                 */
26340Sstevel@tonic-gate     "Tandberg 4200 QIC",      /* .name            Display ("pretty") name     */
26350Sstevel@tonic-gate     13,                       /* .length          Length of next item...      */
26360Sstevel@tonic-gate     "TANDBERG 4200",          /* .vid             Vendor-product ID string    */
26370Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
26380Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
26390Sstevel@tonic-gate                               /* .options         Drive option flags:         */
26400Sstevel@tonic-gate     ST_QIC        |           /*    00002           QIC tape device           */
26410Sstevel@tonic-gate     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
26420Sstevel@tonic-gate     ST_BSR        |           /*    00010           Supports SPACE block rev  */
26430Sstevel@tonic-gate     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
26440Sstevel@tonic-gate     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
26450Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
26460Sstevel@tonic-gate                               /*    -----                                     */
26470Sstevel@tonic-gate                               /*    0063A                                     */
26480Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
26490Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
26500Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
26510Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
26520Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
26530Sstevel@tonic-gate   },
26540Sstevel@tonic-gate 
26550Sstevel@tonic-gate   /*
26560Sstevel@tonic-gate    * Tandberg QIC 2.5 Gig Tape Drive
26570Sstevel@tonic-gate    *
26580Sstevel@tonic-gate    *     NOTES
26590Sstevel@tonic-gate    *     -----
26600Sstevel@tonic-gate    * [1] The TDC 4200 uses 0 or the "default" density code.
26610Sstevel@tonic-gate    * [2] The TDC 4200 has only one speed (if the driver ever cares).
26620Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
26630Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
26640Sstevel@tonic-gate    *     is only supported in 2.5.1.
26650Sstevel@tonic-gate    */
26660Sstevel@tonic-gate   {                           /* Structure member Description                 */
26670Sstevel@tonic-gate                               /* ---------------- -----------                 */
26680Sstevel@tonic-gate     "Tandberg QIC 2.5 Gig Tape Drive",
26690Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
26700Sstevel@tonic-gate     16,                       /* .length          Length of next item...      */
26710Sstevel@tonic-gate     "TANDBERG TDC 420*",      /* .vid             Vendor-product ID string    */
26720Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
26730Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
26740Sstevel@tonic-gate                               /* .options         Drive option flags:         */
26750Sstevel@tonic-gate     ST_VARIABLE          |    /*    00001           Supports variable length  */
26760Sstevel@tonic-gate     ST_QIC               |    /*    00002           QIC tape device           */
26770Sstevel@tonic-gate     ST_BSF               |    /*    00008           Supports SPACE block fwd  */
26780Sstevel@tonic-gate     ST_BSR               |    /*    00010           Supports SPACE block rev  */
26790Sstevel@tonic-gate     ST_LONG_ERASE        |    /*    00020           Needs extra time to erase */
26800Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE  |    /*    00040           Autodensity override flag */
26810Sstevel@tonic-gate     ST_KNOWS_EOD         |    /*    00200           Recognizes end-of-data    */
26820Sstevel@tonic-gate     ST_UNLOADABLE        |    /*    00400           Driver can be unloaded    */
26830Sstevel@tonic-gate     ST_LONG_TIMEOUTS     |    /*    01000           More time for some ops    */
26840Sstevel@tonic-gate     ST_BUFFERED_WRITES   |    /*    04000           [Note 4]                  */
26850Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
26860Sstevel@tonic-gate                               /*    -----                                     */
26870Sstevel@tonic-gate                               /*    0D67B                                     */
26880Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
26890Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
26900Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
26910Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density (.densities[x])             */
26920Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
26930Sstevel@tonic-gate   },
26940Sstevel@tonic-gate 
26950Sstevel@tonic-gate   /*
26960Sstevel@tonic-gate    * Tandberg MLR1 QIC
26970Sstevel@tonic-gate    *
26980Sstevel@tonic-gate    *     NOTES
26990Sstevel@tonic-gate    *     -----
27000Sstevel@tonic-gate    * [1] The MLR1 uses 0 or the "default" density code.
27010Sstevel@tonic-gate    * [2] The MLR1 has only one speed (if the driver ever cares).
27020Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
27030Sstevel@tonic-gate    * [4] Data is buffered in the driver and pre-acked to the application. This
27040Sstevel@tonic-gate    *     is only supported in 2.5.1.
27050Sstevel@tonic-gate    */
27060Sstevel@tonic-gate   {                           /* Structure member Description                 */
27070Sstevel@tonic-gate                               /* ---------------- -----------                 */
27080Sstevel@tonic-gate     "Tandberg MLR1 QIC",      /* .name            Display ("pretty") name     */
27090Sstevel@tonic-gate     12,                       /* .length          Length of next item...      */
27100Sstevel@tonic-gate     "TANDBERGMLR1",           /* .vid             Vendor-product ID string    */
27110Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
27120Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
27130Sstevel@tonic-gate                               /* .options         Drive option flags:         */
27140Sstevel@tonic-gate     ST_QIC            |       /*    00002         QIC tape device             */
27150Sstevel@tonic-gate     ST_BSF            |       /*    00008         Supports SPACE block fwd    */
27160Sstevel@tonic-gate     ST_BSR            |       /*    00010         Supports SPACE block rev    */
27170Sstevel@tonic-gate     ST_LONG_ERASE     |       /*    00020         Needs extra time to erase   */
27180Sstevel@tonic-gate     ST_KNOWS_EOD      |       /*    00200         Recognizes end-of-data      */
27190Sstevel@tonic-gate     ST_UNLOADABLE     |       /*    00400         Driver can be unloaded      */
27200Sstevel@tonic-gate     ST_BUFFERED_WRITES,       /*    04000         [Note 4]                    */
27210Sstevel@tonic-gate                               /*    -----                                     */
27220Sstevel@tonic-gate                               /*    0463A                                     */
27230Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
27240Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
27250Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
27260Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density (.densities[x])             */
27270Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
27280Sstevel@tonic-gate   },
27290Sstevel@tonic-gate 
27300Sstevel@tonic-gate   /*
27310Sstevel@tonic-gate    * Tandberg MLR3 QIC
27320Sstevel@tonic-gate    *
27330Sstevel@tonic-gate    *     NOTES
27340Sstevel@tonic-gate    *     -----
27350Sstevel@tonic-gate    * [1] The density code entry requires four values, even if there are less
27360Sstevel@tonic-gate    *     than four values for the drive.
27370Sstevel@tonic-gate    * [2] The MLR3 has only one speed (if the driver ever cares).
27380Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
27390Sstevel@tonic-gate    */
27400Sstevel@tonic-gate   {                           /* Structure member Description                 */
27410Sstevel@tonic-gate                               /* ---------------- -----------                 */
27420Sstevel@tonic-gate     "Tandberg 50 Gig QIC",    /* .name            Display ("pretty") name     */
27430Sstevel@tonic-gate     12,                       /* .length          Length of next item...      */
27440Sstevel@tonic-gate     "TANDBERGMLR3",           /* .vid             Vendor-product ID string    */
27450Sstevel@tonic-gate     MT_ISTAND25G,             /* .type            Numeric type (cf. mtio.h)   */
27460Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
27470Sstevel@tonic-gate                               /* .options         Drive option flags:         */
27480Sstevel@tonic-gate     ST_VARIABLE        |      /*    00001           Supports variable length  */
27490Sstevel@tonic-gate     ST_QIC             |      /*    00002           QIC tape device           */
27500Sstevel@tonic-gate     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
27510Sstevel@tonic-gate     ST_BSR             |      /*    00010           Supports SPACE block rev  */
27520Sstevel@tonic-gate     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
27530Sstevel@tonic-gate     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
27540Sstevel@tonic-gate     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
27550Sstevel@tonic-gate     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
27560Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
27570Sstevel@tonic-gate                               /*    -----                                     */
27580Sstevel@tonic-gate                               /*    0963B                                     */
27590Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
27600Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
27610Sstevel@tonic-gate     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
27620Sstevel@tonic-gate     MT_DENSITY3,              /* .default_density (.densities[x])             */
27630Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
27640Sstevel@tonic-gate   },
27650Sstevel@tonic-gate 
27660Sstevel@tonic-gate   /*
27670Sstevel@tonic-gate    * WangDAT 3.81mm cartridge
27680Sstevel@tonic-gate    *
27690Sstevel@tonic-gate    *     NOTES
27700Sstevel@tonic-gate    *     -----
27710Sstevel@tonic-gate    *  o This is an unsupported drive.
27720Sstevel@tonic-gate    *
27730Sstevel@tonic-gate    * [1] The WangDAT 3.81mm uses 0 or the "default" density code.
27740Sstevel@tonic-gate    * [2] The WangDAT 3.81mm has only one speed (if the driver ever cares).
27750Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
27760Sstevel@tonic-gate    */
27770Sstevel@tonic-gate   {                           /* Structure member Description                 */
27780Sstevel@tonic-gate                               /* ---------------- -----------                 */
27790Sstevel@tonic-gate     "Wang DAT 3.81 Helical Scan",
27800Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
27810Sstevel@tonic-gate     7,                        /* .length          Length of next item...      */
27820Sstevel@tonic-gate     "WangDAT",                /* .vid             Vendor-product ID string    */
27830Sstevel@tonic-gate     ST_TYPE_WANGDAT,          /* .type            Numeric type (cf. mtio.h)   */
27840Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
27850Sstevel@tonic-gate                               /* .options         Drive option flags:         */
27860Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
27870Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
27880Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
27890Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
27900Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
27910Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
27920Sstevel@tonic-gate                               /*    -----                                     */
27930Sstevel@tonic-gate                               /*    00659                                     */
27940Sstevel@tonic-gate     5000,                     /* .max_rretries    [Note 3]                    */
27950Sstevel@tonic-gate     5000,                     /* .max_wretries    [Note 3]                    */
27960Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
27970Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
27980Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
27990Sstevel@tonic-gate   },
28000Sstevel@tonic-gate 
28010Sstevel@tonic-gate   /*
28020Sstevel@tonic-gate    * Wangtek QIC-150 1/4" cartridge
28030Sstevel@tonic-gate    *
28040Sstevel@tonic-gate    *     NOTES
28050Sstevel@tonic-gate    *     -----
28060Sstevel@tonic-gate    *  o This is an unsupported drive.
28070Sstevel@tonic-gate    *
28080Sstevel@tonic-gate    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
28090Sstevel@tonic-gate    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
28100Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
28110Sstevel@tonic-gate    */
28120Sstevel@tonic-gate   {                           /* Structure member Description                 */
28130Sstevel@tonic-gate                               /* ---------------- -----------                 */
28140Sstevel@tonic-gate     "Wangtek QIC-150",        /* .name            Display ("pretty") name     */
28150Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
28160Sstevel@tonic-gate     "WANGTEK 5150ES",         /* .vid             Vendor-product ID string    */
28170Sstevel@tonic-gate     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
28180Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
28190Sstevel@tonic-gate                               /* .options         Drive option flags:         */
28200Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
28210Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
28220Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
28230Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
28240Sstevel@tonic-gate                               /*    -----                                     */
28250Sstevel@tonic-gate                               /*    00642                                     */
28260Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
28270Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
28280Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
28290Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
28300Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
28310Sstevel@tonic-gate   },
28320Sstevel@tonic-gate 
28330Sstevel@tonic-gate   /*
28340Sstevel@tonic-gate    * Wangtek 4mm RDAT drive
28350Sstevel@tonic-gate    *
28360Sstevel@tonic-gate    *     NOTES
28370Sstevel@tonic-gate    *     -----
28380Sstevel@tonic-gate    *  o This is an unsupported drive.
28390Sstevel@tonic-gate    *
28400Sstevel@tonic-gate    *  o This entry uses a shortened Vendor-product ID string for the
28410Sstevel@tonic-gate    *    INQUIRY match.
28420Sstevel@tonic-gate    *
28430Sstevel@tonic-gate    * [1] The Wangtek 4mm RDAT uses 0 or the "default" density code.
28440Sstevel@tonic-gate    * [2] The Wangtek 4mm RDAT has only one speed (if the driver ever cares).
28450Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
28460Sstevel@tonic-gate    */
28470Sstevel@tonic-gate   {                           /* Structure member Description                 */
28480Sstevel@tonic-gate                               /* ---------------- -----------                 */
28490Sstevel@tonic-gate     "Wangtek 4mm Helical Scan",
28500Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
28510Sstevel@tonic-gate     14,                       /* .length          Length of next item...      */
28520Sstevel@tonic-gate     "WANGTEK 6130-H*",        /* .vid             Vendor-product ID string    */
28530Sstevel@tonic-gate     ST_TYPE_WANGTHS,          /* .type            Numeric type (cf. mtio.h)   */
28540Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
28550Sstevel@tonic-gate                               /* .options         Drive option flags:         */
28560Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
28570Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
28580Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
28590Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
28600Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
28610Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
28620Sstevel@tonic-gate                               /*    -----                                     */
28630Sstevel@tonic-gate                               /*    00659                                     */
28640Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
28650Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
28660Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
28670Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
28680Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
28690Sstevel@tonic-gate   },
28700Sstevel@tonic-gate 
28710Sstevel@tonic-gate   /*
28720Sstevel@tonic-gate    * Wangtek QIC-150 1/4" cartridge
28730Sstevel@tonic-gate    *
28740Sstevel@tonic-gate    *     NOTES
28750Sstevel@tonic-gate    *     -----
28760Sstevel@tonic-gate    *  o This is an unsupported drive.
28770Sstevel@tonic-gate    *
28780Sstevel@tonic-gate    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
28790Sstevel@tonic-gate    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
28800Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
28810Sstevel@tonic-gate    */
28820Sstevel@tonic-gate   {                           /* Structure member Description                 */
28830Sstevel@tonic-gate                               /* ---------------- -----------                 */
28840Sstevel@tonic-gate     "Wangtek 5525ES SCSI",    /* .name            Display ("pretty") name     */
28850Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
28860Sstevel@tonic-gate     "WANGTEK 5525ES SCSI",    /* .vid             Vendor-product ID string    */
28870Sstevel@tonic-gate     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
28880Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
28890Sstevel@tonic-gate                               /* .options         Drive option flags:         */
28900Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
28910Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
28920Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
28930Sstevel@tonic-gate     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
28940Sstevel@tonic-gate     ST_AUTODEN_OVERRIDE |     /*    00040           Autdensity override flag  */
28950Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
28960Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
28970Sstevel@tonic-gate                               /*    -----                                     */
28980Sstevel@tonic-gate                               /*    0067A                                     */
28990Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
29000Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
29010Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
29020Sstevel@tonic-gate     MT_DENSITY2,              /* .default_density (.densities[x])             */
29030Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
29040Sstevel@tonic-gate   },
29050Sstevel@tonic-gate 
29060Sstevel@tonic-gate   /*
29070Sstevel@tonic-gate    * [1] The Ecrix VXA-1 has only one density at this time,
29080Sstevel@tonic-gate    *     Compression is controlled via the Device Configuration
29090Sstevel@tonic-gate    *     mode page.
29100Sstevel@tonic-gate    * [2] The Ecrix VXA-1 is a veriable speed device. The drive determines
29110Sstevel@tonic-gate    *     the optimum speed. (if the driver ever cares).
29120Sstevel@tonic-gate    */
29130Sstevel@tonic-gate   {                           /* Structure member Description                 */
29140Sstevel@tonic-gate                               /* ---------------- -----------                 */
29150Sstevel@tonic-gate     "Ecrix VXA-1",            /* .name            Display ("pretty") name     */
29160Sstevel@tonic-gate     13,                       /* .length          Length of next item...      */
29170Sstevel@tonic-gate     "ECRIX   VXA-1",          /* .vid             Vendor-product ID string    */
29180Sstevel@tonic-gate     MT_ISOTHER,               /* .type            Numeric type (cf. mtio.h)   */
29190Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
29200Sstevel@tonic-gate                               /* .options         Drive option flags:         */
29210Sstevel@tonic-gate     ST_VARIABLE             | /*    00001           Supports variable length  */
29220Sstevel@tonic-gate     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
29230Sstevel@tonic-gate     ST_BSR                  | /*    00010           Supports SPACE block rev  */
29240Sstevel@tonic-gate     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
29250Sstevel@tonic-gate     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
29260Sstevel@tonic-gate     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
29270Sstevel@tonic-gate     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
29280Sstevel@tonic-gate     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
29290Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
29300Sstevel@tonic-gate     ST_MODE_SEL_COMP        | /*    10000         Mode Select to enable comp  */
29310Sstevel@tonic-gate     ST_CLN_TYPE_1,            /* 10000000         Asks to be cleaned this way */
29320Sstevel@tonic-gate                               /* --------                                     */
29330Sstevel@tonic-gate                               /* 10019E39                                     */
29340Sstevel@tonic-gate     -1,                       /* .max_rretries                                */
29350Sstevel@tonic-gate     -1,                       /* .max_wretries                                */
29360Sstevel@tonic-gate     {0x80, 0x80, 0x80, 0x80}, /* .densities       Density codes [Note 1]      */
29370Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
29380Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
29390Sstevel@tonic-gate   },
29400Sstevel@tonic-gate 
29410Sstevel@tonic-gate   /*
29423722Syl194034    * [1] The IBM Ultrium Gen 4 "OEM" version has two densites at this time,
29433722Syl194034    *     One for Gen 3 0x44, One for Gen 4 0x46.
29443722Syl194034    *     This drive is configured with ST_KNOWS_MEDIA.
29453722Syl194034    *     That means that it will look at the mediatype from the mode sense
29463722Syl194034    *     to select the density code. The compression will be selected based
29473722Syl194034    *     on the minor node the user opened.
29483722Syl194034    * [2] The IBM LTO reports a medium type that is used to select the density.
29493722Syl194034    */
29503722Syl194034   {                           /* Structure member Description                 */
29513722Syl194034                               /* ---------------- -----------                 */
29523722Syl194034     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
29533722Syl194034     19,                       /* .length          Length of next item...      */
29543722Syl194034     "IBM     ULTRIUM-TD4",    /* .vid             Vendor-product ID string    */
29553722Syl194034     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
29563722Syl194034     0,                        /* .bsize           Block size (0 = variable)   */
29573722Syl194034                               /* .options         Drive option flags:         */
29583722Syl194034     ST_VARIABLE         |     /*  0000001           Supports variable length  */
29593722Syl194034     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
29603722Syl194034     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
29613722Syl194034     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
29623722Syl194034     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
29633722Syl194034     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
29643722Syl194034     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
29653722Syl194034     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
29663722Syl194034     ST_WORMABLE,              /*  1000000         Is WORM capable             */
29673722Syl194034                               /*  -------                                     */
29683722Syl194034                               /*  1818619                                     */
29693722Syl194034     -1,                       /* .max_rretries    Not used any more.          */
29703722Syl194034     -1,                       /* .max_wretries    Not used any more.          */
29713722Syl194034     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
29723722Syl194034     MT_DENSITY4,              /* .default_density (.densities[x])             */
29733722Syl194034     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
29743722Syl194034     MINUTES(1),               /* .non_motion_time                             */
29753722Syl194034     MINUTES(23),              /* .io_time                                     */
29763722Syl194034     MINUTES(9),               /* .rewind_time                                 */
29773722Syl194034     MINUTES(183),             /* .space_time      worst case directory invalid*/
29783722Syl194034     MINUTES(9),               /* .load_time                                   */
29793722Syl194034     MINUTES(13),              /* .unload_time                                 */
29803722Syl194034     MINUTES(180)              /* .erase_time                                  */
29813722Syl194034   },
29823722Syl194034 
29833722Syl194034   /*
29843722Syl194034    * [1] The IBM Ultrium Gen 4 "IBM" version has two densites at this time,
29853722Syl194034    *     One for Gen 3 0x44, one for Gen 4 0x46.
29863722Syl194034    *     This drive is configured with ST_KNOWS_MEDIA.
29873722Syl194034    *     That means that it will look at the mediatype from the mode sense
29883722Syl194034    *     to select the density code. The compression will be selected based
29893722Syl194034    *     on the minor node the user opened.
29903722Syl194034    * [2] The IBM LTO reports a medium type that is used to select the density.
29913722Syl194034    */
29923722Syl194034   {                           /* Structure member Description                 */
29933722Syl194034                               /* ---------------- -----------                 */
29943722Syl194034     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
29953722Syl194034     19,                       /* .length          Length of next item...      */
29963722Syl194034     "IBM     ULT3580-TD4",    /* .vid             Vendor-product ID string    */
29973722Syl194034     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
29983722Syl194034     0,                        /* .bsize           Block size (0 = variable)   */
29993722Syl194034                               /* .options         Drive option flags:         */
30003722Syl194034     ST_VARIABLE         |     /*  0000001           Supports variable length  */
30013722Syl194034     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
30023722Syl194034     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
30033722Syl194034     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
30043722Syl194034     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
30053722Syl194034     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
30063722Syl194034     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
30073722Syl194034     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
30083722Syl194034     ST_WORMABLE,              /*  1000000         Is WORM capable             */
30093722Syl194034                               /*  -------                                     */
30103722Syl194034                               /*  1818619                                     */
30113722Syl194034     -1,                       /* .max_rretries    Not used any more.          */
30123722Syl194034     -1,                       /* .max_wretries    Not used any more.          */
30133722Syl194034     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
30143722Syl194034     MT_DENSITY4,              /* .default_density (.densities[x])             */
30153722Syl194034     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
30163722Syl194034     MINUTES(1),               /* .non_motion_time                             */
30173722Syl194034     MINUTES(23),              /* .io_time                                     */
30183722Syl194034     MINUTES(9),               /* .rewind_time                                 */
30193722Syl194034     MINUTES(183),             /* .space_time      worst case directory invalid*/
30203722Syl194034     MINUTES(9),               /* .load_time                                   */
30213722Syl194034     MINUTES(13),              /* .unload_time                                 */
30223722Syl194034     MINUTES(180)              /* .erase_time                                  */
30233722Syl194034   },
30243722Syl194034 
30253722Syl194034   /*
30260Sstevel@tonic-gate    * [1] The IBM Ultrium Gen 3 "OEM" version has three densites at this time,
30270Sstevel@tonic-gate    *     One for Gen 1 0x40, One for Gen 2 0x42 and for Gen 3 0x44.
30280Sstevel@tonic-gate    *     This drive is configured with ST_KNOWS_MEDIA.
30290Sstevel@tonic-gate    *     That means that it will look at the mediatype from the mode sense
30300Sstevel@tonic-gate    *     to select the density code. The compression will be selected based
30310Sstevel@tonic-gate    *     on the minor node the user opened.
30320Sstevel@tonic-gate    * [2] The IBM LTO reports a medium type that is used to select the density.
30330Sstevel@tonic-gate    */
30340Sstevel@tonic-gate   {                           /* Structure member Description                 */
30350Sstevel@tonic-gate                               /* ---------------- -----------                 */
30360Sstevel@tonic-gate     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
30370Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
30380Sstevel@tonic-gate     "IBM     ULTRIUM-TD3",    /* .vid             Vendor-product ID string    */
30390Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
30400Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
30410Sstevel@tonic-gate                               /* .options         Drive option flags:         */
30422537Srralphs     ST_VARIABLE         |     /*  0000001           Supports variable length  */
30432537Srralphs     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
30442537Srralphs     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
30452537Srralphs     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
30462537Srralphs     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
30472537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
30482537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
30492537Srralphs     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
30502537Srralphs     ST_WORMABLE,              /*  1000000         Is WORM capable             */
30512537Srralphs                               /*  -------                                     */
30522537Srralphs                               /*  1818619                                     */
30530Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
30540Sstevel@tonic-gate     -1,                       /* .max_wretries    Not used any more.          */
30550Sstevel@tonic-gate     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
30560Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
30570Sstevel@tonic-gate     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
30580Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_time                             */
30590Sstevel@tonic-gate     MINUTES(18),              /* .io_time                                     */
30600Sstevel@tonic-gate     MINUTES(9),               /* .rewind_time                                 */
30610Sstevel@tonic-gate     MINUTES(165),             /* .space_time      worst case directory invalid*/
30620Sstevel@tonic-gate     MINUTES(9),               /* .load_time                                   */
30630Sstevel@tonic-gate     MINUTES(12),              /* .unload_time                                 */
30640Sstevel@tonic-gate     MINUTES(160)              /* .erase_time                                  */
30650Sstevel@tonic-gate   },
30660Sstevel@tonic-gate 
30670Sstevel@tonic-gate   /*
30680Sstevel@tonic-gate    * [1] The IBM Ultrium Gen 3 "IBM" version has three densites at this time,
30690Sstevel@tonic-gate    *     One for Gen 1 0x40, One for Gen 2 0x42 and Gen 3 0x44.
30700Sstevel@tonic-gate    *     This drive is configured with ST_KNOWS_MEDIA.
30710Sstevel@tonic-gate    *     That means that it will look at the mediatype from the mode sense
30720Sstevel@tonic-gate    *     to select the density code. The compression will be selected based
30730Sstevel@tonic-gate    *     on the minor node the user opened.
30740Sstevel@tonic-gate    * [2] The IBM LTO reports a medium type that is used to select the density.
30750Sstevel@tonic-gate    */
30760Sstevel@tonic-gate   {                           /* Structure member Description                 */
30770Sstevel@tonic-gate                               /* ---------------- -----------                 */
30780Sstevel@tonic-gate     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
30790Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
30800Sstevel@tonic-gate     "IBM     ULT3580-TD3",    /* .vid             Vendor-product ID string    */
30810Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
30820Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
30830Sstevel@tonic-gate                               /* .options         Drive option flags:         */
30842537Srralphs     ST_VARIABLE         |     /*  0000001           Supports variable length  */
30852537Srralphs     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
30862537Srralphs     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
30872537Srralphs     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
30882537Srralphs     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
30892537Srralphs     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
30902537Srralphs     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
30912537Srralphs     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
30922537Srralphs     ST_WORMABLE,              /*  1000000         Is WORM capable             */
30932537Srralphs                               /*  -------                                     */
30942537Srralphs                               /*  1818619                                     */
30950Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
30960Sstevel@tonic-gate     -1,                       /* .max_wretries    Not used any more.          */
30970Sstevel@tonic-gate     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
30980Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
30990Sstevel@tonic-gate     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
31000Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_time                             */
31010Sstevel@tonic-gate     MINUTES(18),              /* .io_time                                     */
31020Sstevel@tonic-gate     MINUTES(9),               /* .rewind_time                                 */
31030Sstevel@tonic-gate     MINUTES(165),             /* .space_time      worst case directory invalid*/
31040Sstevel@tonic-gate     MINUTES(9),               /* .load_time                                   */
31050Sstevel@tonic-gate     MINUTES(12),              /* .unload_time                                 */
31060Sstevel@tonic-gate     MINUTES(160)              /* .erase_time                                  */
31070Sstevel@tonic-gate   },
31080Sstevel@tonic-gate 
31090Sstevel@tonic-gate   /*
31100Sstevel@tonic-gate    * [1] The IBM Ultrium Gen 2 "OEM" version has two densites at this time,
31110Sstevel@tonic-gate    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
31120Sstevel@tonic-gate    *     Selects which density code is used but this documents the codes
31130Sstevel@tonic-gate    *     for those who care to know.
31140Sstevel@tonic-gate    *     Compression is controlled via the Compression mode page.
31150Sstevel@tonic-gate    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
31160Sstevel@tonic-gate    */
31170Sstevel@tonic-gate   {                           /* Structure member Description                 */
31180Sstevel@tonic-gate                               /* ---------------- -----------                 */
31190Sstevel@tonic-gate     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
31200Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
31210Sstevel@tonic-gate     "IBM     ULTRIUM-TD2",    /* .vid             Vendor-product ID string    */
31220Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
31230Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
31240Sstevel@tonic-gate                               /* .options         Drive option flags:         */
31250Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
31260Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
31270Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
31280Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
31290Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
31300Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
31310Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
31320Sstevel@tonic-gate                               /*    -----                                     */
31330Sstevel@tonic-gate                               /*    18619                                     */
31340Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
31350Sstevel@tonic-gate     -1,                       /* .max_wretries    Not used any more.          */
31360Sstevel@tonic-gate     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
31370Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
31380Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
31390Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_time                             */
31400Sstevel@tonic-gate     MINUTES(18),              /* .io_time                                     */
31410Sstevel@tonic-gate     MINUTES(9),               /* .rewind_time                                 */
31420Sstevel@tonic-gate     MINUTES(151),             /* .space_time      worst case directory invalid*/
31430Sstevel@tonic-gate     MINUTES(12),              /* .load_time                                   */
31440Sstevel@tonic-gate     MINUTES(11),              /* .unload_time                                 */
31450Sstevel@tonic-gate     MINUTES(151)              /* .erase_time                                  */
31460Sstevel@tonic-gate   },
31470Sstevel@tonic-gate 
31480Sstevel@tonic-gate   /*
31490Sstevel@tonic-gate    * [1] The IBM Ultrium Gen 2 "IBM" version has two densites at this time,
31500Sstevel@tonic-gate    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
31510Sstevel@tonic-gate    *     Selects which density code is used but this documents the codes
31520Sstevel@tonic-gate    *     for those who care to know.
31530Sstevel@tonic-gate    *     Compression is controlled via the Compression mode page.
31540Sstevel@tonic-gate    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
31550Sstevel@tonic-gate    */
31560Sstevel@tonic-gate   {                           /* Structure member Description                 */
31570Sstevel@tonic-gate                               /* ---------------- -----------                 */
31580Sstevel@tonic-gate     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
31590Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
31600Sstevel@tonic-gate     "IBM     ULT3580-TD2",    /* .vid             Vendor-product ID string    */
31610Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
31620Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
31630Sstevel@tonic-gate                               /* .options         Drive option flags:         */
31640Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
31650Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
31660Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
31670Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
31680Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
31690Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
31700Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
31710Sstevel@tonic-gate                               /*    -----                                     */
31720Sstevel@tonic-gate                               /*    18619                                     */
31730Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
31740Sstevel@tonic-gate     -1,                       /* .max_wretries    Not used any more.          */
31750Sstevel@tonic-gate     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
31760Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
31770Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
31780Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_time                             */
31790Sstevel@tonic-gate     MINUTES(18),              /* .io_time                                     */
31800Sstevel@tonic-gate     MINUTES(9),               /* .rewind_time                                 */
31810Sstevel@tonic-gate     MINUTES(151),             /* .space_time      worst case directory invalid*/
31820Sstevel@tonic-gate     MINUTES(12),              /* .load_time                                   */
31830Sstevel@tonic-gate     MINUTES(11),              /* .unload_time                                 */
31840Sstevel@tonic-gate     MINUTES(151)              /* .erase_time                                  */
31850Sstevel@tonic-gate   },
31860Sstevel@tonic-gate 
31870Sstevel@tonic-gate   /*
31880Sstevel@tonic-gate    * [1] The IBM Ultrium has only one density at this time,
31890Sstevel@tonic-gate    *     Compression is controlled via the Device Configuration mode page.
31900Sstevel@tonic-gate    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
31910Sstevel@tonic-gate    */
31920Sstevel@tonic-gate   {                           /* Structure member Description                 */
31930Sstevel@tonic-gate                               /* ---------------- -----------                 */
31940Sstevel@tonic-gate     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
31950Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
31960Sstevel@tonic-gate     "IBM     ULTRIUM-TD1",    /* .vid             Vendor-product ID string    */
31970Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
31980Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
31990Sstevel@tonic-gate                               /* .options         Drive option flags:         */
32000Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
32010Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
32020Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
32030Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
32040Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
32050Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
32060Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
32070Sstevel@tonic-gate                               /*    -----                                     */
32080Sstevel@tonic-gate                               /*    18619                                     */
32090Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
32100Sstevel@tonic-gate     -1,                       /* .max_wretries    Not used any more.          */
32110Sstevel@tonic-gate     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
32120Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
32130Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
32140Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_time                             */
32150Sstevel@tonic-gate     MINUTES(18),              /* .io_time                                     */
32160Sstevel@tonic-gate     MINUTES(8),               /* .rewind_time                                 */
32170Sstevel@tonic-gate     MINUTES(173),             /* .space_time      worst case directory invalid*/
32180Sstevel@tonic-gate     MINUTES(11),              /* .load_time                                   */
32190Sstevel@tonic-gate     MINUTES(11),              /* .unload_time                                 */
32200Sstevel@tonic-gate     MINUTES(173)              /* .erase_time                                  */
32210Sstevel@tonic-gate   },
32220Sstevel@tonic-gate 
32230Sstevel@tonic-gate   /*
32240Sstevel@tonic-gate    * This is the same drive as the above except for the inquiry string and
32250Sstevel@tonic-gate    * that it is a "End User Version".
32260Sstevel@tonic-gate    * [1] The IBM Ultrium has only one density at this time,
32270Sstevel@tonic-gate    *     Compression is controlled via the Device Configuration mode page.
32280Sstevel@tonic-gate    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
32290Sstevel@tonic-gate    */
32300Sstevel@tonic-gate   {                           /* Structure member Description                 */
32310Sstevel@tonic-gate                               /* ---------------- -----------                 */
32320Sstevel@tonic-gate     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
32330Sstevel@tonic-gate     19,                       /* .length          Length of next item...      */
32340Sstevel@tonic-gate     "IBM     ULT3580-TD1",    /* .vid             Vendor-product ID string    */
32350Sstevel@tonic-gate     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
32360Sstevel@tonic-gate     0,                        /* .bsize           Block size (0 = variable)   */
32370Sstevel@tonic-gate                               /* .options         Drive option flags:         */
32380Sstevel@tonic-gate     ST_VARIABLE         |     /*    00001           Supports variable length  */
32390Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
32400Sstevel@tonic-gate     ST_BSR              |     /*    00010           Supports SPACE block rev  */
32410Sstevel@tonic-gate     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
32420Sstevel@tonic-gate     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
32430Sstevel@tonic-gate     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
32440Sstevel@tonic-gate     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
32450Sstevel@tonic-gate                               /*    -----                                     */
32460Sstevel@tonic-gate                               /*    18619                                     */
32470Sstevel@tonic-gate     -1,                       /* .max_rretries    Not used any more.          */
32480Sstevel@tonic-gate     -1,                       /* .max_wretries    Not used any more.          */
32490Sstevel@tonic-gate     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
32500Sstevel@tonic-gate     MT_DENSITY4,              /* .default_density (.densities[x])             */
32510Sstevel@tonic-gate     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
32520Sstevel@tonic-gate     MINUTES(1),               /* .non_motion_time                             */
32530Sstevel@tonic-gate     MINUTES(18),              /* .io_time                                     */
32540Sstevel@tonic-gate     MINUTES(8),               /* .rewind_time                                 */
32550Sstevel@tonic-gate     MINUTES(173),             /* .space_time      worst case directory invalid*/
32560Sstevel@tonic-gate     MINUTES(11),              /* .load_time                                   */
32570Sstevel@tonic-gate     MINUTES(11),              /* .unload_time                                 */
32580Sstevel@tonic-gate     MINUTES(173)              /* .erase_time                                  */
32590Sstevel@tonic-gate   },
32600Sstevel@tonic-gate 
32610Sstevel@tonic-gate   /*
32621021Szl149053    * [1] The IBM 3592 Cartridge has only one density at this time,
32631021Szl149053    *     Compression is controlled via the Device Configuration mode page.
32641021Szl149053    * [2] The IBM 3592 Cartridge has only one speed (if the driver ever cares).
32651021Szl149053    */
32661021Szl149053   {                           /* Structure member Description                 */
32671021Szl149053                               /* ---------------- -----------                 */
32681021Szl149053     "IBM 3592 Cartridge",     /* .name            Display ("pretty") name     */
32691021Szl149053     13,                       /* .length          Length of next item...      */
32701021Szl149053     "IBM     03592",          /* .vid             Vendor-product ID string    */
32711021Szl149053     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
32721021Szl149053     0,                        /* .bsize           Block size (0 = variable)   */
32731021Szl149053                               /* .options         Drive option flags:         */
32741021Szl149053     ST_VARIABLE         |     /*    00001           Supports variable length  */
32751021Szl149053     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
32761021Szl149053     ST_BSR              |     /*    00010           Supports SPACE block rev  */
32771021Szl149053     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
32781021Szl149053     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
32791021Szl149053     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
32801021Szl149053     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
32811021Szl149053     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
32821021Szl149053                               /*    -----                                     */
32831021Szl149053                               /*    18659                                     */
32841021Szl149053     -1,                       /* .max_rretries    Not used any more.          */
32851021Szl149053     -1,                       /* .max_wretries    Not used any more.          */
32861021Szl149053     {0x51, 0x51, 0x51, 0x51}, /* .densities       Density codes [Note 1]      */
32871021Szl149053     MT_DENSITY4,              /* .default_density (.densities[x])             */
32881021Szl149053     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
32891021Szl149053     MINUTES(1),               /* .non_motion_time                             */
32901021Szl149053     MINUTES(18),              /* .io_time                                     */
32911021Szl149053     MINUTES(8),               /* .rewind_time                                 */
32921021Szl149053     MINUTES(14),              /* .space_time      worst case directory invalid*/
32931021Szl149053     MINUTES(12),              /* .load_time                                   */
32941021Szl149053     MINUTES(12),              /* .unload_time                                 */
32951021Szl149053     MINUTES(235)              /* .erase_time                                  */
32961021Szl149053   },
32971021Szl149053 
32981021Szl149053   /*
32990Sstevel@tonic-gate    * Seagate Hornet NS20 USB Travan
33000Sstevel@tonic-gate    *
33010Sstevel@tonic-gate    *     NOTES
33020Sstevel@tonic-gate    *     -----
33030Sstevel@tonic-gate    *  o This drive is not OEM'ed or qualified by Sun.
33040Sstevel@tonic-gate    *
33050Sstevel@tonic-gate    * [1] The NS20 Travan uses 0 or the "default" density code.
33060Sstevel@tonic-gate    * [2] The NS20 Travan has only one speed (if the driver ever cares).
33070Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
33080Sstevel@tonic-gate    */
33090Sstevel@tonic-gate   {                           /* Structure member Description                 */
33100Sstevel@tonic-gate                               /* ---------------- -----------                 */
33110Sstevel@tonic-gate     "Seagate Hornet NS20 Travan",
33120Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
33130Sstevel@tonic-gate     17,                       /* .length          Length of next item...      */
33140Sstevel@tonic-gate     "Seagate STT20000A",      /* .vid             Vendor-product ID string    */
33150Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
33160Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
33170Sstevel@tonic-gate                               /* .options         Drive option flags:         */
33180Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
33190Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports back SPACE file  */
33200Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
33210Sstevel@tonic-gate                               /*    -----                                     */
33220Sstevel@tonic-gate                               /*    0040A                                     */
33230Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
33240Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
33250Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
33260Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density (.densities[x])             */
33270Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
33280Sstevel@tonic-gate   },
33290Sstevel@tonic-gate 
33300Sstevel@tonic-gate 
33310Sstevel@tonic-gate   /*
33320Sstevel@tonic-gate    * Seagate Hornet Travan 40
33330Sstevel@tonic-gate    *
33340Sstevel@tonic-gate    *     NOTES
33350Sstevel@tonic-gate    *     -----
33360Sstevel@tonic-gate    *  o This drive is not OEM'ed or qualified by Sun.
33370Sstevel@tonic-gate    *
33380Sstevel@tonic-gate    * [1] The Travan uses 0 or the "default" density code.
33390Sstevel@tonic-gate    * [2] The Travan has only one speed (if the driver ever cares).
33400Sstevel@tonic-gate    * [3] max_rretries and max_wretries are driver anachronisms.
33410Sstevel@tonic-gate    */
33420Sstevel@tonic-gate   {                           /* Structure member Description                 */
33430Sstevel@tonic-gate                               /* ---------------- -----------                 */
33440Sstevel@tonic-gate     "Seagate Hornet Travan 40",
33450Sstevel@tonic-gate                               /* .name            Display ("pretty") name     */
33460Sstevel@tonic-gate     16,                       /* .length          Length of next item...      */
33470Sstevel@tonic-gate     "Seagate STT3401A",       /* .vid             Vendor-product ID string    */
33480Sstevel@tonic-gate     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
33490Sstevel@tonic-gate     512,                      /* .bsize           Block size (0 = variable)   */
33500Sstevel@tonic-gate                               /* .options         Drive option flags:         */
33510Sstevel@tonic-gate     ST_QIC              |     /*    00002           QIC tape device           */
33520Sstevel@tonic-gate     ST_BSF              |     /*    00008           Supports back SPACE file  */
33530Sstevel@tonic-gate     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
33540Sstevel@tonic-gate                               /*    -----                                     */
33550Sstevel@tonic-gate                               /*    0040A                                     */
33560Sstevel@tonic-gate     400,                      /* .max_rretries    [Note 3]                    */
33570Sstevel@tonic-gate     400,                      /* .max_wretries    [Note 3]                    */
33580Sstevel@tonic-gate     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
33590Sstevel@tonic-gate     MT_DENSITY1,              /* .default_density (.densities[x])             */
33600Sstevel@tonic-gate     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
33610Sstevel@tonic-gate   }
33620Sstevel@tonic-gate 
33630Sstevel@tonic-gate 	/* END CSTYLED */
33640Sstevel@tonic-gate 
33650Sstevel@tonic-gate };
33660Sstevel@tonic-gate 
33670Sstevel@tonic-gate 
33680Sstevel@tonic-gate const int st_ndrivetypes = (sizeof (st_drivetypes)/sizeof (st_drivetypes[0]));
3369