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

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

unix.superglobalmegacorp.com

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