taglinefilesource code
STp155drivers/scsi/st.cScsi_Tape * STp;
STp158drivers/scsi/st.cSTp = &(scsi_tapes[st_nbr]);
STp159drivers/scsi/st.cif ((STp->buffer)->writing &&
STp171drivers/scsi/st.c(STp->buffer)->last_result = SCpnt->result; /* Error */
STp173drivers/scsi/st.c(STp->buffer)->last_result = INT_MAX; /* OK */
STp176drivers/scsi/st.c(STp->buffer)->last_result = SCpnt->result;
STp177drivers/scsi/st.c(STp->buffer)->last_result_fatal = st_chk_result(SCpnt);
STp178drivers/scsi/st.cif ((STp->buffer)->writing)
STp182drivers/scsi/st.cif ((STp->buffer)->writing <= 0)
STp183drivers/scsi/st.cwake_up( &(STp->waiting) );
STp196drivers/scsi/st.cScsi_Tape * STp;
STp199drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp200drivers/scsi/st.cSTbuffer = STp->buffer;
STp205drivers/scsi/st.csleep_on( &(STp->waiting) );
STp215drivers/scsi/st.cif (STp->drv_block >= 0) {
STp216drivers/scsi/st.cif (STp->block_size == 0)
STp217drivers/scsi/st.cSTp->drv_block++;
STp219drivers/scsi/st.cSTp->drv_block += STbuffer->writing / STp->block_size;
STp233drivers/scsi/st.cScsi_Tape *STp = &(scsi_tapes[dev]);
STp241drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp245drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data, 0,
STp248drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp250drivers/scsi/st.cif ((STp->buffer)->last_result != 0) {
STp252drivers/scsi/st.c(STp->mt_status)->mt_fileno += 1;
STp253drivers/scsi/st.c(STp->mt_status)->mt_blkno = 0;
STp256drivers/scsi/st.creturn (STp->buffer)->last_result_fatal;
STp268drivers/scsi/st.cScsi_Tape *STp = &(scsi_tapes[dev]);
STp270drivers/scsi/st.cif ((STp->buffer)->writing) {
STp272drivers/scsi/st.cif ((STp->buffer)->last_result_fatal) {
STp276drivers/scsi/st.c(STp->buffer)->last_result);
STp278drivers/scsi/st.cif ((STp->buffer)->last_result == INT_MAX)
STp285drivers/scsi/st.cif (STp->dirty == 1) {
STp286drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp288drivers/scsi/st.coffset = (STp->buffer)->buffer_bytes;
STp289drivers/scsi/st.ctransfer = ((offset + STp->block_size - 1) /
STp290drivers/scsi/st.cSTp->block_size) * STp->block_size;
STp295drivers/scsi/st.cmemset((STp->buffer)->b_data + offset, 0, transfer - offset);
STp301drivers/scsi/st.cblks = transfer / STp->block_size;
STp307drivers/scsi/st.c(void *) cmd, (STp->buffer)->b_data, transfer,
STp310drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp312drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp317drivers/scsi/st.cSTp->dirty = 0;
STp318drivers/scsi/st.c(STp->buffer)->buffer_bytes = 0;
STp323drivers/scsi/st.cSTp->drv_block = (-1);
STp326drivers/scsi/st.cif (STp->drv_block >= 0)
STp327drivers/scsi/st.cSTp->drv_block += blks;
STp328drivers/scsi/st.cSTp->dirty = 0;
STp329drivers/scsi/st.c(STp->buffer)->buffer_bytes = 0;
STp344drivers/scsi/st.cScsi_Tape * STp;
STp348drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp349drivers/scsi/st.cSTbuffer = STp->buffer;
STp351drivers/scsi/st.cif (STp->ready != ST_READY)
STp354drivers/scsi/st.cif (STp->rw == ST_WRITING)  /* Writing */
STp357drivers/scsi/st.cif (STp->block_size == 0)
STp360drivers/scsi/st.cbackspace = ((STp->buffer)->buffer_bytes +
STp361drivers/scsi/st.c(STp->buffer)->read_pointer) / STp->block_size -
STp362drivers/scsi/st.c((STp->buffer)->read_pointer + STp->block_size - 1) /
STp363drivers/scsi/st.cSTp->block_size;
STp364drivers/scsi/st.c(STp->buffer)->buffer_bytes = 0;
STp365drivers/scsi/st.c(STp->buffer)->read_pointer = 0;
STp368drivers/scsi/st.cif ((STp->eof == ST_FM) && !STp->eof_hit) {
STp371drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp372drivers/scsi/st.cSTp->eof_hit = 0;
STp392drivers/scsi/st.cScsi_Tape * STp;
STp397drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp398drivers/scsi/st.cif (STp->in_use) {
STp411drivers/scsi/st.cSTp->buffer = st_buffers[i];
STp412drivers/scsi/st.c(STp->buffer)->in_use = 1;
STp413drivers/scsi/st.c(STp->buffer)->writing = 0;
STp414drivers/scsi/st.cSTp->in_use = 1;
STp417drivers/scsi/st.cSTp->write_prot = ((flags & O_ACCMODE) == O_RDONLY);
STp419drivers/scsi/st.cSTp->dirty = 0;
STp420drivers/scsi/st.cSTp->rw = ST_IDLE;
STp421drivers/scsi/st.cSTp->ready = ST_READY;
STp422drivers/scsi/st.cif (STp->eof != ST_EOD)  /* Save EOD across opens */
STp423drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp424drivers/scsi/st.cSTp->eof_hit = 0;
STp425drivers/scsi/st.cSTp->recover_count = 0;
STp427drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp438drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data,
STp442drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp446drivers/scsi/st.c(STp->mt_status)->mt_fileno = 0 ;
STp452drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data,
STp456drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp457drivers/scsi/st.c(STp->mt_status)->mt_fileno = STp->drv_block = 0;
STp458drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp461drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp464drivers/scsi/st.c(STp->mt_status)->mt_fileno = STp->drv_block = 0 ;
STp466drivers/scsi/st.cSTp->ready = ST_NO_TAPE;
STp469drivers/scsi/st.c(STp->mt_status)->mt_fileno = STp->drv_block = (-1);
STp470drivers/scsi/st.cSTp->ready = ST_NOT_READY;
STp473drivers/scsi/st.c(STp->buffer)->in_use = 0;
STp474drivers/scsi/st.cSTp->buffer = NULL;
STp475drivers/scsi/st.cSTp->density = 0;   /* Clear the erroneous "residue" */
STp476drivers/scsi/st.cSTp->write_prot = 0;
STp477drivers/scsi/st.cSTp->block_size = 0;
STp478drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp479drivers/scsi/st.c(STp->mt_status)->mt_fileno = STp->drv_block = 0;
STp488drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data,
STp491drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp494drivers/scsi/st.cSTp->max_block = ((STp->buffer)->b_data[1] << 16) |
STp495drivers/scsi/st.c((STp->buffer)->b_data[2] << 8) | (STp->buffer)->b_data[3];
STp496drivers/scsi/st.cSTp->min_block = ((STp->buffer)->b_data[4] << 8) |
STp497drivers/scsi/st.c(STp->buffer)->b_data[5];
STp500drivers/scsi/st.cprintk("st%d: Block limits %d - %d bytes.\n", dev, STp->min_block,
STp501drivers/scsi/st.cSTp->max_block);
STp505drivers/scsi/st.cSTp->min_block = STp->max_block = (-1);
STp518drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data,
STp521drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp523drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp528drivers/scsi/st.c(STp->buffer)->b_data[2] =
STp529drivers/scsi/st.c(STp->buffer)->b_data[3] = 0;
STp536drivers/scsi/st.c(STp->buffer)->b_data[0], (STp->buffer)->b_data[1],
STp537drivers/scsi/st.c(STp->buffer)->b_data[2], (STp->buffer)->b_data[3]);
STp540drivers/scsi/st.cif ((STp->buffer)->b_data[3] >= 8) {
STp541drivers/scsi/st.cSTp->drv_buffer = ((STp->buffer)->b_data[2] >> 4) & 7;
STp542drivers/scsi/st.cSTp->density = (STp->buffer)->b_data[4];
STp543drivers/scsi/st.cSTp->block_size = (STp->buffer)->b_data[9] * 65536 +
STp544drivers/scsi/st.c(STp->buffer)->b_data[10] * 256 + (STp->buffer)->b_data[11];
STp548drivers/scsi/st.cdev, STp->density, (STp->buffer)->b_data[5] * 65536 +
STp549drivers/scsi/st.c(STp->buffer)->b_data[6] * 256 + (STp->buffer)->b_data[7],
STp550drivers/scsi/st.cSTp->drv_buffer);
STp552drivers/scsi/st.cif (STp->block_size > st_buffer_size) {
STp554drivers/scsi/st.cSTp->block_size);
STp555drivers/scsi/st.c(STp->buffer)->in_use = 0;
STp556drivers/scsi/st.cSTp->in_use = 0;
STp562drivers/scsi/st.cSTp->block_size = 512;  /* "Educated Guess" (?) */
STp564drivers/scsi/st.cif (STp->block_size > 0) {
STp565drivers/scsi/st.c(STp->buffer)->buffer_blocks = st_buffer_size / STp->block_size;
STp566drivers/scsi/st.c(STp->buffer)->buffer_size =
STp567drivers/scsi/st.c(STp->buffer)->buffer_blocks * STp->block_size;
STp570drivers/scsi/st.c(STp->buffer)->buffer_blocks = 1;
STp571drivers/scsi/st.c(STp->buffer)->buffer_size = st_buffer_size;
STp573drivers/scsi/st.c(STp->buffer)->buffer_bytes = (STp->buffer)->read_pointer = 0;
STp578drivers/scsi/st.cSTp->block_size, (STp->buffer)->buffer_size,
STp579drivers/scsi/st.c(STp->buffer)->buffer_blocks);
STp582drivers/scsi/st.cSTp->drv_write_prot = ((STp->buffer)->b_data[2] & 0x80) != 0;
STp583drivers/scsi/st.cif (STp->drv_write_prot) {
STp584drivers/scsi/st.cSTp->write_prot = 1;
STp604drivers/scsi/st.cScsi_Tape * STp;
STp609drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp611drivers/scsi/st.cif ( STp->rw == ST_WRITING) {
STp621drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp626drivers/scsi/st.ccmd[4] = 1 + STp->two_fm;
STp629drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data,
STp632drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp634drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp640drivers/scsi/st.c(STp->mt_status)->mt_fileno++ ;
STp641drivers/scsi/st.cSTp->drv_block = 0;
STp642drivers/scsi/st.cif (STp->two_fm)
STp655drivers/scsi/st.cif ((STp->eof == ST_FM) && !STp->eof_hit)
STp665drivers/scsi/st.cif (STp->buffer != NULL)
STp666drivers/scsi/st.c(STp->buffer)->in_use = 0;
STp667drivers/scsi/st.cSTp->in_use = 0;
STp683drivers/scsi/st.cScsi_Tape * STp;
STp686drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp687drivers/scsi/st.cif (STp->ready != ST_READY)
STp690drivers/scsi/st.cif (!STp->in_use) {
STp696drivers/scsi/st.cif (STp->write_prot)
STp699drivers/scsi/st.cif (STp->block_size == 0 && count > st_buffer_size)
STp702drivers/scsi/st.cif (STp->rw == ST_READING) {
STp706drivers/scsi/st.cSTp->rw = ST_WRITING;
STp709drivers/scsi/st.cif (STp->moves_after_eof < 255)
STp710drivers/scsi/st.cSTp->moves_after_eof++;
STp712drivers/scsi/st.cif ((STp->buffer)->writing) {
STp714drivers/scsi/st.cif ((STp->buffer)->last_result_fatal) {
STp718drivers/scsi/st.c(STp->buffer)->last_result);
STp720drivers/scsi/st.cif ((STp->buffer)->last_result == INT_MAX) {
STp722drivers/scsi/st.cSTp->eof = ST_EOM_OK;
STp730drivers/scsi/st.cif (STp->eof == ST_EOM_OK)
STp732drivers/scsi/st.celse if (STp->eof == ST_EOM_ERROR)
STp735drivers/scsi/st.cif (!STp->do_buffer_writes) {
STp736drivers/scsi/st.cif (STp->block_size != 0 && (count % STp->block_size) != 0)
STp741drivers/scsi/st.cwrite_threshold = (STp->buffer)->buffer_size;
STp742drivers/scsi/st.cif (!STp->do_async_writes)
STp745drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp751drivers/scsi/st.ccmd[1] = (STp->block_size != 0);
STp753drivers/scsi/st.cSTp->rw = ST_WRITING;
STp756drivers/scsi/st.cwhile((STp->block_size == 0 && !STp->do_async_writes && count > 0) ||
STp757drivers/scsi/st.c(STp->block_size != 0 &&
STp758drivers/scsi/st.c(STp->buffer)->buffer_bytes + count > write_threshold))
STp760drivers/scsi/st.cif (STp->block_size == 0)
STp763drivers/scsi/st.cdo_count = (STp->buffer)->buffer_size - (STp->buffer)->buffer_bytes;
STp767drivers/scsi/st.cmemcpy_fromfs((STp->buffer)->b_data +
STp768drivers/scsi/st.c(STp->buffer)->buffer_bytes, b_point, do_count);
STp770drivers/scsi/st.cif (STp->block_size == 0)
STp773drivers/scsi/st.cblks = ((STp->buffer)->buffer_bytes + do_count) /
STp774drivers/scsi/st.cSTp->block_size;
STp775drivers/scsi/st.ctransfer = blks * STp->block_size;
STp783drivers/scsi/st.c(void *) cmd, (STp->buffer)->b_data, transfer,
STp786drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp788drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp795drivers/scsi/st.cif (STp->block_size != 0 && (SCpnt->sense_buffer[0] & 0x80) != 0)
STp799drivers/scsi/st.celse if (STp->block_size == 0 &&
STp804drivers/scsi/st.cif (STp->block_size != 0)
STp805drivers/scsi/st.ctransfer *= STp->block_size;
STp809drivers/scsi/st.cif (STp->drv_block >= 0) {
STp810drivers/scsi/st.cif (STp->block_size == 0 && transfer < do_count)
STp811drivers/scsi/st.cSTp->drv_block++;
STp812drivers/scsi/st.celse if (STp->block_size != 0)
STp813drivers/scsi/st.cSTp->drv_block += (do_count - transfer) / STp->block_size;
STp815drivers/scsi/st.cSTp->eof = ST_EOM_OK;
STp824drivers/scsi/st.cSTp->eof = ST_EOM_ERROR;
STp825drivers/scsi/st.cSTp->drv_block = (-1);    /* Too cautious? */
STp834drivers/scsi/st.cSTp->drv_block = (-1);    /* Too cautious? */
STp839drivers/scsi/st.c(STp->buffer)->buffer_bytes = 0;
STp840drivers/scsi/st.cSTp->dirty = 0;
STp849drivers/scsi/st.cif (STp->drv_block >= 0) {
STp850drivers/scsi/st.cif (STp->block_size == 0)
STp851drivers/scsi/st.cSTp->drv_block++;
STp853drivers/scsi/st.cSTp->drv_block += blks;
STp855drivers/scsi/st.c(STp->buffer)->buffer_bytes = 0;
STp856drivers/scsi/st.cSTp->dirty = 0;
STp859drivers/scsi/st.cSTp->dirty = 1;
STp860drivers/scsi/st.cmemcpy_fromfs((STp->buffer)->b_data +
STp861drivers/scsi/st.c(STp->buffer)->buffer_bytes,b_point,count);
STp863drivers/scsi/st.c(STp->buffer)->buffer_bytes += count;
STp867drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp869drivers/scsi/st.creturn (STp->buffer)->last_result_fatal;
STp872drivers/scsi/st.cif (STp->do_async_writes &&
STp873drivers/scsi/st.c((STp->buffer)->buffer_bytes >= STp->write_threshold ||
STp874drivers/scsi/st.cSTp->block_size == 0) ) {
STp876drivers/scsi/st.cif (STp->block_size == 0)
STp877drivers/scsi/st.c(STp->buffer)->writing = (STp->buffer)->buffer_bytes;
STp879drivers/scsi/st.c(STp->buffer)->writing = ((STp->buffer)->buffer_bytes /
STp880drivers/scsi/st.cSTp->block_size) * STp->block_size;
STp881drivers/scsi/st.cSTp->dirty = 0;
STp883drivers/scsi/st.cif (STp->block_size == 0)
STp884drivers/scsi/st.cblks = (STp->buffer)->writing;
STp886drivers/scsi/st.cblks = (STp->buffer)->writing / STp->block_size;
STp890drivers/scsi/st.cSCpnt->result = (STp->buffer)->last_result = -1;
STp894drivers/scsi/st.c(void *) cmd, (STp->buffer)->b_data,
STp895drivers/scsi/st.c(STp->buffer)->writing,
STp901drivers/scsi/st.cSTp->at_sm &= (total != 0);
STp915drivers/scsi/st.cScsi_Tape * STp;
STp918drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp919drivers/scsi/st.cif (STp->ready != ST_READY)
STp922drivers/scsi/st.cif (!STp->in_use) {
STp928drivers/scsi/st.cif (STp->block_size == 0 && count > st_buffer_size)
STp931drivers/scsi/st.cif (!(STp->do_read_ahead) && STp->block_size != 0 &&
STp932drivers/scsi/st.c(count % STp->block_size) != 0)
STp935drivers/scsi/st.cif (STp->rw == ST_WRITING) {
STp939drivers/scsi/st.cSTp->rw = ST_READING;
STp941drivers/scsi/st.cif (STp->moves_after_eof < 255)
STp942drivers/scsi/st.cSTp->moves_after_eof++;
STp945drivers/scsi/st.cif (debugging && STp->eof != ST_NOEOF)
STp947drivers/scsi/st.c(STp->buffer)->buffer_bytes);
STp949drivers/scsi/st.cif (((STp->buffer)->buffer_bytes == 0) &&
STp950drivers/scsi/st.c(STp->eof == ST_EOM_OK || STp->eof == ST_EOD))
STp953drivers/scsi/st.cSTp->rw = ST_READING;
STp955drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp959drivers/scsi/st.cif ((STp->buffer)->buffer_bytes == 0 &&
STp960drivers/scsi/st.cSTp->eof == ST_NOEOF) {
STp964drivers/scsi/st.ccmd[1] = (STp->block_size != 0);
STp965drivers/scsi/st.cif (STp->block_size == 0)
STp968drivers/scsi/st.cif (STp->do_read_ahead) {
STp969drivers/scsi/st.cblks = (STp->buffer)->buffer_blocks;
STp970drivers/scsi/st.cbytes = blks * STp->block_size;
STp976drivers/scsi/st.cblks = bytes / STp->block_size;
STp977drivers/scsi/st.cbytes = blks * STp->block_size;
STp987drivers/scsi/st.c(void *) cmd, (STp->buffer)->b_data,
STp988drivers/scsi/st.c(STp->buffer)->buffer_size,
STp991drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp993drivers/scsi/st.c(STp->buffer)->read_pointer = 0;
STp994drivers/scsi/st.cSTp->eof_hit = 0;
STp995drivers/scsi/st.cSTp->at_sm = 0;
STp997drivers/scsi/st.cif ((STp->buffer)->last_result_fatal) {
STp1016drivers/scsi/st.cif (STp->block_size == 0 &&
STp1021drivers/scsi/st.cif (STp->block_size == 0) {
STp1024drivers/scsi/st.c(STp->buffer)->buffer_bytes = bytes - transfer;
STp1033drivers/scsi/st.cSTp->eof = ST_EOM_OK;
STp1034drivers/scsi/st.cif (STp->block_size == 0)
STp1035drivers/scsi/st.c(STp->buffer)->buffer_bytes = bytes - transfer;
STp1037drivers/scsi/st.c(STp->buffer)->buffer_bytes =
STp1038drivers/scsi/st.cbytes - transfer * STp->block_size;
STp1042drivers/scsi/st.c(STp->buffer)->buffer_bytes);
STp1046drivers/scsi/st.cSTp->eof = ST_FM;
STp1047drivers/scsi/st.cif (STp->block_size == 0)
STp1048drivers/scsi/st.c(STp->buffer)->buffer_bytes = 0;
STp1050drivers/scsi/st.c(STp->buffer)->buffer_bytes =
STp1051drivers/scsi/st.cbytes - transfer * STp->block_size;
STp1056drivers/scsi/st.cdev, (STp->buffer)->buffer_bytes, total);
STp1066drivers/scsi/st.cSTp->drv_block = (-1);
STp1069drivers/scsi/st.celse if (STp->moves_after_eof == 1 &&
STp1076drivers/scsi/st.cSTp->eof = ST_EOD;
STp1084drivers/scsi/st.ctransfer = (STp->buffer)->last_result_fatal;
STp1090drivers/scsi/st.c(STp->buffer)->buffer_bytes = bytes;
STp1092drivers/scsi/st.cif (STp->drv_block >= 0) {
STp1093drivers/scsi/st.cif (STp->block_size == 0)
STp1094drivers/scsi/st.cSTp->drv_block++;
STp1096drivers/scsi/st.cSTp->drv_block += (STp->buffer)->buffer_bytes / STp->block_size;
STp1102drivers/scsi/st.cif ((STp->buffer)->buffer_bytes > 0) {
STp1104drivers/scsi/st.cif (debugging && STp->eof != ST_NOEOF)
STp1106drivers/scsi/st.c(STp->buffer)->buffer_bytes, count - total);
STp1108drivers/scsi/st.ctransfer = (STp->buffer)->buffer_bytes < count - total ?
STp1109drivers/scsi/st.c(STp->buffer)->buffer_bytes : count - total;
STp1110drivers/scsi/st.cmemcpy_tofs(buf, (STp->buffer)->b_data +
STp1111drivers/scsi/st.c(STp->buffer)->read_pointer,transfer);
STp1115drivers/scsi/st.c(STp->buffer)->buffer_bytes -= transfer;
STp1116drivers/scsi/st.c(STp->buffer)->read_pointer += transfer;
STp1118drivers/scsi/st.celse if (STp->eof != ST_NOEOF) {
STp1119drivers/scsi/st.cSTp->eof_hit = 1;
STp1121drivers/scsi/st.cif (total == 0 && STp->eof == ST_FM) {
STp1122drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp1123drivers/scsi/st.cSTp->drv_block = 0;
STp1124drivers/scsi/st.cif (STp->moves_after_eof > 1)
STp1125drivers/scsi/st.cSTp->moves_after_eof = 0;
STp1126drivers/scsi/st.c(STp->mt_status)->mt_fileno++;
STp1128drivers/scsi/st.cif (total == 0 && STp->eof == ST_EOM_OK)
STp1133drivers/scsi/st.cif (STp->block_size == 0)
STp1150drivers/scsi/st.cScsi_Tape *STp;
STp1153drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp1155drivers/scsi/st.cSTp->do_buffer_writes = (options & MT_ST_BUFFER_WRITES) != 0;
STp1156drivers/scsi/st.cSTp->do_async_writes  = (options & MT_ST_ASYNC_WRITES) != 0;
STp1157drivers/scsi/st.cSTp->do_read_ahead    = (options & MT_ST_READ_AHEAD) != 0;
STp1158drivers/scsi/st.cSTp->two_fm      = (options & MT_ST_TWO_FM) != 0;
STp1163drivers/scsi/st.cdev, STp->do_buffer_writes, STp->do_async_writes,
STp1164drivers/scsi/st.cSTp->do_read_ahead);
STp1165drivers/scsi/st.cprintk("              two FMs: %d, debugging: %d\n", STp->two_fm,
STp1176drivers/scsi/st.cSTp->write_threshold = value;
STp1179drivers/scsi/st.cSTp->write_threshold);
STp1200drivers/scsi/st.cScsi_Tape * STp;
STp1204drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp1205drivers/scsi/st.cif (STp->ready != ST_READY)
STp1207drivers/scsi/st.cfileno = (STp->mt_status)->mt_fileno ;
STp1208drivers/scsi/st.cblkno = STp->drv_block;
STp1209drivers/scsi/st.cat_sm = STp->at_sm;
STp1322drivers/scsi/st.cif (STp->write_prot)
STp1392drivers/scsi/st.cfileno = (STp->mt_status)->mt_fileno ;
STp1407drivers/scsi/st.cif (STp->write_prot)
STp1418drivers/scsi/st.cif ((STp->device)->scsi_level < SCSI_2) {
STp1447drivers/scsi/st.cif (STp->dirty || (STp->buffer)->buffer_bytes != 0)
STp1451drivers/scsi/st.c(arg < STp->min_block || arg > STp->max_block ||
STp1459drivers/scsi/st.cmemset((STp->buffer)->b_data, 0, 12);
STp1461drivers/scsi/st.c(STp->buffer)->b_data[2] = (arg & 7) << 4;
STp1463drivers/scsi/st.c(STp->buffer)->b_data[2] = 
STp1464drivers/scsi/st.cSTp->drv_buffer << 4;
STp1465drivers/scsi/st.c(STp->buffer)->b_data[3] = 8;     /* block descriptor length */
STp1467drivers/scsi/st.c(STp->buffer)->b_data[4] = arg;
STp1469drivers/scsi/st.c(STp->buffer)->b_data[4] = STp->density;
STp1473drivers/scsi/st.cltmp = STp->block_size;
STp1474drivers/scsi/st.c(STp->buffer)->b_data[9] = (ltmp >> 16);
STp1475drivers/scsi/st.c(STp->buffer)->b_data[10] = (ltmp >> 8);
STp1476drivers/scsi/st.c(STp->buffer)->b_data[11] = ltmp;
STp1482drivers/scsi/st.c(STp->buffer)->b_data[9] * 65536 +
STp1483drivers/scsi/st.c(STp->buffer)->b_data[10] * 256 +
STp1484drivers/scsi/st.c(STp->buffer)->b_data[11]);
STp1487drivers/scsi/st.c(STp->buffer)->b_data[4]);
STp1490drivers/scsi/st.c((STp->buffer)->b_data[2] >> 4) & 7);
STp1499drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp1503drivers/scsi/st.c(void *) cmd, (void *) (STp->buffer)->b_data, datalen,
STp1506drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp1508drivers/scsi/st.cioctl_result = (STp->buffer)->last_result_fatal;
STp1514drivers/scsi/st.cSTp->drv_block = blkno;
STp1515drivers/scsi/st.c(STp->mt_status)->mt_fileno = fileno;
STp1516drivers/scsi/st.cSTp->at_sm = at_sm;
STp1519drivers/scsi/st.cSTp->drv_block = (STp->mt_status)->mt_fileno = (-1);
STp1520drivers/scsi/st.cSTp->at_sm = 0;
STp1523drivers/scsi/st.cSTp->moves_after_eof = 0;
STp1525drivers/scsi/st.cSTp->moves_after_eof = 1;
STp1531drivers/scsi/st.cSTp->block_size = arg;
STp1533drivers/scsi/st.c(STp->buffer)->buffer_blocks =
STp1534drivers/scsi/st.cst_buffer_size / STp->block_size;
STp1535drivers/scsi/st.c(STp->buffer)->buffer_size =
STp1536drivers/scsi/st.c(STp->buffer)->buffer_blocks * STp->block_size;
STp1539drivers/scsi/st.c(STp->buffer)->buffer_blocks = 1;
STp1540drivers/scsi/st.c(STp->buffer)->buffer_size = st_buffer_size;
STp1542drivers/scsi/st.c(STp->buffer)->buffer_bytes =
STp1543drivers/scsi/st.c(STp->buffer)->read_pointer = 0;
STp1546drivers/scsi/st.cSTp->drv_buffer = (arg & 7);
STp1548drivers/scsi/st.cSTp->density = arg;
STp1550drivers/scsi/st.cSTp->eof = ST_EOM_OK;
STp1551drivers/scsi/st.cSTp->eof_hit = 0;
STp1554drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp1555drivers/scsi/st.cSTp->eof_hit = 0;
STp1559drivers/scsi/st.cSTp->eof = ST_EOM_OK;
STp1560drivers/scsi/st.cSTp->eof_hit = 0;
STp1561drivers/scsi/st.cSTp->drv_block = 0;
STp1569drivers/scsi/st.c(STp->mt_status)->mt_fileno = fileno - undone ;
STp1571drivers/scsi/st.c(STp->mt_status)->mt_fileno = fileno + undone ;
STp1574drivers/scsi/st.cSTp->drv_block = blkno - undone;
STp1576drivers/scsi/st.cSTp->drv_block = (-1);
STp1580drivers/scsi/st.cSTp->drv_block = blkno + undone;
STp1582drivers/scsi/st.cSTp->drv_block = (-1);
STp1584drivers/scsi/st.cif (STp->eof == ST_NOEOF &&
STp1586drivers/scsi/st.cSTp->eof = ST_EOD;
STp1605drivers/scsi/st.cScsi_Tape *STp;
STp1608drivers/scsi/st.cSTp = &(scsi_tapes[dev]);
STp1610drivers/scsi/st.cif (debugging && !STp->in_use) {
STp1648drivers/scsi/st.c(STp->mt_status)->mt_dsreg =
STp1649drivers/scsi/st.c((STp->block_size << MT_ST_BLKSIZE_SHIFT) & MT_ST_BLKSIZE_MASK) |
STp1650drivers/scsi/st.c((STp->density << MT_ST_DENSITY_SHIFT) & MT_ST_DENSITY_MASK);
STp1651drivers/scsi/st.c(STp->mt_status)->mt_blkno = STp->drv_block;
STp1652drivers/scsi/st.cif (STp->block_size != 0) {
STp1653drivers/scsi/st.cif (STp->rw == ST_WRITING)
STp1654drivers/scsi/st.c(STp->mt_status)->mt_blkno +=
STp1655drivers/scsi/st.c(STp->buffer)->buffer_bytes / STp->block_size;
STp1656drivers/scsi/st.celse if (STp->rw == ST_READING)
STp1657drivers/scsi/st.c(STp->mt_status)->mt_blkno -= ((STp->buffer)->buffer_bytes +
STp1658drivers/scsi/st.cSTp->block_size - 1) / STp->block_size;
STp1661drivers/scsi/st.c(STp->mt_status)->mt_gstat = 0;
STp1662drivers/scsi/st.cif (STp->drv_write_prot)
STp1663drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_WR_PROT(0xffffffff);
STp1664drivers/scsi/st.cif ((STp->mt_status)->mt_blkno == 0) {
STp1665drivers/scsi/st.cif ((STp->mt_status)->mt_fileno == 0)
STp1666drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_BOT(0xffffffff);
STp1668drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_EOF(0xffffffff);
STp1670drivers/scsi/st.cif (STp->eof == ST_EOM_OK || STp->eof == ST_EOM_ERROR)
STp1671drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_EOT(0xffffffff);
STp1672drivers/scsi/st.celse if (STp->eof == ST_EOD)
STp1673drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_EOD(0xffffffff);
STp1674drivers/scsi/st.cif (STp->density == 1)
STp1675drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_D_800(0xffffffff);
STp1676drivers/scsi/st.celse if (STp->density == 2)
STp1677drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_D_1600(0xffffffff);
STp1678drivers/scsi/st.celse if (STp->density == 3)
STp1679drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_D_6250(0xffffffff);
STp1680drivers/scsi/st.cif (STp->ready == ST_READY)
STp1681drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_ONLINE(0xffffffff);
STp1682drivers/scsi/st.cif (STp->ready == ST_NO_TAPE)
STp1683drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_DR_OPEN(0xffffffff);
STp1684drivers/scsi/st.cif (STp->at_sm)
STp1685drivers/scsi/st.c(STp->mt_status)->mt_gstat |= GMT_SM(0xffffffff);
STp1687drivers/scsi/st.cmemcpy_tofs((char *)arg, (char *)(STp->mt_status),
STp1690drivers/scsi/st.c(STp->mt_status)->mt_erreg = 0;  /* Clear after read */
STp1694drivers/scsi/st.cif (STp->ready != ST_READY)
STp1711drivers/scsi/st.cSCpnt = allocate_device(NULL, STp->device, 1);
STp1715drivers/scsi/st.cif ((STp->device)->scsi_level < SCSI_2) {
STp1726drivers/scsi/st.c(void *) scmd, (void *) (STp->buffer)->b_data,
STp1729drivers/scsi/st.cif (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) );
STp1731drivers/scsi/st.cif ((STp->buffer)->last_result_fatal != 0) {
STp1741drivers/scsi/st.cif ((STp->device)->scsi_level < SCSI_2)
STp1742drivers/scsi/st.cmt_pos.mt_blkno = ((STp->buffer)->b_data[0] << 16) 
STp1743drivers/scsi/st.c+ ((STp->buffer)->b_data[1] << 8) 
STp1744drivers/scsi/st.c+ (STp->buffer)->b_data[2];
STp1746drivers/scsi/st.cmt_pos.mt_blkno = ((STp->buffer)->b_data[4] << 24)
STp1747drivers/scsi/st.c+ ((STp->buffer)->b_data[5] << 16) 
STp1748drivers/scsi/st.c+ ((STp->buffer)->b_data[6] << 8) 
STp1749drivers/scsi/st.c+ (STp->buffer)->b_data[7];
STp1758drivers/scsi/st.celse if (STp->ready == ST_READY)
STp1759drivers/scsi/st.creturn scsi_ioctl(STp->device, cmd_in, (void *) arg);
STp1833drivers/scsi/st.cScsi_Tape * STp;
STp1860drivers/scsi/st.cSTp = &(scsi_tapes[i]);
STp1861drivers/scsi/st.cSTp->device = NULL;
STp1862drivers/scsi/st.cSTp->capacity = 0xfffff;
STp1863drivers/scsi/st.cSTp->dirty = 0;
STp1864drivers/scsi/st.cSTp->rw = ST_IDLE;
STp1865drivers/scsi/st.cSTp->eof = ST_NOEOF;
STp1866drivers/scsi/st.cSTp->waiting = NULL;
STp1867drivers/scsi/st.cSTp->in_use = 0;
STp1868drivers/scsi/st.cSTp->drv_buffer = 1;  /* Try buffering if no mode sense */
STp1869drivers/scsi/st.cSTp->density = 0;
STp1870drivers/scsi/st.cSTp->do_buffer_writes = ST_BUFFER_WRITES;
STp1871drivers/scsi/st.cSTp->do_async_writes = ST_ASYNC_WRITES;
STp1872drivers/scsi/st.cSTp->do_read_ahead = ST_READ_AHEAD;
STp1873drivers/scsi/st.cSTp->two_fm = ST_TWO_FM;
STp1874drivers/scsi/st.cSTp->write_threshold = st_write_threshold;
STp1875drivers/scsi/st.cSTp->drv_block = 0;
STp1876drivers/scsi/st.cSTp->moves_after_eof = 1;
STp1877drivers/scsi/st.cSTp->at_sm = 0;
STp1878drivers/scsi/st.cSTp->mt_status = (struct mtget *) scsi_init_malloc(sizeof(struct mtget));
STp1888drivers/scsi/st.cSTp->mt_status->mt_type = MT_ISSCSI1;
STp1890drivers/scsi/st.cSTp->mt_status->mt_type = MT_ISSCSI2;