Annotation of Net2/scsi/scsi_tape.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * HISTORY
                      3:  * $Log: scsi_tape.h,v $
                      4:  * Revision 1.1  1993/03/21 18:13:02  cgd
                      5:  * after 0.2.2 "stable" patches applied
                      6:  *
                      7:  * Revision 1.2  1993/01/26  18:39:08  julian
                      8:  * add the 'write protected' bit in the device status struct.
                      9:  *
                     10:  * Revision 1.1  1992/09/26  22:10:21  julian
                     11:  * Initial revision
                     12:  *
                     13:  *
                     14:  * PATCHES MAGIC                LEVEL   PATCH THAT GOT US HERE
                     15:  * --------------------         -----   ----------------------
                     16:  * CURRENT PATCH LEVEL:         1       00098
                     17:  * --------------------         -----   ----------------------
                     18:  *
                     19:  * 16 Feb 93   Julian Elischer         ADDED for SCSI system
                     20:  * 
                     21:  */
                     22: 
                     23: /*
                     24:  * SCSI tape interface description
                     25:  */
                     26: 
                     27: /*
                     28:  * Written by Julian Elischer ([email protected])
                     29:  * for TRW Financial Systems.
                     30:  *
                     31:  * TRW Financial Systems, in accordance with their agreement with Carnegie
                     32:  * Mellon University, makes this software available to CMU to distribute
                     33:  * or use in any manner that they see fit as long as this message is kept with 
                     34:  * the software. For this reason TFS also grants any other persons or
                     35:  * organisations permission to use or modify this software.
                     36:  *
                     37:  * TFS supplies this software to be publicly redistributed
                     38:  * on the understanding that TFS is not responsible for the correct
                     39:  * functioning of this software in any circumstances.
                     40:  *
                     41:  */
                     42: 
                     43: /*
                     44:  * Ported to run under 386BSD by Julian Elischer ([email protected]) Sept 1992
                     45:  */
                     46: 
                     47: /*
                     48:  * SCSI command format
                     49:  */
                     50: 
                     51: 
                     52: struct scsi_rw_tape
                     53: {
                     54:        u_char  op_code;
                     55:        u_char  fixed:1;
                     56:        u_char  :4;     
                     57:        u_char  lun:3;
                     58:        u_char  len[3];
                     59:        u_char  link:1;
                     60:        u_char  flag:1;
                     61:        u_char  :6;
                     62: } rw_tape;
                     63: 
                     64: struct scsi_space
                     65: {
                     66:        u_char  op_code;
                     67:        u_char  code:2;
                     68:        u_char  :3;
                     69:        u_char  lun:3;
                     70:        u_char  number[3];
                     71:        u_char  link:1;
                     72:        u_char  flag:1;
                     73:        u_char  :6;
                     74: } space;
                     75: #define SP_BLKS        0
                     76: #define SP_FILEMARKS 1
                     77: #define SP_SEQ_FILEMARKS 2
                     78: #define        SP_EOM  3
                     79: 
                     80: struct scsi_write_filemarks
                     81: {
                     82:        u_char  op_code;
                     83:        u_char  :5;
                     84:        u_char  lun:3;
                     85:        u_char  number[3];
                     86:        u_char  link:1;
                     87:        u_char  flag:1;
                     88:        u_char  :6;
                     89: } write_filemarks;
                     90: 
                     91: struct scsi_rewind
                     92: {
                     93:        u_char  op_code;
                     94:        u_char  immed:1;
                     95:        u_char  :4;
                     96:        u_char  lun:3;
                     97:        u_char  unused[3];
                     98:        u_char  link:1;
                     99:        u_char  flag:1;
                    100:        u_char  :6;
                    101: } rewind;
                    102: 
                    103: struct scsi_load
                    104: {
                    105:        u_char  op_code;
                    106:        u_char  immed:1;
                    107:        u_char  :4;
                    108:        u_char  lun:3;
                    109:        u_char  unused[2];
                    110:        u_char  load:1;
                    111:        u_char  reten:1;
                    112:        u_char  :6;
                    113:        u_char  link:1;
                    114:        u_char  flag:1;
                    115:        u_char  :6;
                    116: } load;
                    117: #define LD_UNLOAD 0
                    118: #define LD_LOAD 1
                    119: 
                    120: struct scsi_blk_limits
                    121: {
                    122:        u_char  op_code;
                    123:        u_char  :5;
                    124:        u_char  lun:3;
                    125:        u_char  unused[3];
                    126:        u_char  link:1;
                    127:        u_char  flag:1;
                    128:        u_char  :6;
                    129: } blk_limits;
                    130: 
                    131: /*
                    132:  * Opcodes
                    133:  */
                    134: 
                    135: #define REWIND                 0x01
                    136: #define        READ_BLK_LIMITS         0x05
                    137: #define        READ_COMMAND_TAPE       0x08
                    138: #define WRITE_COMMAND_TAPE     0x0a
                    139: #define        WRITE_FILEMARKS         0x10
                    140: #define        SPACE                   0x11
                    141: #define LOAD_UNLOAD            0x1b /* same as above */
                    142: 
                    143: 
                    144: 
                    145: struct scsi_blk_limits_data
                    146: {
                    147:        u_char  reserved;
                    148:        u_char  max_length_2;   /* Most significant */
                    149:        u_char  max_length_1;
                    150:        u_char  max_length_0;   /* Least significant */
                    151:        u_char  min_length_1;   /* Most significant */
                    152:        u_char  min_length_0;   /* Least significant */
                    153: };
                    154: 
                    155: struct scsi_mode_header_tape
                    156: {
                    157:        u_char  data_length;    /* Sense data length */
                    158:        u_char  medium_type;
                    159:        u_char  speed:4;
                    160:        u_char  buf_mode:3;
                    161:        u_char  write_protected:1;
                    162:        u_char  blk_desc_len;
                    163: };
                    164: 
                    165: 
                    166: #define QIC_120     0x0f
                    167: #define QIC_150     0x10
                    168: #define QIC_320     0x11
                    169: #define QIC_525     0x11
                    170: #define QIC_1320     0x12
                    171: 
                    172: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.