/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include #include #include #include #include /* * General * ------- * o MT_DENSITYx counts from 1..4, rather than 0..3. * o Some entries specify a value for the 'length' member that is * less than the actual length of the 'vid' member. This is done * intentionally to allow the comparison to succeed for different * drives. */ /* * Drive Tables. * * The structure and option definitions can be * found in . * * Note: that blocksize should be a power of two * for fixed-length recording devices. * * Note: the speed codes are unused at present. * The driver turns around whatever is reported * from the drive via the mode sense. * * Note: the read retry and write retry counts * are there to provide a limit until warning * messages are printed. * * * Note: For drives that are not in this table.... * * The first open of the device will cause a MODE SENSE command * to be sent. From that we can determine block size. If block * size is zero, than this drive is in variable-record length * mode. The driver uses the SCSI-2 specification density codes in * order to attempt to determine what kind of sequential access * device this is. This will allow determination of 1/4" cartridge, * 1/2" cartridge, some helical scan (3.81 && 8 mm cartridge) and * 1/2" reel tape devices. The driver will print what it finds and is * assuming to the console. If the device you have hooked up returns * the default density code (0) after power up, the drive cannot * determine what kind of drive it might be, so it will assume that * it is an unknown 1/4" cartridge tape (QIC). * * If the drive is determined in this way to be a 1/2" 9-track reel * type device, an attempt will be mode to put it in Variable * record length mode. * * Generic drives are assumed to support only the long erase option * and will not to be run in buffered mode. */ /* * Format for Tape Drive Entry * * Please maintain the format currently in use for defining the properties * associated with each tape drive. This format is intended to make the * entries more readable and help increase the accuracy of the entries. * See the actual entries for examples of what they should look like. * * Important points to note about the format: * * 1. The opening and closing braces are indented 2 spaces. * 2. Each line in the entry is indented 4 spaces. * 3. The numerical values and text in the .options comments are indented two * spaces in the comment block. * 4. The maximum line width is 80 columns; do not exceed this. * 5. The comment delimiters should line up, per the example. * 6. The OR symbol (|) should line up for multiple options. * 7. Hexadecimal values should be capitalized, for consistency. * 8. The leading / in the comment block header is indented 2 spaces and the * susequent *'s should all line up. * 9. Order of the entries is very important. There are several groups of * entries where the last entry in the grouping acts as a catch-all. If you * place an entry after the catch-all, it will never be used by the driver. * 10. TABs should not be used anywhere between the BEGIN CSTYLED and * END CSTYLED lines. */ /* * Supported Drive Options * * The descriptions for the supported drive options are taken from stdef.h. * * ST_VARIABLE Device supports variable length record * sizes. * ST_QIC QIC tape device. * ST_REEL 1/2-inch reel tape device. * ST_BSF Device supports backspace file as in * mt(1) bsf backspace over EOF marks. * Devices not supporting bsf will fail * with ENOTTY upon use of bsf. * ST_BSR Device supports backspace record as in * mt(1) bsr : backspace over records. If * the device does not support bsr, the st * driver emulates the action by rewinding * the tape and using forward space file * (fsf) to the correct file and then uses * forward space record (fsr) to the * correct record. * ST_LONG_ERASE Device needs a longer time than normal * to erase. * ST_AUTODEN_OVERRIDE Autodensity override flag Device can * figure out the tape density * automatically,without issuing a mode- * select/mode-sense. * ST_NOBUF Don't use buffered mode. This disables * the device's ability for buffered writes * i.e. The device acknowledges write * completion after the data is written to * the device's buffer, but before all the * data is actually written to tape. * ST_RESERVED_BIT1 Reserved bit parity while talking to it. * ST_KNOWS_EOD Device knows when EOD (End of Data) has * been reached. If the device knows EOD, * st uses fast file skipping. If it does * not know EOD, file skipping happens one * file at a time. * ST_UNLOADABLE Device will not complain if the st * driver is unloaded & loaded again; * e.g. will return the correct inquiry * string. * ST_SOFT_ERROR_REPORTING Do request or log sense on close to * report soft errors.Currently only * Exabyte and DAT drives support this * feature. * ST_LONG_TIMEOUTS Device needs 5 times longer timeouts * for normal operation. * ST_BUFFERED_WRITES The data is buffered in the driver and * pre-acked to the application. * ST_NO_RECSIZE_LIMIT For variable record size devices only. * If flag is set,then don't limit record * size to 64k as in pre-Solaris 2.4 * releases. The only limit on the record * size will be the max record size the * device can handle or the max DMA * transfer size of the machine, which ever * is smaller. Beware of incompatabilities * with tapes of pre-Solaris 2.4 OS's * written with large (>64k) block sizes, * as their true block size is a max of * approx 64k. * ST_MODE_SEL_COMP Use mode select of device configuration * page (0x10) to enable/disable * compression instead of density codes * for the "c" and "u" devices. * ST_NO_RESERVE_RELEASE For devices which do not support * RESERVE/RELEASE SCSI command. If this * is enabled then RESERVE/RELEASE would * not be used during open/close for High * Availability. * ST_READ_IGNORE_ILI This flag is only applicable to * variable block devices which support * the SILI bit option. It indicates that * the SILI bit will be ignored during * reads. * ST_READ_IGNORE_EOFS When this flag is set two EOF marks do * not indicate an EOM. This option is * only supported on 1/2" reel tapes. * ST_SHORT_FILEMARKS This option applies only to EXABYTE 8mm * tape drives which support short * filemarks. When this flag is set, short * filemarks will be used for writing * filemarks. * ST_EJECT_ON_CHANGER_FAILURE When this flag is set and the tape is * trapped in the medium changer, the * tape is automatically ejected. * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR This option applies only to IBM MAGSTAR * 3590. If this flag is set, the st * driver will retry the last cmd if the * last error cause a check condition with * error code 0x71 and sense code 0x01. */ /* * Values Corresponding To The Supported Drive Options Flags * * ST_VARIABLE 0x000001 * ST_QIC 0x000002 * ST_REEL 0x000004 * ST_BSF 0x000008 * ST_BSR 0x000010 * ST_LONG_ERASE 0x000020 * ST_AUTODEN_OVERRIDE 0x000040 * ST_NOBUF 0x000080 * ST_RESERVED_BIT1 0x000100 * ST_KNOWS_EOD 0x000200 * ST_UNLOADABLE 0x000400 * ST_SOFT_ERROR_REPORTING 0x000800 * ST_LONG_TIMEOUT 0x001000 * ST_BUFFERED_WRITES 0x004000 * ST_NO_RECSIZE_LIMIT 0x008000 * ST_MODE_SEL_COMP 0x010000 * ST_NO_RESERVE_RELEASE 0x020000 * ST_READ_IGNORE_ILI 0x040000 * ST_READ_IGNORE_EOFS 0x080000 * ST_SHORT_FILEMARKS 0x100000 * ST_EJECT_ON_CHANGER_FAILURE 0x200000 * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR 0x400000 */ const struct st_drivetype st_drivetypes[] = { /* BEGIN CSTYLED */ /* * Anritsu 1/2" reel * * NOTES * ----- * o This is an unsupported drive. * * [1] The Anritsu 1/2" reel has two density codes (or 0 for "default"). * [2] The Anritsu 1/2" reel has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Unisys 1/2\" Reel", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "ANRITSU DMT2120", /* .vid Vendor-product ID string */ ST_TYPE_ANRITSU, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_REEL | /* 00004 1/2-inch reel tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0041D */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x02, 0x03, 0x03}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Archive QIC-150 1/4" cartridge * * NOTES * ----- * o The manual for the Archive drive claims that this drive * can backspace filemarks. In practice this doens't always * seem to be the case. * [1] The QIC-150 uses 0 or "default" density. * [2] The QIC-150 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Archive QIC-150", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "ARCHIVE VIPER", /* .vid Vendor-product ID string */ ST_TYPE_ARCHIVE, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00642 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Archive Python 04106 4mm 2GB drive * * NOTES * ----- * o This is an unsupported drive. * * [1] The Python 04106 has only one density, 0x42 (or 0 for "default"). * [2] The Python 04106 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] The manufacturer recommends 0x2c ("MT_ISPYTHON") here, * even though ST_TYPE_PYTHON is recommended. For con- * sistency, let's not fight it. */ { /* Structure member Description */ /* ---------------- ----------- */ "Seagate Scorpion 24 DDS3 DAT", /* .name Display ("pretty") name */ 20, /* .length Length of next item... */ "ARCHIVE Python 04106", /* .vid Vendor-product ID string */ MT_ISPYTHON, /* .type Numeric type [Note 4] */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 09639 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x8C, 0x8C, 0x8C}, /* .densities Density codes [Note 1] */ MT_DENSITY3, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Archive/Conner CTDX004 4mm DAT * * NOTES * ----- * [1] The CTDX004 uses 0 or the "default" density code. * [2] The CTDX004 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Archive/Conner CTDX004 4mm DAT", /* .name Display ("pretty") name */ 20, /* .length Length of next item... */ "ARCHIVE Python 28388", /* .vid Vendor-product ID string */ ST_TYPE_PYTHON, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_SOFT_ERROR_REPORTING | /* 00800 Reports errors on close */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 4] */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0DE39 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ }, /* * Archive Python 4mm 2GB drive * * NOTES * ----- * o This must be the last entry in the list of Python drives, since it * acts as a catch-all for any Python drive not listed above. * * [1] The Archive Python 4mm has only one density, 0x8c (or 0 for "default"). * [2] The Archive Python 4mm has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Do a request or log sense on close to report soft errors. */ { /* Structure member Description */ /* ---------------- ----------- */ "Archive Python 4mm Helical Scan", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "ARCHIVE Python", /* .vid Vendor-product ID string */ ST_TYPE_PYTHON, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_SOFT_ERROR_REPORTING | /* 00800 Error reporting [Note 4] */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 09E39 */ 5000, /* .max_rretries [Note 3] */ 5000, /* .max_wretries [Note 3] */ {0x00, 0x8C, 0x8C, 0x8C}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Benchmark DLT1 * * NOTES * ----- * [1] The DLT1 reads several tape formats, but the st driver supports * only DLT1 native. * [2] The DLT1 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] The DLT1 has Density codes that turn on and off compression however * the data compression enable overrides them. */ { /* Structure member Description */ /* ---------------- ----------- */ "Benchmark DLT1", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "BNCHMARKDLT1", /* .vid Vendor-product ID string */ ST_TYPE_BMDLT1, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 4] */ /* ----- */ /* 19639 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x40, 0x40, 0x40, 0x40}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * CDC 1/2" cartridge * * NOTES * ----- * o This is an unsupported drive. * * [1] The CDC 1/2" cartridge uses 0 or the "default" density code. * [2] The CDC 1/2" cartridge has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "CDC 1/2\" Cartridge", /* .name Display ("pretty") name */ 3, /* .length Length of next item... */ "LMS", /* .vid Vendor-product ID string */ ST_TYPE_CDC, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_QIC | /* 0x002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0066B */ 300, /* .max_rretries [Note 3] */ 300, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Emulex MT-02 controller for 1/4" cartridge * * NOTES * ----- * o The EMULEX MT-02 adheres to CCS level 0, and thus * returns nothing of interest for the INQUIRY command * past the 'response data format' field (which will be * zero). The driver will recognize this and assume that * a drive that so responds is actually an MT-02 (there * is no other way to really do this, awkward as it * may seem). * * o This is an unsupported drive. * * [1] Low density is a vendor unique density code. * This gives us 9 Track QIC-11. Supposedly the MT02 can * read 4 Track QIC-11 while in this mode. If that doesn't * work, change one of the duplicated QIC-24 fields to 0x4. * [2] The MT-02 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Emulex MT02 QIC-11/QIC-24", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "Emulex MT02", /* .vid Vendor-product ID string */ ST_TYPE_EMULEX, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00602 */ 130, /* .max_rretries [Note 3] */ 130, /* .max_wretries [Note 3] */ {0x84, 0x05, 0x05, 0x05}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Exabyte 8900 8mm helical scan drive (also called Mammoth) * * NOTES * ----- * [1] Compression on the 8900 is controlled via the Device Configuration mode * page or the Data Compression page (either one). Even when enabled, the * 8900 automatically disables compression on-the-fly if it determines * that it cannot achieve a reasonable compression ratio on the data. * [2] The 8900 can write in only one format, which is selected overtly by * setting Density Code in the block descriptor to 27h; in addition to * this native format, the 8900 can read tapes written in 8200, 8500 and * 8500-compressed formats. We set the density to 27h at all times: we * _can_ do this because the format is changed automatically to match the * data on any previously-written tape; we _must_ do this to ensure that * never-before-written 8900 AME tapes are written in "8900 format" (all * writes to them in any other format will fail). By establishing * MT_DENSITY4 (corresponding to the "c" and "u" minor devices) as the * default, applications which open '/dev/rmt/x' write compressed data * automatically (but see Note [1]). * [3] The 8900 has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Mammoth EXB-8900 8mm Helical Scan", /* .name Display ("pretty") name */ 16, /* .length Length of next item... */ "EXABYTE EXB-8900", /* .vid Vendor-product ID string */ ST_TYPE_EXB8500, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_SOFT_ERROR_REPORTING | /* 00800 Reports errors on close */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 19E39 */ 5000, /* .max_rretries [Note 4] */ 5000, /* .max_wretries [Note 4] */ {0x27, 0x27, 0x27, 0x27}, /* .densities Density codes [Note 2] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 3] */ }, /* * Exabyte 8mm 5GB cartridge * * NOTES * ----- * o ST_KNOWS_EOD here will cause medium error messages * * o The string length (16) has been reduced to 15 to allow for other * compatible models (eg the 8505 half-height) (BugTraq #1091196) * * [1] The density code entry requires four values, even if there are less * than four values for the drive. * [2] The Exabyte EXB-8500 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Exabyte EXB-8500 8mm Helical Scan", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "EXABYTE EXB-850*", /* .vid Vendor-product ID string */ ST_TYPE_EXB8500, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_SOFT_ERROR_REPORTING | /* 00800 Reports errors on close */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 08E39 */ 5000, /* .max_rretries [Note 3] */ 5000, /* .max_wretries [Note 3] */ {0x14, 0x15, 0x8C, 0x8C}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Exabyte 8mm 2GB cartridge * * NOTES * ----- * [1] The Exabyte EXB-8200 uses 0 or the "default" density code. * [2] The Exabyte EXB-8200 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Do a request or log sense on close to report soft errors. */ { /* Structure member Description */ /* ---------------- ----------- */ "Exabyte EXB-8200 8mm Helical Scan", /* .name Display ("pretty") name */ 16, /* .length Length of next item... */ "EXABYTE EXB-8200", /* .vid Vendor-product ID string */ ST_TYPE_EXABYTE, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_SOFT_ERROR_REPORTING | /* 00800 Error reporting [Note 4] */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 08C79 */ 5000, /* .max_rretries [Note 3] */ 5000, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Exabyte DC-2000 cartridge * * NOTES * ----- * o This is an unsupported drive. * * o This entry uses a shortened Vendor-product ID string for the * INQUIRY match. * * [1] The Exabyte DC-2000 uses 0 or the "default" density. * [2] The Exabyte DC-2000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Exabyte EXB-2501 QIC", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "EXABYTE EXB-25**", /* .vid Vendor-product ID string */ ST_TYPE_EXABYTE, /* .type Numeric type (cf. mtio.h) */ 1024, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00442 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * EXABYTE 4mm Helical Scan * * NOTES * ----- * * o This entry uses a shortened Vendor-product ID string for the * INQUIRY match. * * [1] The EXABYTE 4mm uses 0 or the "default" density code. * [2] The EXABYTE 4mm has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Exabyte 4mm Helical Scan", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "EXABYTE EXB-420*", /* .vid Vendor-product ID string */ ST_TYPE_EXABYTE, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00439 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Fujitsu 1/2" cartridge * * NOTES * ----- * o This is an unsupported drive. * * [1] The Fujitsu 1/2" drive uses 0 or the "default" density code. * [2] The Fujitsu 1/2" drive has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Fujitsu 1/2\" Cartridge",/* .name Display ("pretty") name */ 2, /* .length Length of next item... */ "\076\000", /* .vid Vendor-product ID string */ ST_TYPE_FUJI, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0063B */ 300, /* .max_rretries [Note 3] */ 300, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * HP 1/2" reel * * NOTES * ----- * [1] The HP 1/2" reel uses the vendor unique density '0xC3': * this is compressed 6250 mode. Beware that using large * data sets consisting of repeated data compresses *too* * well and one can run into the unix 2 gb file offset limit * this way. * [2] The HP 1/2" reel has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP-88780 1/2\" Reel", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "HP 88780", /* .vid Vendor-product ID string */ ST_TYPE_HP, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_REEL | /* 00004 1/2-inch reel tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0041D */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x01, 0x02, 0x03, 0xC3}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * HP 35470A 4mm DAT * * NOTES * ----- * o This is an unsupported drive. * * [1] The HP 35470A uses 0 or the "default" density code. * [2] The HP 35470A has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP 35470A 4mm DAT", /* .name Display ("pretty") name */ 16, /* .length Length of next item... */ "HP HP35470A", /* .vid Vendor-product ID string */ ST_TYPE_DAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS, /* 01000 More time for some ops */ /* ----- */ /* 01679 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * HP 35480A 4mm DAT * * NOTES * ----- * o This is an unsupported drive. * * [1] The HP 35480A uses 0 or the "default" density code. * [2] The HP 35480A has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP 35480A 4mm DAT", /* .name Display ("pretty") name */ 16, /* .length Length of next item... */ "HP HP35480A", /* .vid Vendor-product ID string */ ST_TYPE_DAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00439 */ 400, /* .max_rretries [Note 1] */ 400, /* .max_wretries [Note 1] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 2] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 3] */ }, /* * HP JetStore 6000 C1533 * * NOTES * ----- * o This is only supported for x86. * * [1] The HP JetStore 6000 uses 0 or the "default" density code. * [2] The HP JetStore 6000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP JetStore 6000 C1533", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "HP C1533A", /* .vid Vendor-product ID string */ ST_TYPE_DAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00639 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * HP DDS-3 4mm DAT * * NOTES * ----- * o This is an unsupported drive. * * [1] Compression on the HP DDS-3 is controlled * via the Device Configuration mode page. * [2] The HP DDS-3 has only one density, 0x8c (or 0 for "default"). * [3] The HP DDS-3 has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP DDS-3 4MM DAT", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "HP C1537A", /* .vid Vendor-product ID string */ MT_ISDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 09639 */ 400, /* .max_rretries [Note 4] */ 400, /* .max_wretries [Note 4] */ {0x00, 0x8C, 0x8C, 0x8C}, /* .densities Density codes [Note 2] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 3] */ }, /* * HP DDS-3 4mm DAT loader * * NOTES * ----- * o This is an unsupported drive. * * [1] Compression on the DDS-3 Loader is controlled * via the Device Configuration mode page. * [2] The DDS-3 Loader has only one density, 0x8c (or 0 for "default"). * [3] The DDS-3 Loader has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP DDS-3 4MM DAT loader",/* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "HP C1557A", /* .vid Vendor-product ID string */ MT_ISDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 09639 */ 400, /* .max_rretries [Note 4] */ 400, /* .max_wretries [Note 4] */ {0x00, 0x8C, 0x8C, 0x8C}, /* .densities Density codes [Note 2] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 3] */ }, /* * HP C5683A DDS-4 DAT drives with Sun-specific behavior * * When the configuration switches on the drive are set appropriately, the * HP C5683A: interprets a density code of 8Ch to mean "enable compression", * 00h to mean "disable compression"; senses the tape type automatically; * adjusts to match the tape type. (That is, compression is controlled via * the Sun-unique 8Ch density code, rather than using the Data Compression * mode page). * * NOTES * ----- * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x * format-related adjustments are performed automatically by the drive. * [2] The 5683 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP DDS-4 DAT (Sun)", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "HP C5683A", /* .vid Vendor-product ID string */ MT_ISDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 09639 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x00, 0x8C, 0x8C, 0x8C}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * HP C5713A DDS-4 DAT autochangers with Sun-specific behavior * * When the configuration switches on the drive are set appropriately, the * HP C5713A: interprets a density code of 8Ch to mean "enable compression", * 00h to mean "disable compression"; senses the tape type automatically; * adjusts to match the tape type. (That is, compression is controlled via * the Sun-unique 8Ch density code, rather than using the Data Compression * mode page). * * NOTES * ----- * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x * format-related adjustments are performed automatically by the drive. * [2] The 5713 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP DDS-4 DAT (Sun)", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "HP C5713A", /* .vid Vendor-product ID string */ MT_ISDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 09639 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x00, 0x8C, 0x8C, 0x8C}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * HP C7438A */ { /* Structure member Description */ /* ---------------- ----------- */ "HP DAT-72", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "HP C7438A", /* .vid Vendor-product ID string */ MT_ISDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not Used */ -1, /* .max_wretries Not Used */ {0x47, 0x47, 0x47, 0x47}, /* .densities Density codes */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes Not Used */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(7), /* .io_timeout 7 minutes (recover read) */ 0, /* .rewind_timeout Nothing Special */ MINUTES(600), /* .space_timeout 10 Hours (space seq file)*/ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(290) /* .erase_timeout 4 hours 50 minutes */ }, /* * HP Ultrium LTO Gen 3 * [1] This drive supports two densites at this time. * In reality the type of media GEN 2 or GEN 3 selects the density. * ST_MODE_SEL_COMP controls compression. * [2] The Ultrium LTO has one speed. * [3] max_rretries and max_wretries are not used but kept for * backward compatibility. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP Ultrium LTO 3", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "HP Ultrium 3*", /* .vid handles SCSI or FC */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 Mode select compression */ ST_WORMABLE, /* 1000000 Drive is WORM capable */ /* ------- */ /* 1018619 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x42, 0x42, 0x44, 0x44}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_timeout */ MINUTES(20), /* .io_timeout */ MINUTES(10), /* .rewind_timeout */ MINUTES(20), /* .space_timeout */ MINUTES(10), /* .load_timeout */ MINUTES(10), /* .unload_timeout */ MINUTES(300) /* .erase_timeout Five Hours */ }, /* * HP Ultrium LTO Gen 2 * [1] This drive supports two densites at this time. * In reality the type of media GEN 1 or GEN 2 selects the density. * ST_MODE_SEL_COMP controls compression. * [2] The Ultrium LTO has one speed. * [3] max_rretries and max_wretries are not used but kept for * backward compatibility. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP Ultrium LTO 2", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "HP Ultrium 2*", /* .vid handles SCSI or FC */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x40, 0x40, 0x42, 0x42}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_timeout */ MINUTES(5), /* .io_timeout Four */ MINUTES(10), /* .rewind_timeout */ MINUTES(20), /* .space_timeout */ MINUTES(10), /* .load_timeout */ MINUTES(10), /* .unload_timeout */ MINUTES(300) /* .erase_timeout Five Hours */ }, /* * HP Ultrium LTO * [1] This drive supports only one density at this time. ST_MODE_SEL_COMP controls compression. * [2] The Ultrium LTO has one speed. * [3] max_rretries and max_wretries are not used but kept for * backward compatibility. */ { /* Structure member Description */ /* ---------------- ----------- */ "HP Ultrium LTO", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "HP Ultrium 1*", /* .vid handles SCSI and FC */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x40, 0x40, 0x40, 0x40}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_timeout */ MINUTES(5), /* .io_timeout Four */ MINUTES(10), /* .rewind_timeout */ MINUTES(20), /* .space_timeout */ MINUTES(10), /* .load_timeout */ MINUTES(10), /* .unload_timeout */ MINUTES(300) /* .erase_timeout Five Hours */ }, /* * Kennedy 1/2" reel * * NOTES * ----- * o This is an unsupported drive. * * o This entry uses a shortened Vendor-product ID string for the * INQUIRY match. * * [1] The density code entry requires four values, even if there are less * than four values for the drive. * [2] The Kennedy 1/2" reel has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Kennedy 1/2\" Reel", /* .name Display ("pretty") name */ 4, /* .length Length of next item... */ "KENN***", /* .vid Vendor-product ID string */ ST_TYPE_KENNEDY, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_REEL | /* 00004 1/2-inch reel tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0041D */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x01, 0x02, 0x03, 0x03}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * M4 Data Systems 9303 transport with 9700 512k i/f * * NOTES * ----- * o The M4 Data 9303 is in non-buffered mode because it doesn't * flush the buffer at end of tape writes. If you don't care * about end of tape conditions (e.g., you use dump(8) which * cannot handle end-of-tape anyhow), take out the ST_NOBUF. * * o This is an unsupported drive. * * [1] The density code entry requires four values, even if there are less * than four values for the drive. * [2] The M4 Data has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "M4-Data 1/2\" Reel", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "M4 DATA 123107 SCSI", /* .vid Vendor-product ID string */ ST_TYPE_REEL, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_REEL | /* 00004 1/2-inch reel tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_NOBUF | /* 00080 Don't use buffered mode. */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0049D */ 500, /* .max_rretries [Note 3] */ 500, /* .max_wretries [Note 3] */ {0x01, 0x02, 0x06, 0x06}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Quantum VS 160 * * Notes * [1] The VS160 reads several formats which the drive autodetects. * It can write only in VS160 format so all densities set ro 0x50. * [2] The speed field is not used and the VS160's speed is not setable. * [3] Retry counts are not used any more and set to -1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum VS160", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "QUANTUM DLT VS160", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 00040 Has only one density */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Uses Mode select Compress */ /* -------- */ /* 00018659 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x50, 0x50, 0x50, 0x50}, /* .densities [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ MINUTES(2), /* .non_motion_timeout Nothing special */ MINUTES(15), /* .io_timeout First write to new tape */ MINUTES(15), /* .rewind_timeout 15 minutes */ MINUTES(15), /* .space_timeout 15 minutes */ MINUTES(15), /* .load_timeout read catalog */ MINUTES(15), /* .unload_timeout write catalog + unthread */ MINUTES(180) /* .erase_timeout 3 hours */ }, /* * Quantum Super DLT600 * * NOTES * ----- * * [1] The Super DLT 600 supports many tape formats, Most are media selected. * Previous DLT drives had density codes for compress and non-compress, This drive uses mode select to control compression. * [2] The Super DLT has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum Super DLT 600", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "QUANTUM SDLT600", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 Uses Mode select Compress */ ST_WORMABLE, /* 1000000 Is capable of WORM */ /* ------- */ /* 1018619 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x4a, 0x4a, 0x4a, 0x4a}, /* .densities [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ MINUTES(60), /* .io_timeout Four One Hour */ MINUTES(4), /* .rewind_timeout Four Minutes */ MINUTES(360), /* .space_timeout 6 Hour if Directory bad */ MINUTES(16), /* .load_timeout Nothing Special */ MINUTES(16), /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Quantum Super DLT320 * * NOTES * ----- * o There is not going to be a SUN version of this drive. It will * be released as QUANTUM only. * * [1] The Super DLT implements many tape formats, but the st driver supports * only the four highest densities. * [2] The Super DLT has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum Super DLT 320", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "QUANTUM SDLT320", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* -------- */ /* 00008619 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x90, 0x91, 0x92, 0x93}, /* .densities [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Default 2 minutes */ MINUTES(60), /* .io_timeout Four Now 1 hour */ MINUTES(4), /* .rewind_timeout Four Minutes */ MINUTES(360), /* .space_timeout Six Hours */ MINUTES(16), /* .load_timeout Sixteen Minutes */ MINUTES(16), /* .unload_timeout Sixteen Minutes */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Quantum Super DLT * * NOTES * ----- * o There is not going to be a SUN version of this drive. It will * be released as QUANTUM only. * * [1] The Super DLT implements many tape formats, but the st driver supports * only the four highest densities. * [2] The Super DLT has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum Super DLT 220", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "QUANTUM SuperDLT1", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* -------- */ /* 00008619 */ -1, /* .max_rretries [Note 3] */ -1, /* .max_wretries [Note 3] */ {0x88, 0x89, 0x90, 0x91}, /* .densities [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Default 2 minutes */ MINUTES(60), /* .io_timeout Four Now 1 hour */ MINUTES(4), /* .rewind_timeout Four Minutes */ MINUTES(360), /* .space_timeout Six Hours */ MINUTES(16), /* .load_timeout Sixteen Minutes */ MINUTES(16), /* .unload_timeout Sixteen Minutes */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Quantum DLT8000 * * NOTES * ----- * o There is not going to be a SUN version of this drive. It will * be released as QUANTUM only. * * [1] The DLT8000 implements many tape formats, but the st driver supports * only the four highest densities. * [2] The DLT8000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum DLT8000", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "QUANTUM DLT8000", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_CLN_TYPE_3, /* 40000000 */ /* ----- */ /* 40009619 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x84, 0x85, 0x88, 0x89}, /* .densities [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Quantum DLT7000 * * NOTES * ----- * [1] The DLT7000 implements many tape formats, but the st driver supports * only the four highest densities. * [2] The DLT7000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in Solaris 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum DLT7000", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "QUANTUM DLT7000", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 4] */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_CLN_TYPE_3, /* 40000000 Asks to be cleaned this way */ /* -------- */ /* 4000D619 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x82, 0x83, 0x84, 0x85}, /* .densities Density codes [Note 1] */ MT_DENSITY3, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Quantum DLT4000 * * NOTES * ----- * [1] The DLT4000 implements many tape formats, but the st driver supports * only the four highest densities. * [2] The DLT4000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum DLT4000", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "Quantum DLT4000", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 4] */ ST_NO_RECSIZE_LIMIT| /* 08000 Supports blocks > 64KB */ ST_CLN_TYPE_3, /* 40000000 Asks to be cleaned this way */ /* -------- */ /* 4000D619 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x80, 0x81, 0x82, 0x83}, /* .densities Density codes [Note 1] */ MT_DENSITY3, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * [1] The DLT-S4 has three densites at this time, * 0x49 for SuperDLT tape I, 0x4a for SuperDLT tape II, * 0x4b for SuperDLT tape III. * This drive is configured with ST_KNOWS_MEDIA. * That means that it will look at the mediatype from the mode sense * to select the density code. The compression will be selected based * on the minor node the user opened. * [2] S4 reports a medium type that is used to select the density. */ { /* Structure member Description */ /* ---------------- ----------- */ "Quantum DLT-S4", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "QUANTUM DLT-S4", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_KNOWS_MEDIA | /* 0800000 Media detrmines density */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ----- */ /* 1818619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x49, 0x4a, 0x4b, 0x4b}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0x86, 0x87, 0x91, 0x91}, /* .mediatype Media type [Note 2] */ 0, /* .non_motion_time */ MINUTES(60), /* .io_time */ MINUTES(4), /* .rewind_time */ MINUTES(360), /* .space_time */ MINUTES(16), /* .load_time */ MINUTES(16), /* .unload_time */ MINUTES(360) /* .erase_time */ }, /* * Seagate Hornet NS20 Travan * * NOTES * ----- * o This is an unsupported drive. * * [1] The NS20 Travan uses 0 or the "default" density code. * [2] The NS20 Travan has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Seagate Hornet NS20 Travan", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "Seagate STT20000N", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0840A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Seagate DAT 72 * * [1] Has only one density, Uses Mode Select to enable-disable compression. * [2] Only one speed. */ { /* Structure member Description */ /* ---------------- ----------- */ "Seagate DAT 72", /* .name Display ("pretty") name */ 23, /* .length Length of next item... */ "SEAGATE DAT DAT72-00",/* .vid Vendor-product ID string */ MT_ISDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 variable length records */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports backspace record */ ST_KNOWS_EOD | /* 00200 Knows EOD when it sees it */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not Used any more. */ {0x47, 0x47, 0x47, 0x47}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout */ MINUTES(15), /* .io_timeout */ MINUTES(2), /* .rewind_timeout */ MINUTES(15), /* .space_timeout */ 0, /* .load_timeout */ 0, /* .unload_timeout */ MINUTES(240) /* .erase_timeout */ }, /* * Certance Ultrium LTO 3 * [1] This drive supports 3 densites at this time. * ST_MODE_SEL_COMP controls compression. * [2] max_rretries and max_wretries are not used but kept for * backward compatibility. */ { /* Structure member Description */ /* ---------------- ----------- */ "Certance Ultrium 3", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "CERTANCEULTRIUM 3", /* .vid handles SCSI or FC */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries [Note 2] */ -1, /* .max_wretries [Note 2] */ {0x40, 0x42, 0x44, 0x44}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes */ 0, /* .non_motion_timeout */ MINUTES(60), /* .io_timeout */ MINUTES(35), /* .rewind_timeout */ MINUTES(60), /* .space_timeout */ MINUTES(35), /* .load_timeout */ MINUTES(35), /* .unload_timeout */ MINUTES(180) /* .erase_timeout */ }, /* * Certance Ultrium LTO 2 * [1] This drive supports two densites at this time. * 0x40 for Ultrium 1 and 0x42 for Ultrium 2. * ST_MODE_SEL_COMP controls compression. * [2] max_rretries and max_wretries are not used but kept for * backward compatibility. */ { /* Structure member Description */ /* ---------------- ----------- */ "Certance Ultrium 2", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "CERTANCEULTRIUM 2", /* .vid handles SCSI or FC */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries [Note 2] */ -1, /* .max_wretries [Note 2] */ {0x40, 0x40, 0x42, 0x42}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes */ 0, /* .non_motion_timeout */ MINUTES(60), /* .io_timeout */ MINUTES(35), /* .rewind_timeout */ MINUTES(60), /* .space_timeout */ MINUTES(35), /* .load_timeout */ MINUTES(35), /* .unload_timeout */ MINUTES(180) /* .erase_timeout */ }, /* * Seagate Ultrium LTO * * [1] Has only one density, Uses Mode Select to enable-disable compression. * [2] Only one speed. */ { /* Structure member Description */ /* ---------------- ----------- */ "Seagate Ultrium LTO", /* .name Display ("pretty") name */ 23, /* .length Length of next item... */ "SEAGATE ULTRIUM06242-XX",/* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 variable length records */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports backspace record */ ST_KNOWS_EOD | /* 00200 Knows EOD when it sees it */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 Mode select compression */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not Used any more. */ {0x40, 0x40, 0x40, 0x40}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout */ MINUTES(10), /* .io_timeout */ MINUTES(15), /* .rewind_timeout */ MINUTES(120), /* .space_timeout */ MINUTES(5), /* .load_timeout */ MINUTES(2), /* .unload_timeout */ MINUTES(120) /* .erase_timeout */ }, /* * SONY 4mm DAT * * NOTES * ----- * o This is an unsupported drive. * * o This entry uses a shortened Vendor-product ID string for the * INQUIRY match. * * [1] The SDT-5000 uses 0 or the "default" density code. * [2] The SDT-5000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "SONY 4mm DAT", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "SONY SDT-****", /* .vid Vendor-product ID string */ ST_TYPE_DAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00439 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Sun StorageTek T10000A tape drive. * * NOTES * ----- * o The T10000A has special needs - support for SCSI LOCATE and * READ POSITION commands - so we must be sure to place this * entry before the one for ST_TYPE_STC3490 (generic STK * half-inch cartridge drives). * [1] Compression on the T10000A is controlled * via the Device Configuration mode page. * [2] The T10000A has only one writable density, 0x4A. * [3] The T10000A has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Sun StorageTek T10000A", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "STK T10000A", /* .vid Vendor-product ID string */ ST_TYPE_STK9840, /* .type Numeric type (cf. mtio.h)*/ 0, /* .bsize Block size (0 = variable)*/ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 0000040 Autodensity override flag*/ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ------- */ /* 1018659 */ -1, /* .max_rretries [Note 4] */ -1, /* .max_wretries [Note 4] */ {0x4A,0x4A,0x4A,0x4A}, /* .densities Density codes [Note 2] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0,0,0,0}, /* .speeds Speed codes [Note 3] */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(5), /* .io_timeout Five Five Minutes */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(180) /* .erase_timeout Three Hours */ }, /* * STK 9840C cartridge drive. * * NOTES * ----- * o The 9840C has special needs - support for SCSI LOCATE and * READ POSITION commands - so we must be sure to place this * entry before the one for ST_TYPE_STC3490 (generic STK * half-inch cartridge drives). * [1] Compression on the 9840C is controlled * via the Device Configuration mode page. * [2] The 9840C has only one writable density, 0x45. I can read tapes writen * with 9840 and 9840B writen with there density code 0x42. * [3] The 9840C has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "StorageTek 9840C", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "STK T9840C", /* .vid Vendor-product ID string */ ST_TYPE_STK9840, /* .type Numeric type (cf. mtio.h)*/ 0, /* .bsize Block size (0 = variable)*/ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ------- */ /* 1018619 */ -1, /* .max_rretries [Note 4] */ -1, /* .max_wretries [Note 4] */ {0x45,0x45,0x45,0x45}, /* .densities Density codes [Note 2] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0,0,0,0}, /* .speeds Speed codes [Note 3] */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(5), /* .io_timeout Five Five Minutes */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(70) /* .erase_timeout One Hour and ten Minutes */ }, /* * STK 9840B cartridge drive. * * NOTES * ----- * o The 9840B has special needs - support for SCSI LOCATE and * READ POSITION commands - so we must be sure to place this * entry before the one for ST_TYPE_STC3490 (generic STK * half-inch cartridge drives). * [1] Compression on the 9840B is controlled * via the Device Configuration mode page. * [2] The 9840B has only one density, 0x42 (or 0 for "default"). * [3] The 9840B has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "StorageTek 9840B", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "STK T9840B", /* .vid Vendor-product ID string */ ST_TYPE_STK9840, /* .type Numeric type (cf. mtio.h)*/ 0, /* .bsize Block size (0 = variable)*/ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ------- */ /* 1018619 */ -1, /* .max_rretries [Note 4] */ -1, /* .max_wretries [Note 4] */ {0x42,0x42,0x42,0x42}, /* .densities Density codes [Note 2] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0,0,0,0}, /* .speeds Speed codes [Note 3] */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(5), /* .io_timeout Five Five Minutes */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(70) /* .erase_timeout One Hour and ten Minutes */ }, /* * STK 9940B cartridge drive. * * NOTES * ----- * [1] Compression on the 9940 is controlled * via the Device Configuration mode page. * [2] The 9940 has only one density, 0x44. * [3] The 9940 has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver not used. */ { /* Structure member Description */ /* ---------------- ----------- */ "StorageTek 9940B", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "STK T9940B", /* .vid Vendor-product ID string */ ST_TYPE_STK9840, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 0000040 Autodensity override flag */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ------- */ /* 1018659 */ -1, /* .max_rretries [Note 4] */ -1, /* .max_wretries [Note 4] */ {0x44,0x44,0x44,0x44}, /* .densities Density codes [Note 2] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 3] */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(5), /* .io_timeout Five minutes */ 0, /* .rewind_timeout Nothing Special */ MINUTES(180), /* .space_timeout Three Hours 3 x 9840 */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(210) /* .erase_timeout Three and a half hours */ }, /* * STK 9940 cartridge drive. * * NOTES * ----- * [1] Compression on the 9940 is controlled * via the Device Configuration mode page. * [2] The 9940 has only one density, 0x43. * [3] The 9940 has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver not used. */ { /* Structure member Description */ /* ---------------- ----------- */ "StorageTek 9940", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "STK T9940A", /* .vid Vendor-product ID string */ ST_TYPE_STK9840, /* .type Numeric type (cf. mtio.h)*/ 0, /* .bsize Block size (0 = variable)*/ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ------- */ /* 1018619 */ -1, /* .max_rretries [Note 4] */ -1, /* .max_wretries [Note 4] */ {0x43,0x43,0x43,0x43}, /* .densities Density codes [Note 2] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 3] */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(5), /* .io_timeout Five Minutes */ 0, /* .rewind_timeout Nothing Special */ MINUTES(180), /* .space_timeout Three Hours 3 x 9840 */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(210) /* .erase_timeout Three and a half hours */ }, /* * STK 9840 cartridge drive (Sun codename: Ironsides) * * NOTES * ----- * o The 9840 has special needs - support for SCSI LOCATE and * READ POSITION commands - so we must be sure to place this * entry before the one for ST_TYPE_STC3490 (generic STK * half-inch cartridge drives). * [1] Compression on the 9840 is controlled * via the Device Configuration mode page. * [2] The 9840 has only one density, 0x42 (or 0 for "default"). * [3] The 9840 has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. * [5] ST_LONG_ERASE is not needed or used when .erase_timeout * is non-zero. */ { /* Structure member Description */ /* ---------------- ----------- */ "StorageTek 9840", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "STK 9840", /* .vid Vendor-product ID string */ ST_TYPE_STK9840, /* .type Numeric type (cf. mtio.h)*/ 0, /* .bsize Block size (0 = variable)*/ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_WORMABLE, /* 1000000 Supports WORM */ /* ------- */ /* 1018619 */ 10, /* .max_rretries [Note 4] */ 10, /* .max_wretries [Note 4] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 2] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 3] */ 0, /* .non_motion_timeout Nothing Special */ MINUTES(5), /* .io_timeout Five Minutes */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(70) /* .erase_timeout One Hour and ten Minutes */ }, /* * STC 3490 1/2" cartridge * * NOTES * ----- * o This is an unsupported drive. * * o This is the generic StorageTek (STK) entry. Any special or drive * specific entries must be placed ahead of this entry in the file, to * ensure that the driver will "see" and use them; otherwise this entry * will be used as the default. * * [1] The STC 3490 uses 0 or "default" for the desnity code. * [2] The STC 3490 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "STK 1/2\" Cartridge", /* .name Display ("pretty") name */ 3, /* .length Length of next item... */ "STK", /* .vid Vendor-product ID string */ ST_TYPE_STC3490, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ ST_VARIABLE | /* 00001 Supports variable length */ ST_REEL | /* 00004 1/2-inch reel tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 1843D */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Sony SAIT * * Only looking at part of the product ID so it will match SDZ-100 and * SDZ-130. One is SCSI other is Fibre but same configuration otherwise. * */ { /* Structure member Description */ /* ---------------- ----------- */ "Sony Super AIT", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "SONY SDZ-1*", /* .vid Vendor-product ID string */ ST_TYPE_AIT, /* .type Numeric type (cf. mtio.h) */ 0, ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 0000040 Suports only one density */ ST_KNOWS_EOD | /* 0000200 Knows End Of Data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 mode select compression */ ST_WORMABLE, /* 1000000 Drive is WORM capable */ /* ------- */ /* 1018659 */ -1, /* .max_rretries Not used */ -1, /* .max_wretries Not used */ {0x40, 0x40, 0x40, 0x40}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ 0, /* .erase_timeout Six hours */ }, /* * Sony SDX-420 * This drive is listed before the more generic AIT drives becouse it runs * only in fixed block mode. It also responds to READ BLOCK LIMITS which * leads st to beleive its a variable block capable but it will fail any * i/o that doesn't have the fix bit set in the CDB. */ { /* Structure member Description */ /* ---------------- ----------- */ "Sony AIT II", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "SONY SDX-420*", /* .vid Vendor-product ID string */ ST_TYPE_AIT, /* .type Numeric type (cf. mtio.h) */ 512, ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 00040 One density code */ ST_KNOWS_EOD | /* 00200 Knows End Of Data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 mode select compression */ /* ----- */ /* 18658 */ -1, /* .max_rretries Not used */ -1, /* .max_wretries Not used */ {0x30, 0x30, 0x30, 0x30}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ 0, /* .erase_timeout Six hours */ }, /* * Sony SDX-520 * This drive is listed before the more generic AIT drives becouse it runs * only in fixed block mode. It also responds to READ BLOCK LIMITS which * leads st to beleive its a variable block capable but it will fail any * i/o that doesn't have the fix bit set in the CDB. */ { /* Structure member Description */ /* ---------------- ----------- */ "Sony AIT II", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "SONY SDX-520*", /* .vid Vendor-product ID string */ ST_TYPE_AIT, /* .type Numeric type (cf. mtio.h) */ 512, ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 00040 One density code */ ST_KNOWS_EOD | /* 00200 Knows End Of Data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 mode select compression */ /* ----- */ /* 18658 */ -1, /* .max_rretries Not used */ -1, /* .max_wretries Not used */ {0x30, 0x30, 0x30, 0x30}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ 0, /* .erase_timeout Six hours */ }, /* Sony generic AIT * * */ { /* Structure member Description */ /* ---------------- ----------- */ "Sony AIT", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "SONY SDX-*", /* .vid Vendor-product ID string */ ST_TYPE_AIT, /* .type Numeric type (cf. mtio.h) */ 0, ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 0000040 One density code */ ST_KNOWS_EOD | /* 0000200 Knows End Of Data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 mode select compression */ ST_WORMABLE, /* 1000000 Drive is WORM capable */ /* ------- */ /* 1018659 */ -1, /* .max_rretries Not used */ -1, /* .max_wretries Not used */ {0x30, 0x30, 0x30, 0x30}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ 0, /* .erase_timeout Six hours */ }, /* * Sun DLT7000 * * NOTES * ----- * [1] The DLT7000 implements many tape formats, but the st driver supports * only the four highest densities. * [2] The DLT7000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Sun DLT7000", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "SUN DLT7000", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 4] */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_CLN_TYPE_3, /* 40000000 Asks to be cleaned this way */ /* -------- */ /* 4000D619 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x82, 0x83, 0x84, 0x85}, /* .densities Density codes [Note 1] */ MT_DENSITY3, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Sun DLT4000 * * NOTES * ----- * [1] The DLT4000 implements many tape formats, but the st driver supports * only the four highest densities. * [2] The DLT4000 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "DLT4000", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "SUN DLT4000", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 4] */ ST_NO_RECSIZE_LIMIT| /* 08000 Supports blocks > 64KB */ ST_CLN_TYPE_3, /* 40000000 Asks to be cleaned this way */ /* -------- */ /* 4000D619 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x80, 0x81, 0x82, 0x83}, /* .densities Density codes [Note 1] */ MT_DENSITY3, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Sun DLT4700 * * NOTES * ----- * [1] Compression on the DLT4700 is controlled via the Device Configuration * mode page or the Data Compression page (either one). * [2] The DLT4700 implements many tape formats, but the st driver supports * only the four highest densities. * [3] The DLT4700 has only one speed (if the driver ever cares). * [4] max_rretries and max_wretries are driver anachronisms. * [5] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "DLT4700 Library", /* .name Display ("pretty") name */ 15, /* .length Length of next item... */ "SUN DLT4700", /* .vid Vendor-product ID string */ ST_TYPE_DLT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 5] */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0D619 */ 400, /* .max_rretries [Note 4] */ 400, /* .max_wretries [Note 4] */ {0x80, 0x81, 0x82, 0x83}, /* .densities Density codes [Note 2] */ MT_DENSITY3, /* .default_density (.densities[x]) */ { 0, 0, 0, 0 }, /* .speeds Speed codes [Note 2] */ 0, /* .non_motion_timeout Nothing special */ 0, /* .io_timeout Four Nothing Special */ 0, /* .rewind_timeout Nothing Special */ 0, /* .space_timeout Nothing Special */ 0, /* .load_timeout Nothing Special */ 0, /* .unload_timeout Nothing Special */ MINUTES(360) /* .erase_timeout Six hours */ }, /* * Tandberg SLR5 4/8G (standard firmware) * * NOTES * ----- * [1] The density code entry requires four values, even if there are less * than four values for the drive. * [2] The Tandberg SLR5 4/8G has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg 4/8 Gig QIC", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "TANDBERG SLR5 4/8GB", /* .vid Vendor-product ID string */ ST_TYPE_TAND25G, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0963B */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x22, 0x22, 0x26, 0x26}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Tandberg SLR5 (SMI firmware). * * NOTES * ----- * o The inquiry string for this drive is actually padded with blanks, but * we only check the first 13 characters so that this will act as a default * to cover other revisions of firmware on SLR5s which may show up. * * [1] The density code entry requires four values, even if there are less * than four values for the drive. * [2] The Tandberg SLR5 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg 8 Gig QIC", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "TANDBERG SLR5", /* .vid Vendor-product ID string */ ST_TYPE_TAND25G, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0963B */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Tandberg 4100 QIC * * NOTES * ----- * o This is an unsupported drive. * * [1] The Tandberg 4100 uses 0 or the "default" density code. * [2] The Tandberg 4100 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg 4100 QIC", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "TANDBERG 4100", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0063A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Tandberg 4200 QIC * * NOTES * ----- * o This is an unsupported drive. * * [1] The Tandberg 4200 uses 0 or the "default" density code. * [2] The Tandberg 4200 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg 4200 QIC", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "TANDBERG 4200", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0063A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Tandberg QIC 2.5 Gig Tape Drive * * NOTES * ----- * [1] The TDC 4200 uses 0 or the "default" density code. * [2] The TDC 4200 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg QIC 2.5 Gig Tape Drive", /* .name Display ("pretty") name */ 16, /* .length Length of next item... */ "TANDBERG TDC 420*", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_BUFFERED_WRITES | /* 04000 [Note 4] */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0D67B */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Tandberg MLR1 QIC * * NOTES * ----- * [1] The MLR1 uses 0 or the "default" density code. * [2] The MLR1 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. * [4] Data is buffered in the driver and pre-acked to the application. This * is only supported in 2.5.1. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg MLR1 QIC", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "TANDBERGMLR1", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_BUFFERED_WRITES, /* 04000 [Note 4] */ /* ----- */ /* 0463A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Tandberg MLR3 QIC * * NOTES * ----- * [1] The density code entry requires four values, even if there are less * than four values for the drive. * [2] The MLR3 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Tandberg 50 Gig QIC", /* .name Display ("pretty") name */ 12, /* .length Length of next item... */ "TANDBERGMLR3", /* .vid Vendor-product ID string */ MT_ISTAND25G, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT, /* 08000 Supports blocks > 64KB */ /* ----- */ /* 0963B */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities Density codes [Note 1] */ MT_DENSITY3, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * WangDAT 3.81mm cartridge * * NOTES * ----- * o This is an unsupported drive. * * [1] The WangDAT 3.81mm uses 0 or the "default" density code. * [2] The WangDAT 3.81mm has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Wang DAT 3.81 Helical Scan", /* .name Display ("pretty") name */ 7, /* .length Length of next item... */ "WangDAT", /* .vid Vendor-product ID string */ ST_TYPE_WANGDAT, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00659 */ 5000, /* .max_rretries [Note 3] */ 5000, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Wangtek QIC-150 1/4" cartridge * * NOTES * ----- * o This is an unsupported drive. * * [1] The Wangtek QIC-150 uses 0 or the "default" density code. * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Wangtek QIC-150", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "WANGTEK 5150ES", /* .vid Vendor-product ID string */ ST_TYPE_WANGTEK, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00642 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Wangtek 4mm RDAT drive * * NOTES * ----- * o This is an unsupported drive. * * o This entry uses a shortened Vendor-product ID string for the * INQUIRY match. * * [1] The Wangtek 4mm RDAT uses 0 or the "default" density code. * [2] The Wangtek 4mm RDAT has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Wangtek 4mm Helical Scan", /* .name Display ("pretty") name */ 14, /* .length Length of next item... */ "WANGTEK 6130-H*", /* .vid Vendor-product ID string */ ST_TYPE_WANGTHS, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 00659 */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Wangtek QIC-150 1/4" cartridge * * NOTES * ----- * o This is an unsupported drive. * * [1] The Wangtek QIC-150 uses 0 or the "default" density code. * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Wangtek 5525ES SCSI", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "WANGTEK 5525ES SCSI", /* .vid Vendor-product ID string */ ST_TYPE_WANGTEK, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_AUTODEN_OVERRIDE | /* 00040 Autdensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0067A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY2, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * [1] The Ecrix VXA-1 has only one density at this time, * Compression is controlled via the Device Configuration * mode page. * [2] The Ecrix VXA-1 is a veriable speed device. The drive determines * the optimum speed. (if the driver ever cares). */ { /* Structure member Description */ /* ---------------- ----------- */ "Ecrix VXA-1", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "ECRIX VXA-1", /* .vid Vendor-product ID string */ MT_ISOTHER, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_LONG_ERASE | /* 00020 Needs extra time to erase */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_SOFT_ERROR_REPORTING | /* 00800 Reports errors on close */ ST_LONG_TIMEOUTS | /* 01000 More time for some ops */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 10000 Mode Select to enable comp */ ST_CLN_TYPE_1, /* 10000000 Asks to be cleaned this way */ /* -------- */ /* 10019E39 */ -1, /* .max_rretries */ -1, /* .max_wretries */ {0x80, 0x80, 0x80, 0x80}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * [1] The IBM Ultrium Gen 4 "OEM" version has two densites at this time, * One for Gen 3 0x44, One for Gen 4 0x46. * This drive is configured with ST_KNOWS_MEDIA. * That means that it will look at the mediatype from the mode sense * to select the density code. The compression will be selected based * on the minor node the user opened. * [2] The IBM LTO reports a medium type that is used to select the density. */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium Gen 4 LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULTRIUM-TD4", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_KNOWS_MEDIA | /* 0800000 Media detrmines density */ ST_WORMABLE, /* 1000000 Is WORM capable */ /* ------- */ /* 1818619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x44, 0x44, 0x46, 0x46}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0x38, 0x38, 0x48, 0x48}, /* .mediatype Media type [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(23), /* .io_time */ MINUTES(9), /* .rewind_time */ MINUTES(183), /* .space_time worst case directory invalid*/ MINUTES(9), /* .load_time */ MINUTES(13), /* .unload_time */ MINUTES(180) /* .erase_time */ }, /* * [1] The IBM Ultrium Gen 4 "IBM" version has two densites at this time, * One for Gen 3 0x44, one for Gen 4 0x46. * This drive is configured with ST_KNOWS_MEDIA. * That means that it will look at the mediatype from the mode sense * to select the density code. The compression will be selected based * on the minor node the user opened. * [2] The IBM LTO reports a medium type that is used to select the density. */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium Gen 4 LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULT3580-TD4", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_KNOWS_MEDIA | /* 0800000 Media detrmines density */ ST_WORMABLE, /* 1000000 Is WORM capable */ /* ------- */ /* 1818619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x44, 0x44, 0x46, 0x46}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0x38, 0x38, 0x48, 0x48}, /* .mediatype Media type [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(23), /* .io_time */ MINUTES(9), /* .rewind_time */ MINUTES(183), /* .space_time worst case directory invalid*/ MINUTES(9), /* .load_time */ MINUTES(13), /* .unload_time */ MINUTES(180) /* .erase_time */ }, /* * [1] The IBM Ultrium Gen 3 "OEM" version has three densites at this time, * One for Gen 1 0x40, One for Gen 2 0x42 and for Gen 3 0x44. * This drive is configured with ST_KNOWS_MEDIA. * That means that it will look at the mediatype from the mode sense * to select the density code. The compression will be selected based * on the minor node the user opened. * [2] The IBM LTO reports a medium type that is used to select the density. */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium Gen 3 LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULTRIUM-TD3", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_KNOWS_MEDIA | /* 0800000 Media detrmines density */ ST_WORMABLE, /* 1000000 Is WORM capable */ /* ------- */ /* 1818619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x40, 0x42, 0x44, 0x44}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0x18, 0x28, 0x38, 0x38}, /* .mediatype Media type [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(9), /* .rewind_time */ MINUTES(165), /* .space_time worst case directory invalid*/ MINUTES(9), /* .load_time */ MINUTES(12), /* .unload_time */ MINUTES(160) /* .erase_time */ }, /* * [1] The IBM Ultrium Gen 3 "IBM" version has three densites at this time, * One for Gen 1 0x40, One for Gen 2 0x42 and Gen 3 0x44. * This drive is configured with ST_KNOWS_MEDIA. * That means that it will look at the mediatype from the mode sense * to select the density code. The compression will be selected based * on the minor node the user opened. * [2] The IBM LTO reports a medium type that is used to select the density. */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium Gen 3 LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULT3580-TD3", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 0000001 Supports variable length */ ST_BSF | /* 0000008 Supports SPACE block fwd */ ST_BSR | /* 0000010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 0000200 Recognizes end-of-data */ ST_UNLOADABLE | /* 0000400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 0008000 Supports blocks > 64KB */ ST_MODE_SEL_COMP | /* 0010000 [Note 1] */ ST_KNOWS_MEDIA | /* 0800000 Media detrmines density */ ST_WORMABLE, /* 1000000 Is WORM capable */ /* ------- */ /* 1818619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x40, 0x42, 0x44, 0x44}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0x18, 0x28, 0x38, 0x38}, /* .mediatype Media type [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(9), /* .rewind_time */ MINUTES(165), /* .space_time worst case directory invalid*/ MINUTES(9), /* .load_time */ MINUTES(12), /* .unload_time */ MINUTES(160) /* .erase_time */ }, /* * [1] The IBM Ultrium Gen 2 "OEM" version has two densites at this time, * One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media * Selects which density code is used but this documents the codes * for those who care to know. * Compression is controlled via the Compression mode page. * [2] The IBM Ultrium has only one speed (if the driver ever cares). */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium Gen 2 LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULTRIUM-TD2", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x40, 0x40, 0x42, 0x42}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(9), /* .rewind_time */ MINUTES(151), /* .space_time worst case directory invalid*/ MINUTES(12), /* .load_time */ MINUTES(11), /* .unload_time */ MINUTES(151) /* .erase_time */ }, /* * [1] The IBM Ultrium Gen 2 "IBM" version has two densites at this time, * One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media * Selects which density code is used but this documents the codes * for those who care to know. * Compression is controlled via the Compression mode page. * [2] The IBM Ultrium has only one speed (if the driver ever cares). */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium Gen 2 LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULT3580-TD2", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x40, 0x40, 0x42, 0x42}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(9), /* .rewind_time */ MINUTES(151), /* .space_time worst case directory invalid*/ MINUTES(12), /* .load_time */ MINUTES(11), /* .unload_time */ MINUTES(151) /* .erase_time */ }, /* * [1] The IBM Ultrium has only one density at this time, * Compression is controlled via the Device Configuration mode page. * [2] The IBM Ultrium has only one speed (if the driver ever cares). */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULTRIUM-TD1", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x40, 0x40, 0x40, 0x40}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(8), /* .rewind_time */ MINUTES(173), /* .space_time worst case directory invalid*/ MINUTES(11), /* .load_time */ MINUTES(11), /* .unload_time */ MINUTES(173) /* .erase_time */ }, /* * This is the same drive as the above except for the inquiry string and * that it is a "End User Version". * [1] The IBM Ultrium has only one density at this time, * Compression is controlled via the Device Configuration mode page. * [2] The IBM Ultrium has only one speed (if the driver ever cares). */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM Ultrium LTO", /* .name Display ("pretty") name */ 19, /* .length Length of next item... */ "IBM ULT3580-TD1", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 18619 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x40, 0x40, 0x40, 0x40}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(8), /* .rewind_time */ MINUTES(173), /* .space_time worst case directory invalid*/ MINUTES(11), /* .load_time */ MINUTES(11), /* .unload_time */ MINUTES(173) /* .erase_time */ }, /* * [1] The IBM 3592 Cartridge has only one density at this time, * Compression is controlled via the Device Configuration mode page. * [2] The IBM 3592 Cartridge has only one speed (if the driver ever cares). */ { /* Structure member Description */ /* ---------------- ----------- */ "IBM 3592 Cartridge", /* .name Display ("pretty") name */ 13, /* .length Length of next item... */ "IBM 03592", /* .vid Vendor-product ID string */ MT_LTO, /* .type Numeric type (cf. mtio.h) */ 0, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_VARIABLE | /* 00001 Supports variable length */ ST_BSF | /* 00008 Supports SPACE block fwd */ ST_BSR | /* 00010 Supports SPACE block rev */ ST_AUTODEN_OVERRIDE | /* 00040 Autodensity override flag */ ST_KNOWS_EOD | /* 00200 Recognizes end-of-data */ ST_UNLOADABLE | /* 00400 Driver can be unloaded */ ST_NO_RECSIZE_LIMIT | /* 08000 Supports blocks > 64KB */ ST_MODE_SEL_COMP, /* 10000 [Note 1] */ /* ----- */ /* 18659 */ -1, /* .max_rretries Not used any more. */ -1, /* .max_wretries Not used any more. */ {0x51, 0x51, 0x51, 0x51}, /* .densities Density codes [Note 1] */ MT_DENSITY4, /* .default_density (.densities[x]) */ {0, 0, 0, 0}, /* .speeds Speed codes [Note 2] */ MINUTES(1), /* .non_motion_time */ MINUTES(18), /* .io_time */ MINUTES(8), /* .rewind_time */ MINUTES(14), /* .space_time worst case directory invalid*/ MINUTES(12), /* .load_time */ MINUTES(12), /* .unload_time */ MINUTES(235) /* .erase_time */ }, /* * Seagate Hornet NS20 USB Travan * * NOTES * ----- * o This drive is not OEM'ed or qualified by Sun. * * [1] The NS20 Travan uses 0 or the "default" density code. * [2] The NS20 Travan has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Seagate Hornet NS20 Travan", /* .name Display ("pretty") name */ 17, /* .length Length of next item... */ "Seagate STT20000A", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports back SPACE file */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0040A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ }, /* * Seagate Hornet Travan 40 * * NOTES * ----- * o This drive is not OEM'ed or qualified by Sun. * * [1] The Travan uses 0 or the "default" density code. * [2] The Travan has only one speed (if the driver ever cares). * [3] max_rretries and max_wretries are driver anachronisms. */ { /* Structure member Description */ /* ---------------- ----------- */ "Seagate Hornet Travan 40", /* .name Display ("pretty") name */ 16, /* .length Length of next item... */ "Seagate STT3401A", /* .vid Vendor-product ID string */ MT_ISQIC, /* .type Numeric type (cf. mtio.h) */ 512, /* .bsize Block size (0 = variable) */ /* .options Drive option flags: */ ST_QIC | /* 00002 QIC tape device */ ST_BSF | /* 00008 Supports back SPACE file */ ST_UNLOADABLE, /* 00400 Driver can be unloaded */ /* ----- */ /* 0040A */ 400, /* .max_rretries [Note 3] */ 400, /* .max_wretries [Note 3] */ {0x00, 0x00, 0x00, 0x00}, /* .densities Density codes [Note 1] */ MT_DENSITY1, /* .default_density (.densities[x]) */ {0, 0, 0, 0} /* .speeds Speed codes [Note 2] */ } /* END CSTYLED */ }; const int st_ndrivetypes = (sizeof (st_drivetypes)/sizeof (st_drivetypes[0]));