home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
- * $Id: scsitape.h,v 1.2 1992/09/02 19:05:30 ak Exp $
- *****************************************************************************
- * $Log: scsitape.h,v $
- * Revision 1.2 1992/09/02 19:05:30 ak
- * Version 2.0
- * - EMX version
- * - AIX version
- * - SCSI-2 commands
- * - ADD Driver
- * - blocksize support
- *
- * Revision 1.1.1.1 1992/01/06 20:27:35 ak
- * Interface now based on ST01 and ASPI.
- * AHA_DRVR no longer supported.
- * Files reorganized.
- *
- * Revision 1.1 1992/01/06 20:27:34 ak
- * Initial revision
- *
- *****************************************************************************/
-
- /*
- * SCSI Tape Definitions.
- */
-
- #if defined(unix) && !defined(__GNUC__)
- #define BitFieldType unsigned
- #else
- #define BitFieldType unsigned char
- #endif
-
- struct TDC3600_Mode {
- struct BasicMode {
- unsigned char mode_data_len;
- unsigned char media_type;
- BitFieldType speed_code : 4;
- BitFieldType buffered_mode : 1;
- BitFieldType reserved_1 : 2;
- BitFieldType write_protected : 1;
- unsigned char ext_data_len;
- } m;
- struct BlockMode {
- unsigned char density_cod;
- unsigned char reserved [4];
- unsigned char block_size [3];
- } b;
- struct VendorMode {
- unsigned char page_code;
- unsigned char write_treshold;
- unsigned char read_treshold;
- unsigned char buffer_size;
- unsigned char forced_count [2];
- unsigned char bus_treshold;
- unsigned char copy_treshold;
- unsigned char normal_sense_treshold;
- unsigned char copy_sense_treshold;
- unsigned char load_function;
- unsigned char power_up_delay;
- } v;
- };
- #define TDC3600ModeDataSize (8+8+12)
-
- typedef struct Tape_Extended_Sense {
- BitFieldType page_code : 7; /* 0 */
- BitFieldType valid_address : 1;
- BitFieldType segment : 8; /* 1 */
- BitFieldType sense_key : 4; /* 2 */
- BitFieldType _reserved_ : 1;
- BitFieldType incorrect_length: 1;
- BitFieldType end_of_media : 1;
- BitFieldType filemark : 1;
- unsigned char info [4]; /* 3 */
- unsigned char additional_length; /* 7 */
- union {
- struct TDC3600_Sense {
- unsigned char src_sense_ptr; /* 8 */
- unsigned char dst_sense_ptr; /* 9 */
- unsigned char reserved_1 [2]; /* 10 */
- unsigned char no_recovered [2]; /* 12 */
- unsigned char error; /* 14 */
- unsigned char xerror; /* 15 */
- unsigned char no_blocks [3]; /* 16 */
- unsigned char no_filemarks [2]; /* 19 */
- unsigned char no_underruns [2]; /* 21 */
- unsigned char no_marginal; /* 23 */
- unsigned char no_remaining; /* 24 */
- unsigned char copy_sense_data [1]; /* 25 */
- } tdc;
- struct SCSI2_Sense {
- unsigned char cmd_specific [4]; /* 8 */
- unsigned char asc; /* 12 */
- unsigned char ascq; /* 13 */
- unsigned char unit_code; /* 14 */
- unsigned char sense_key_specific [3]; /* 15 */
- unsigned char additional [1]; /* 18 */
- } scsi2;
- } u;
- } ExtSenseData;
-