Lines Matching refs:buffer

248 	cmdstatp = &STp->buffer->cmdstat;  in osst_chk_result()
252 scode = STp->buffer->cmdstat.sense_hdr.sense_key; in osst_chk_result()
327 struct rq_map_data *mdata = &SRpnt->stp->buffer->map_data; in osst_end_async()
329 STp->buffer->cmdstat.midlevel_result = SRpnt->result = req->errors; in osst_end_async()
356 int cmd_len, int data_direction, void *buffer, unsigned bufflen, in osst_execute() argument
361 struct rq_map_data *mdata = &SRpnt->stp->buffer->map_data; in osst_execute()
376 struct scatterlist *sg, *sgl = (struct scatterlist *)buffer; in osst_execute()
402 err = blk_rq_map_kern(req->q, req, buffer, bufflen, GFP_KERNEL); in osst_execute()
438 if (!do_wait && ((STp->buffer)->last_SRpnt)) { in osst_do_scsi()
442 (STp->buffer)->syscall_result = (-EINTR); in osst_do_scsi()
444 (STp->buffer)->syscall_result = (-EBUSY); in osst_do_scsi()
454 (STp->buffer)->syscall_result = (-EINTR); in osst_do_scsi()
456 (STp->buffer)->syscall_result = (-EBUSY); in osst_do_scsi()
465 (STp->buffer)->last_SRpnt = SRpnt; in osst_do_scsi()
471 use_sg = (bytes > STp->buffer->sg[0].length) ? STp->buffer->use_sg : 0; in osst_do_scsi()
473 bp = (char *)&(STp->buffer->sg[0]); in osst_do_scsi()
474 if (STp->buffer->sg_segs < use_sg) in osst_do_scsi()
475 use_sg = STp->buffer->sg_segs; in osst_do_scsi()
478 bp = (STp->buffer)->b_data; in osst_do_scsi()
481 STp->buffer->cmdstat.have_sense = 0; in osst_do_scsi()
482 STp->buffer->syscall_result = 0; in osst_do_scsi()
487 (STp->buffer)->syscall_result = (-EBUSY); in osst_do_scsi()
491 STp->buffer->syscall_result = osst_chk_result(STp, SRpnt); in osst_do_scsi()
493 if (STp->buffer->syscall_result == 0 && in osst_do_scsi()
501 STp->buffer->last_result_fatal = 1; in osst_do_scsi()
514 STbuffer = STp->buffer; in osst_write_behind_check()
523 STp->buffer->last_SRpnt->waiting = NULL; in osst_write_behind_check()
525 STp->buffer->syscall_result = osst_chk_result(STp, STp->buffer->last_SRpnt); in osst_write_behind_check()
527 if (STp->buffer->syscall_result) in osst_write_behind_check()
528 STp->buffer->syscall_result = in osst_write_behind_check()
529 osst_write_error_recovery(STp, &(STp->buffer->last_SRpnt), 1); in osst_write_behind_check()
533 osst_release_request(STp->buffer->last_SRpnt); in osst_write_behind_check()
554 os_aux_t *aux = STp->buffer->aux; in osst_init_aux()
616 os_aux_t * aux = STp->buffer->aux; in osst_verify_frame()
622 if (STp->buffer->syscall_result) { in osst_verify_frame()
623 for (i=0; i < STp->buffer->sg_segs; i++) in osst_verify_frame()
624 memset(page_address(sg_page(&STp->buffer->sg[i])), in osst_verify_frame()
625 0, STp->buffer->sg[i].length); in osst_verify_frame()
626 strcpy(STp->buffer->b_data, "READ ERROR ON FRAME"); in osst_verify_frame()
628 STp->buffer->buffer_bytes = OS_FRAME_SIZE; in osst_verify_frame()
631 if (STp->buffer->syscall_result) { in osst_verify_frame()
720 STp->buffer->buffer_bytes = blk_cnt * blk_sz; in osst_verify_frame()
721 STp->buffer->read_pointer = 0; in osst_verify_frame()
732 STp->buffer->buffer_blocks = OS_DATA_SIZE / blk_sz; in osst_verify_frame()
772 while ( STp->buffer->syscall_result && time_before(jiffies, startwait + timeout*HZ) && in osst_wait_ready()
795 if ( STp->buffer->syscall_result && in osst_wait_ready()
800 STp->buffer->syscall_result, SRpnt->sense[0], SRpnt->sense[2], in osst_wait_ready()
833 while ( STp->buffer->syscall_result && time_before(jiffies, startwait + timeout*HZ) && in osst_wait_for_medium()
853 if ( STp->buffer->syscall_result && SRpnt->sense[2] != 2 && in osst_wait_for_medium()
858 STp->buffer->syscall_result, SRpnt->sense[0], SRpnt->sense[2], in osst_wait_for_medium()
902 if (STp->buffer->syscall_result) { in osst_flush_drive_buffer()
982 char * olddata = STp->buffer->b_data; in osst_recover_wait_frame()
983 int oldsize = STp->buffer->buffer_size; in osst_recover_wait_frame()
995 if (STp->buffer->syscall_result && (SRpnt->sense[2] & 0x0f) != 2) { in osst_recover_wait_frame()
1003 STp->buffer->b_data = mybuf; STp->buffer->buffer_size = 24; in osst_recover_wait_frame()
1010 retval = ( STp->buffer->syscall_result || (STp->buffer)->b_data[15] > 25 ); in osst_recover_wait_frame()
1011 STp->buffer->b_data = olddata; STp->buffer->buffer_size = oldsize; in osst_recover_wait_frame()
1017 if (STp->buffer->syscall_result) in osst_recover_wait_frame()
1036 os_aux_t * aux = STp->buffer->aux; in osst_read_frame()
1059 if ((STp->buffer)->syscall_result) { in osst_read_frame()
1131 if ((retval = STp->buffer->syscall_result)) in osst_initiate_read()
1206 x = ntohl(STp->buffer->aux->frame_seq_num); in osst_get_logical_frame()
1305 … logical_blk_num >= STp->logical_blk_num + ntohs(STp->buffer->aux->dat.dat_list[0].blk_cnt)) { in osst_seek_logical_blk()
1324 STp->buffer->read_pointer = (logical_blk_num - STp->logical_blk_num) * STp->block_size; in osst_seek_logical_blk()
1325 STp->buffer->buffer_bytes -= STp->buffer->read_pointer; in osst_seek_logical_blk()
1331 STp->buffer->buffer_bytes, STp->buffer->read_pointer / STp->block_size, in osst_seek_logical_blk()
1334 STps->drv_file = ntohl(STp->buffer->aux->filemark_cnt); in osst_seek_logical_blk()
1339 STps->drv_block = ntohl(STp->buffer->aux->last_mark_lbn)? in osst_seek_logical_blk()
1341 (STps->drv_file ? ntohl(STp->buffer->aux->last_mark_lbn) + 1 : 0): in osst_seek_logical_blk()
1387 STp->ps[STp->partition].rw == ST_WRITING?STp->buffer->buffer_bytes: in osst_get_sector()
1388 STp->buffer->read_pointer, STp->ps[STp->partition].eof); in osst_get_sector()
1395 sector |= (STp->buffer->buffer_bytes >> OSST_SECTOR_SHIFT) & OSST_SECTOR_MASK; in osst_get_sector()
1397 sector |= (STp->buffer->read_pointer >> OSST_SECTOR_SHIFT) & OSST_SECTOR_MASK; in osst_get_sector()
1434 STp->buffer->read_pointer = offset; in osst_seek_sector()
1435 STp->buffer->buffer_bytes -= offset; in osst_seek_sector()
1439 STp->logical_blk_num += ntohs(STp->buffer->aux->dat.dat_list[0].blk_cnt); in osst_seek_sector()
1440 STp->buffer->buffer_bytes = STp->buffer->read_pointer = 0; in osst_seek_sector()
1442 STps->drv_file = ntohl(STp->buffer->aux->filemark_cnt); in osst_seek_sector()
1447 STps->drv_block = ntohl(STp->buffer->aux->last_mark_lbn)? in osst_seek_sector()
1449 (STps->drv_file ? ntohl(STp->buffer->aux->last_mark_lbn) + 1 : 0): in osst_seek_sector()
1457 STps->drv_file, STps->drv_block, STp->buffer->read_pointer, STps->eof); in osst_seek_sector()
1473 unsigned char * buffer, * p; in osst_read_back_buffer_and_rewrite() local
1477 int blks_per_frame = ntohs(STp->buffer->aux->dat.dat_list[0].blk_cnt); in osst_read_back_buffer_and_rewrite()
1478 int frame_seq_number = ntohl(STp->buffer->aux->frame_seq_num) in osst_read_back_buffer_and_rewrite()
1480 int logical_blk_num = ntohl(STp->buffer->aux->logical_blk_num) in osst_read_back_buffer_and_rewrite()
1488 if ((buffer = vmalloc((nframes + 1) * OS_DATA_SIZE)) == NULL) in osst_read_back_buffer_and_rewrite()
1494 osst_copy_from_buffer(STp->buffer, (p = &buffer[nframes * OS_DATA_SIZE])); in osst_read_back_buffer_and_rewrite()
1502 for (i = 0, p = buffer; i < nframes; i++, p += OS_DATA_SIZE) { in osst_read_back_buffer_and_rewrite()
1513 if ((STp->buffer)->syscall_result || !SRpnt) { in osst_read_back_buffer_and_rewrite()
1515 vfree(buffer); in osst_read_back_buffer_and_rewrite()
1519 osst_copy_from_buffer(STp->buffer, p); in osst_read_back_buffer_and_rewrite()
1535 for (flag=1, new_frame=frame, p=buffer, i=0; i < nframes + pending; ) { in osst_read_back_buffer_and_rewrite()
1557 vfree(buffer); in osst_read_back_buffer_and_rewrite()
1563 osst_copy_to_buffer(STp->buffer, p); in osst_read_back_buffer_and_rewrite()
1567 osst_init_aux(STp, STp->buffer->aux->frame_type, frame_seq_number+i, in osst_read_back_buffer_and_rewrite()
1569 ntohl(STp->buffer->aux->dat.dat_list[0].blk_sz), blks_per_frame); in osst_read_back_buffer_and_rewrite()
1585 if (STp->buffer->syscall_result) in osst_read_back_buffer_and_rewrite()
1607 flag = STp->buffer->syscall_result; in osst_read_back_buffer_and_rewrite()
1622 if (STp->buffer->syscall_result) in osst_read_back_buffer_and_rewrite()
1638 vfree(buffer); in osst_read_back_buffer_and_rewrite()
1645 p = &buffer[i * OS_DATA_SIZE]; in osst_read_back_buffer_and_rewrite()
1662 osst_copy_to_buffer(STp->buffer, p); /* so buffer content == at entry in all cases */ in osst_read_back_buffer_and_rewrite()
1663 vfree(buffer); in osst_read_back_buffer_and_rewrite()
1722 if (STp->buffer->syscall_result) { /* additional write error */ in osst_reposition_and_retry()
1869 cnt = ntohl(STp->buffer->aux->filemark_cnt); in osst_space_over_filemarks_backward()
1875 STp->header_cache->dat_fm_tab.fm_tab_ent[cnt-1] == STp->buffer->aux->last_mark_ppos) in osst_space_over_filemarks_backward()
1885 ((cnt == -1 && ntohl(STp->buffer->aux->last_mark_ppos) == -1) || in osst_space_over_filemarks_backward()
1887 STp->buffer->aux->last_mark_ppos))?"match":"error", in osst_space_over_filemarks_backward()
1899 if (STp->buffer->aux->frame_type != OS_FRAME_TYPE_MARKER) { in osst_space_over_filemarks_backward()
1912 last_mark_ppos = ntohl(STp->buffer->aux->last_mark_ppos); in osst_space_over_filemarks_backward()
1926 if (STp->buffer->aux->frame_type != OS_FRAME_TYPE_MARKER) { in osst_space_over_filemarks_backward()
1936 STp->buffer->buffer_bytes = 0; in osst_space_over_filemarks_backward()
1937 STp->buffer->read_pointer = 0; in osst_space_over_filemarks_backward()
1938 STp->logical_blk_num += ntohs(STp->buffer->aux->dat.dat_list[0].blk_cnt); in osst_space_over_filemarks_backward()
1970 if (STp->buffer->aux->frame_type == OS_FRAME_TYPE_MARKER) in osst_space_over_filemarks_forward_slow()
1972 if (STp->buffer->aux->frame_type == OS_FRAME_TYPE_EOD) { in osst_space_over_filemarks_forward_slow()
1992 STp->buffer->buffer_bytes = 0; in osst_space_over_filemarks_forward_slow()
1993 STp->buffer->read_pointer = 0; in osst_space_over_filemarks_forward_slow()
1994 STp->logical_blk_num += ntohs(STp->buffer->aux->dat.dat_list[0].blk_cnt); in osst_space_over_filemarks_forward_slow()
2023 cnt = ntohl(STp->buffer->aux->filemark_cnt) - 1; in osst_space_over_filemarks_forward_fast()
2028 ((cnt == -1 && ntohl(STp->buffer->aux->last_mark_ppos) == -1) || in osst_space_over_filemarks_forward_fast()
2029 (STp->header_cache->dat_fm_tab.fm_tab_ent[cnt] == STp->buffer->aux->last_mark_ppos))) in osst_space_over_filemarks_forward_fast()
2039 ((cnt == -1 && ntohl(STp->buffer->aux->last_mark_ppos) == -1) || in osst_space_over_filemarks_forward_fast()
2041 STp->buffer->aux->last_mark_ppos))?"match":"error", in osst_space_over_filemarks_forward_fast()
2058 if (STp->buffer->aux->frame_type != OS_FRAME_TYPE_MARKER) { in osst_space_over_filemarks_forward_fast()
2063 if (ntohl(STp->buffer->aux->filemark_cnt) != cnt + mt_count) { in osst_space_over_filemarks_forward_fast()
2066 ntohl(STp->buffer->aux->filemark_cnt)); in osst_space_over_filemarks_forward_fast()
2075 if (STp->buffer->aux->frame_type == OS_FRAME_TYPE_MARKER) in osst_space_over_filemarks_forward_fast()
2077 if (STp->buffer->aux->frame_type == OS_FRAME_TYPE_EOD) { in osst_space_over_filemarks_forward_fast()
2083 if (ntohl(STp->buffer->aux->filemark_cnt) == 0) { in osst_space_over_filemarks_forward_fast()
2099 if (STp->buffer->aux->frame_type != OS_FRAME_TYPE_MARKER) { in osst_space_over_filemarks_forward_fast()
2112 next_mark_ppos = ntohl(STp->buffer->aux->next_mark_ppos); in osst_space_over_filemarks_forward_fast()
2131 if (STp->buffer->aux->frame_type != OS_FRAME_TYPE_MARKER) { in osst_space_over_filemarks_forward_fast()
2141 STp->buffer->buffer_bytes = 0; in osst_space_over_filemarks_forward_fast()
2142 STp->buffer->read_pointer = 0; in osst_space_over_filemarks_forward_fast()
2143 STp->logical_blk_num += ntohs(STp->buffer->aux->dat.dat_list[0].blk_cnt); in osst_space_over_filemarks_forward_fast()
2164 (STp->buffer)->b_data[0] = cmd[4] - 1; in osst_set_retries()
2165 (STp->buffer)->b_data[1] = 0; /* Medium Type - ignoring */ in osst_set_retries()
2166 (STp->buffer)->b_data[2] = 0; /* Reserved */ in osst_set_retries()
2167 (STp->buffer)->b_data[3] = 0; /* Block Descriptor Length */ in osst_set_retries()
2168 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 0] = NUMBER_RETRIES_PAGE | (1 << 7); in osst_set_retries()
2169 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 1] = 2; in osst_set_retries()
2170 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 2] = 4; in osst_set_retries()
2171 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 3] = retries; in osst_set_retries()
2179 if ((STp->buffer)->syscall_result) in osst_set_retries()
2247 memcpy(STp->buffer->b_data, "Filler", 6); in osst_write_filler()
2248 STp->buffer->buffer_bytes = 6; in osst_write_filler()
2273 osst_copy_to_buffer(STp->buffer, (unsigned char *)STp->header_cache); in __osst_write_header()
2274 STp->buffer->buffer_bytes = sizeof(os_header_t); in __osst_write_header()
2387 if (ppos == 5 || ppos == 0xbae || STp->buffer->syscall_result) { in __osst_analyze_headers()
2402 header = (os_header_t *) STp->buffer->b_data; /* warning: only first segment addressable */ in __osst_analyze_headers()
2403 aux = STp->buffer->aux; in __osst_analyze_headers()
2496 osst_copy_from_buffer(STp->buffer, (unsigned char *)STp->header_cache); in __osst_analyze_headers()
2613 int read_pointer = STp->buffer->read_pointer; in osst_verify_position()
2634 actual_mark_ppos = STp->buffer->aux->frame_type == OS_FRAME_TYPE_MARKER ? in osst_verify_position()
2635 frame_position - 1 : ntohl(STp->buffer->aux->last_mark_ppos); in osst_verify_position()
2650 STp->buffer->buffer_bytes = read_pointer; in osst_verify_position()
2724 if ((STp->buffer)->syscall_result != 0) { in osst_configure_onstream()
2729 header = (osst_mode_parameter_header_t *) (STp->buffer)->b_data; in osst_configure_onstream()
2730 …bs = (osst_block_size_page_t *) ((STp->buffer)->b_data + sizeof(osst_mode_parameter_header_t) + he… in osst_configure_onstream()
2755 if ((STp->buffer)->syscall_result != 0) { in osst_configure_onstream()
2784 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 0] = VENDOR_IDENT_PAGE | (1 << 7); in osst_configure_onstream()
2785 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 1] = 6; in osst_configure_onstream()
2786 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 2] = 'L'; in osst_configure_onstream()
2787 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 3] = 'I'; in osst_configure_onstream()
2788 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 4] = 'N'; in osst_configure_onstream()
2789 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 5] = '4'; in osst_configure_onstream()
2790 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 6] = 0; in osst_configure_onstream()
2791 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 7] = 0; in osst_configure_onstream()
2796 if ((STp->buffer)->syscall_result != 0) { in osst_configure_onstream()
2798 (char *) ((STp->buffer)->b_data + MODE_HEADER_LENGTH + 2)); in osst_configure_onstream()
2811 if ((STp->buffer)->syscall_result != 0) { in osst_configure_onstream()
2816 header = (osst_mode_parameter_header_t *) (STp->buffer)->b_data; in osst_configure_onstream()
2817 cp = (osst_capabilities_page_t *) ((STp->buffer)->b_data + in osst_configure_onstream()
2831 if ((STp->buffer)->syscall_result != 0) { in osst_configure_onstream()
2836 header = (osst_mode_parameter_header_t *) (STp->buffer)->b_data; in osst_configure_onstream()
2837 prm = (osst_tape_paramtr_page_t *) ((STp->buffer)->b_data + in osst_configure_onstream()
2893 char * olddata = STp->buffer->b_data; in osst_get_frame_position()
2894 int oldsize = STp->buffer->buffer_size; in osst_get_frame_position()
2901 STp->buffer->b_data = mybuf; STp->buffer->buffer_size = 24; in osst_get_frame_position()
2905 STp->buffer->b_data = olddata; STp->buffer->buffer_size = oldsize; in osst_get_frame_position()
2910 if (STp->buffer->syscall_result) in osst_get_frame_position()
2921 STp->buffer->b_data = mybuf; STp->buffer->buffer_size = 24; in osst_get_frame_position()
2926 name, mysense[2], mysense[12], mysense[13], STp->buffer->syscall_result?"":"ok:", in osst_get_frame_position()
2929 if (!STp->buffer->syscall_result) in osst_get_frame_position()
2934 STp->first_frame_position = ((STp->buffer)->b_data[4] << 24) in osst_get_frame_position()
2935 + ((STp->buffer)->b_data[5] << 16) in osst_get_frame_position()
2936 + ((STp->buffer)->b_data[6] << 8) in osst_get_frame_position()
2937 + (STp->buffer)->b_data[7]; in osst_get_frame_position()
2938 STp->last_frame_position = ((STp->buffer)->b_data[ 8] << 24) in osst_get_frame_position()
2939 + ((STp->buffer)->b_data[ 9] << 16) in osst_get_frame_position()
2940 + ((STp->buffer)->b_data[10] << 8) in osst_get_frame_position()
2941 + (STp->buffer)->b_data[11]; in osst_get_frame_position()
2942 STp->cur_frames = (STp->buffer)->b_data[15]; in osst_get_frame_position()
2947 ((STp->buffer)->b_data[0]&0x80)?" (BOP)": in osst_get_frame_position()
2948 ((STp->buffer)->b_data[0]&0x40)?" (EOP)":"", in osst_get_frame_position()
2960 STp->buffer->b_data = olddata; STp->buffer->buffer_size = oldsize; in osst_get_frame_position()
3007 if ((STp->buffer)->syscall_result != 0) { in osst_set_frame_position()
3061 if ((STp->buffer)->writing) { in osst_flush_write_buffer()
3062 if (SRpnt == (STp->buffer)->last_SRpnt) in osst_flush_write_buffer()
3074 if ((STp->buffer)->syscall_result) { in osst_flush_write_buffer()
3078 name, (STp->buffer)->midlevel_result); in osst_flush_write_buffer()
3080 if ((STp->buffer)->midlevel_result == INT_MAX) in osst_flush_write_buffer()
3092 offset = STp->buffer->buffer_bytes; in osst_flush_write_buffer()
3097 osst_zero_buffer_tail(STp->buffer); in osst_flush_write_buffer()
3145 if ((STp->buffer)->syscall_result != 0) { in osst_flush_write_buffer()
3156 (STp->buffer)->buffer_bytes = 0; in osst_flush_write_buffer()
3170 (STp->buffer)->buffer_bytes = 0; in osst_flush_write_buffer()
3213 backspace = ((STp->buffer)->buffer_bytes + (STp->buffer)->read_pointer) / STp->block_size - in osst_flush_buffer()
3214 ((STp->buffer)->read_pointer + STp->block_size - 1 ) / STp->block_size ; in osst_flush_buffer()
3215 (STp->buffer)->buffer_bytes = 0; in osst_flush_buffer()
3216 (STp->buffer)->read_pointer = 0; in osst_flush_buffer()
3283 blks = STp->buffer->buffer_bytes / STp->block_size; in osst_write_frame()
3303 if (STp->buffer->syscall_result != 0) { in osst_write_frame()
3521 if ((STp->buffer)->writing) { in osst_write()
3524 if ((STp->buffer)->syscall_result) { in osst_write()
3528 (STp->buffer)->midlevel_result); in osst_write()
3530 if ((STp->buffer)->midlevel_result == INT_MAX) in osst_write()
3557 write_threshold = (STp->buffer)->buffer_blocks * STp->block_size; in osst_write()
3569 while ((STp->buffer)->buffer_bytes + count > write_threshold) in osst_write()
3572 do_count = (STp->buffer)->buffer_blocks * STp->block_size - in osst_write()
3573 (STp->buffer)->buffer_bytes; in osst_write()
3577 i = append_to_buffer(b_point, STp->buffer, do_count); in osst_write()
3589 transfer = STp->buffer->writing; /* FIXME -- check this logic */ in osst_write()
3622 STp->buffer->buffer_bytes = 0; in osst_write()
3635 STp->buffer->buffer_bytes = 0; in osst_write()
3641 i = append_to_buffer(b_point, STp->buffer, count); in osst_write()
3655 if (doing_write && (STp->buffer)->syscall_result != 0) { in osst_write()
3656 retval = (STp->buffer)->syscall_result; in osst_write()
3660 if (STm->do_async_writes && ((STp->buffer)->buffer_bytes >= STp->write_threshold)) { in osst_write()
3662 (STp->buffer)->writing = ((STp->buffer)->buffer_bytes / in osst_write()
3664 STp->dirty = !((STp->buffer)->writing == in osst_write()
3665 (STp->buffer)->buffer_bytes); in osst_write()
3762 STps->eof, (STp->buffer)->buffer_bytes); in osst_read()
3764 if ((STp->buffer)->buffer_bytes == 0 && in osst_read()
3789 if ((STp->buffer)->buffer_bytes == 0) { in osst_read()
3801 if ((STp->buffer)->buffer_bytes > 0) { in osst_read()
3805 STps->eof, (STp->buffer)->buffer_bytes, (int) (count - total)); in osst_read()
3808 transfer = (((STp->buffer)->buffer_bytes < count - total ? in osst_read()
3809 (STp->buffer)->buffer_bytes : count - total)/ in osst_read()
3820 i = from_buffer(STp->buffer, buf, transfer); in osst_read()
3832 if ((STp->buffer)->buffer_bytes == 0) { in osst_read()
4261 if (STp->buffer->aux->frame_type != OS_FRAME_TYPE_EOD) { in osst_int_ioctl()
4297 ((STp->buffer)->buffer_bytes == 0) && in osst_int_ioctl()
4316 if (STp->dirty || (STp->buffer)->buffer_bytes != 0) in osst_int_ioctl()
4334 ioctl_result = (STp->buffer)->syscall_result; in osst_int_ioctl()
4376 STp->buffer->read_pointer = 0; in osst_int_ioctl()
4511 if (!enlarge_buffer(STp->buffer, STp->restr_dma)) { in __os_scsi_tape_open()
4516 if (STp->buffer->buffer_size >= OS_FRAME_SIZE) { in __os_scsi_tape_open()
4518 (i < STp->buffer->sg_segs) && ((b_size + STp->buffer->sg[i].length) <= OS_DATA_SIZE); in __os_scsi_tape_open()
4519 b_size += STp->buffer->sg[i++].length); in __os_scsi_tape_open()
4520 …STp->buffer->aux = (os_aux_t *) (page_address(sg_page(&STp->buffer->sg[i])) + OS_DATA_SIZE - b_siz… in __os_scsi_tape_open()
4523 STp->buffer->b_data, page_address(STp->buffer->sg[0].page)); in __os_scsi_tape_open()
4525 STp->buffer->aux, i, page_address(STp->buffer->sg[i].page)); in __os_scsi_tape_open()
4528 STp->buffer->aux = NULL; /* this had better never happen! */ in __os_scsi_tape_open()
4533 STp->buffer->writing = 0; in __os_scsi_tape_open()
4534 STp->buffer->syscall_result = 0; in __os_scsi_tape_open()
4550 retval = (STp->buffer)->syscall_result; /* FIXME - valid? */ in __os_scsi_tape_open()
4613 if (!STp->buffer->syscall_result && STp->header_ok && in __os_scsi_tape_open()
4624 if (STp->buffer->syscall_result || in __os_scsi_tape_open()
4625 STp->buffer->b_data[MODE_HEADER_LENGTH + 2] != 'L' || in __os_scsi_tape_open()
4626 STp->buffer->b_data[MODE_HEADER_LENGTH + 3] != 'I' || in __os_scsi_tape_open()
4627 STp->buffer->b_data[MODE_HEADER_LENGTH + 4] != 'N' || in __os_scsi_tape_open()
4628 STp->buffer->b_data[MODE_HEADER_LENGTH + 5] != '4' ) { in __os_scsi_tape_open()
4631 STp->buffer->b_data[MODE_HEADER_LENGTH + 2], in __os_scsi_tape_open()
4632 STp->buffer->b_data[MODE_HEADER_LENGTH + 3], in __os_scsi_tape_open()
4633 STp->buffer->b_data[MODE_HEADER_LENGTH + 4], in __os_scsi_tape_open()
4634 STp->buffer->b_data[MODE_HEADER_LENGTH + 5]); in __os_scsi_tape_open()
4649 STp->buffer->buffer_bytes = STp->buffer->read_pointer = 0; in __os_scsi_tape_open()
4651 STp->buffer->buffer_blocks = OS_DATA_SIZE / STp->block_size; in __os_scsi_tape_open()
4665 if ((STp->buffer)->syscall_result != 0 && /* in all error conditions except no medium */ in __os_scsi_tape_open()
4673 (STp->buffer)->b_data[0] = cmd[4] - 1; in __os_scsi_tape_open()
4674 (STp->buffer)->b_data[1] = 0; /* Medium Type - ignoring */ in __os_scsi_tape_open()
4675 (STp->buffer)->b_data[2] = 0; /* Reserved */ in __os_scsi_tape_open()
4676 (STp->buffer)->b_data[3] = 0; /* Block Descriptor Length */ in __os_scsi_tape_open()
4677 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 0] = 0x3f; in __os_scsi_tape_open()
4678 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 1] = 1; in __os_scsi_tape_open()
4679 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 2] = 2; in __os_scsi_tape_open()
4680 (STp->buffer)->b_data[MODE_HEADER_LENGTH + 3] = 3; in __os_scsi_tape_open()
4724 if ((STp->buffer)->syscall_result != 0) { in __os_scsi_tape_open()
4747 STp->buffer->buffer_blocks = STp->raw ? 1 : OS_DATA_SIZE / STp->block_size; in __os_scsi_tape_open()
4748 STp->buffer->buffer_bytes = in __os_scsi_tape_open()
4749 STp->buffer->read_pointer = in __os_scsi_tape_open()
4755 name, STp->block_size, OS_FRAME_SIZE, (STp->buffer)->buffer_size, in __os_scsi_tape_open()
4756 (STp->buffer)->buffer_blocks); in __os_scsi_tape_open()
4800 normalize_buffer(STp->buffer); in __os_scsi_tape_open()
4926 normalize_buffer(STp->buffer); in os_scsi_tape_close()
5193 mt_status.mt_blkno += (STp->buffer)->buffer_bytes / STp->block_size; in osst_ioctl()
5195 mt_status.mt_blkno -= ((STp->buffer)->buffer_bytes + in osst_ioctl()
5840 struct osst_buffer * buffer; in osst_probe() local
5889 buffer = new_tape_buffer(1, SDp->host->unchecked_isa_dma, i); in osst_probe()
5890 if (buffer == NULL) { in osst_probe()
5897 tpnt->buffer = buffer; in osst_probe()
5993 kfree(buffer); in osst_probe()
6019 if (tpnt->buffer) { in osst_remove()
6020 normalize_buffer(tpnt->buffer); in osst_remove()
6021 kfree(tpnt->buffer); in osst_remove()
6083 if (STp->buffer) { in exit_osst()
6084 normalize_buffer(STp->buffer); in exit_osst()
6085 kfree(STp->buffer); in exit_osst()