|
|
1.1 ! root 1: /* @(#)streg.h 1.1 86/02/03 SMI */ ! 2: ! 3: /* ! 4: * Copyright (c) 1985 by Sun Microsystems, Inc. ! 5: */ ! 6: ! 7: /* ! 8: * Defines for SCSI tape. ! 9: */ ! 10: #define DEV_BSIZE 512 ! 11: #define SENSE_LENGTH 16 ! 12: ! 13: /* ! 14: * Open flag codes ! 15: */ ! 16: #define CLOSED 0 ! 17: #define OPENING 1 ! 18: #define OPEN_FAILED 2 ! 19: #define OPEN 3 ! 20: #define CLOSING 4 ! 21: ! 22: /* ! 23: * Operation codes. ! 24: */ ! 25: #define SC_REWIND SC_REZERO_UNIT ! 26: #define SC_WRITE_FILE_MARK 0x10 ! 27: #define SC_SPACE 0x11 ! 28: #define SC_MODE_SELECT 0x15 ! 29: #define SC_ERASE_CARTRIDGE 0x19 ! 30: #define SC_LOAD 0x1b ! 31: #define SC_SPACE_FILE 0x81 /* phony - for internal use only */ ! 32: #define SC_SPACE_REC 0x82 /* phony - for internal use only */ ! 33: ! 34: #define ST_TYPE_INVALID 0x00 ! 35: ! 36: /* ! 37: * Parameter list for the MODE_SELECT command. ! 38: * The parameter list contains a header, followed by zero or more ! 39: * block descriptors, followed by vendor unique parameters, if any. ! 40: */ ! 41: struct st_ms_hdr { ! 42: u_char reserved1; /* reserved */ ! 43: u_char reserved2; /* reserved */ ! 44: u_char :1; /* reserved */ ! 45: u_char bufm :3; /* buffered mode */ ! 46: u_char speed :4; /* speed */ ! 47: u_char bd_len; /* length in bytes of all block descs */ ! 48: }; ! 49: ! 50: struct st_ms_bd { ! 51: u_char density; /* density code */ ! 52: u_char high_nb; /* num of logical blocks on the medium that */ ! 53: u_char mid_nb; /* are to be formatted with the density code */ ! 54: u_char low_nb; /* and block length in block desc */ ! 55: u_char reserved; /* reserved */ ! 56: u_char high_bl; /* block length */ ! 57: u_char mid_bl; /* block length */ ! 58: u_char low_bl; /* block length */ ! 59: }; ! 60: ! 61: /* ! 62: * Mode Select Parameter List expected by emulex controllers. ! 63: */ ! 64: struct st_emulex_mspl { ! 65: struct st_ms_hdr hdr; /* mode select header */ ! 66: struct st_ms_bd bd; /* block descriptor */ ! 67: u_char :5; /* unused */ ! 68: u_char dea :1; /* disable erase ahead */ ! 69: u_char aui :1; /* auto-load inhibit */ ! 70: u_char sec :1; /* soft error count */ ! 71: }; ! 72: #define EM_MS_PL_LEN 13 /* length of mode select param list */ ! 73: #define EM_MS_BD_LEN 8 /* length of block descriptors */ ! 74: ! 75: /* ! 76: * Sense info returned by Archive controllers. ! 77: */ ! 78: struct st_archive_sense { ! 79: struct scsi_ext_sense ext_sense; /* generic extended sense format */ ! 80: /* u_char rserved[4]; ! 81: u_char retries_msb; /* retry count, most signif byte */ ! 82: /* u_char retries_lsb; /* retry count, most signif byte */ ! 83: }; ! 84: ! 85: /* number of emulex sense bytes in addition to generic extended sense */ ! 86: #define AR_ES_ADD_LEN 0 ! 87: ! 88: /* ! 89: * Macros for getting information from the sense data returned ! 90: * by the tape controller. ! 91: */ ! 92: #define ST_FILE_MARK(dsi, sense) \ ! 93: (((struct scsi_ext_sense *)sense)->fil_mk) ! 94: ! 95: #define ST_WRITE_PROT(dsi, sense) \ ! 96: (((struct scsi_ext_sense *)sense)->key == SC_DATA_PROTECT) ! 97: ! 98: #define ST_EOT(dsi, sense) \ ! 99: (((struct scsi_ext_sense *)sense)->eom) ! 100: ! 101: #define ST_ILLEGAL(dsi, sense) \ ! 102: (((struct scsi_ext_sense *)sense)->key == SC_ILLEGAL_REQUEST) ! 103: ! 104: #define ST_NO_CART(dsi, sense) \ ! 105: (((struct scsi_ext_sense *)sense)->key == SC_NOT_READY) ! 106: ! 107: #define ST_RESET(dsi, sense) \ ! 108: (((struct scsi_ext_sense *)sense)->key == SC_UNIT_ATTENTION) ! 109: ! 110: #define ST_CORRECTABLE(dsi, sense) \ ! 111: (((struct scsi_ext_sense *)sense)->key == SC_RECOVERABLE_ERROR) ! 112: ! 113: #define ST_EOD(dsi, sense) \ ! 114: (((struct scsi_ext_sense *)sense)->key == SC_BLANK_CHECK)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.