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

  1. /*****************************************************************************
  2.  * $Id: scsitape.h,v 1.2 1992/09/02 19:05:30 ak Exp $
  3.  *****************************************************************************
  4.  * $Log: scsitape.h,v $
  5.  * Revision 1.2  1992/09/02  19:05:30  ak
  6.  * Version 2.0
  7.  * - EMX version
  8.  * - AIX version
  9.  * - SCSI-2 commands
  10.  * - ADD Driver
  11.  * - blocksize support
  12.  *
  13.  * Revision 1.1.1.1  1992/01/06  20:27:35  ak
  14.  * Interface now based on ST01 and ASPI.
  15.  * AHA_DRVR no longer supported.
  16.  * Files reorganized.
  17.  *
  18.  * Revision 1.1  1992/01/06  20:27:34  ak
  19.  * Initial revision
  20.  *
  21.  *****************************************************************************/
  22.  
  23. /*
  24.  * SCSI Tape Definitions.
  25.  */
  26.  
  27. #if defined(unix) && !defined(__GNUC__)
  28. #define BitFieldType    unsigned
  29. #else
  30. #define BitFieldType    unsigned char
  31. #endif
  32.  
  33. struct TDC3600_Mode {
  34.     struct BasicMode {
  35.     unsigned char    mode_data_len;
  36.     unsigned char    media_type;
  37.     BitFieldType    speed_code    : 4;
  38.     BitFieldType    buffered_mode    : 1;
  39.     BitFieldType    reserved_1    : 2;
  40.     BitFieldType    write_protected    : 1;
  41.     unsigned char    ext_data_len;
  42.     } m;
  43.     struct BlockMode {
  44.     unsigned char    density_cod;
  45.     unsigned char    reserved [4];
  46.     unsigned char    block_size [3];
  47.     } b;
  48.     struct VendorMode {
  49.     unsigned char    page_code;
  50.     unsigned char    write_treshold;
  51.     unsigned char    read_treshold;
  52.     unsigned char    buffer_size;
  53.     unsigned char    forced_count [2];
  54.     unsigned char    bus_treshold;
  55.     unsigned char    copy_treshold;
  56.     unsigned char    normal_sense_treshold;
  57.     unsigned char    copy_sense_treshold;
  58.     unsigned char    load_function;
  59.     unsigned char    power_up_delay;
  60.     } v;
  61. };
  62. #define TDC3600ModeDataSize    (8+8+12)
  63.  
  64. typedef struct Tape_Extended_Sense {
  65.     BitFieldType    page_code    : 7;            /* 0 */
  66.     BitFieldType    valid_address    : 1;
  67.     BitFieldType    segment        : 8;            /* 1 */
  68.     BitFieldType    sense_key    : 4;            /* 2 */
  69.     BitFieldType    _reserved_    : 1;
  70.     BitFieldType    incorrect_length: 1;
  71.     BitFieldType    end_of_media    : 1;
  72.     BitFieldType    filemark    : 1;
  73.     unsigned char    info [4];                /* 3 */
  74.     unsigned char    additional_length;            /* 7 */
  75.     union {
  76.         struct TDC3600_Sense {
  77.             unsigned char    src_sense_ptr;        /* 8 */
  78.             unsigned char    dst_sense_ptr;        /* 9 */
  79.             unsigned char    reserved_1 [2];        /* 10 */
  80.             unsigned char    no_recovered [2];    /* 12 */
  81.             unsigned char    error;            /* 14 */
  82.             unsigned char    xerror;            /* 15 */
  83.             unsigned char    no_blocks [3];        /* 16 */
  84.             unsigned char    no_filemarks [2];    /* 19 */
  85.             unsigned char    no_underruns [2];    /* 21 */
  86.             unsigned char    no_marginal;        /* 23 */
  87.             unsigned char    no_remaining;        /* 24 */
  88.             unsigned char    copy_sense_data [1];    /* 25 */
  89.         } tdc;
  90.         struct SCSI2_Sense {
  91.             unsigned char    cmd_specific [4];    /* 8 */
  92.             unsigned char    asc;            /* 12 */
  93.             unsigned char    ascq;            /* 13 */
  94.             unsigned char    unit_code;        /* 14 */
  95.             unsigned char    sense_key_specific [3];    /* 15 */
  96.             unsigned char    additional [1];        /* 18 */
  97.         } scsi2;
  98.     } u;
  99. } ExtSenseData;
  100.