home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
os2
/
gtak212b.zip
/
SOURCE.ZIP
/
TAPE
/
scsitape.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-02
|
3KB
|
100 lines
/*****************************************************************************
* $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;