Annotation of Net2/scsi/scsi_tape.h, revision 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.