tag | line | file | source code |
STp | 164 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 167 | drivers/scsi/st.c | STp = &(scsi_tapes[st_nbr]); |
STp | 168 | drivers/scsi/st.c | if ((STp->buffer)->writing && |
STp | 180 | drivers/scsi/st.c | (STp->buffer)->last_result = SCpnt->result; /* Error */ |
STp | 182 | drivers/scsi/st.c | (STp->buffer)->last_result = INT_MAX; /* OK */ |
STp | 185 | drivers/scsi/st.c | (STp->buffer)->last_result = SCpnt->result; |
STp | 186 | drivers/scsi/st.c | (STp->buffer)->last_result_fatal = st_chk_result(SCpnt); |
STp | 187 | drivers/scsi/st.c | if ((STp->buffer)->writing) |
STp | 191 | drivers/scsi/st.c | if ((STp->buffer)->writing <= 0) |
STp | 192 | drivers/scsi/st.c | wake_up( &(STp->waiting) ); |
STp | 206 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 209 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 210 | drivers/scsi/st.c | STbuffer = STp->buffer; |
STp | 215 | drivers/scsi/st.c | sleep_on( &(STp->waiting) ); |
STp | 240 | drivers/scsi/st.c | Scsi_Tape *STp = &(scsi_tapes[dev]); |
STp | 243 | drivers/scsi/st.c | if ((STp->buffer)->writing) { |
STp | 245 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal) { |
STp | 248 | drivers/scsi/st.c | (STp->buffer)->last_result); |
STp | 250 | drivers/scsi/st.c | if ((STp->buffer)->last_result == INT_MAX) |
STp | 258 | drivers/scsi/st.c | if (STp->dirty == 1) { |
STp | 259 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 261 | drivers/scsi/st.c | offset = (STp->buffer)->buffer_bytes; |
STp | 262 | drivers/scsi/st.c | transfer = ((offset + STp->block_size - 1) / |
STp | 263 | drivers/scsi/st.c | STp->block_size) * STp->block_size; |
STp | 267 | drivers/scsi/st.c | memset((STp->buffer)->b_data + offset, 0, transfer - offset); |
STp | 273 | drivers/scsi/st.c | blks = transfer / STp->block_size; |
STp | 279 | drivers/scsi/st.c | (void *) cmd, (STp->buffer)->b_data, transfer, |
STp | 282 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 284 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) { |
STp | 289 | drivers/scsi/st.c | STp->dirty = 0; |
STp | 290 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = 0; |
STp | 297 | drivers/scsi/st.c | STp->dirty = 0; |
STp | 298 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = 0; |
STp | 313 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 317 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 318 | drivers/scsi/st.c | STbuffer = STp->buffer; |
STp | 320 | drivers/scsi/st.c | if (STp->rw == ST_WRITING) /* Writing */ |
STp | 323 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 326 | drivers/scsi/st.c | backspace = ((STp->buffer)->buffer_bytes + |
STp | 327 | drivers/scsi/st.c | (STp->buffer)->read_pointer) / STp->block_size - |
STp | 328 | drivers/scsi/st.c | ((STp->buffer)->read_pointer + STp->block_size - 1) / |
STp | 329 | drivers/scsi/st.c | STp->block_size; |
STp | 330 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = 0; |
STp | 331 | drivers/scsi/st.c | (STp->buffer)->read_pointer = 0; |
STp | 334 | drivers/scsi/st.c | if ((STp->eof == ST_FM) && !STp->eof_hit) { |
STp | 337 | drivers/scsi/st.c | STp->eof = ST_NOEOF; |
STp | 338 | drivers/scsi/st.c | STp->eof_hit = 0; |
STp | 358 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 363 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 364 | drivers/scsi/st.c | if (STp->in_use) { |
STp | 377 | drivers/scsi/st.c | STp->buffer = st_buffers[i]; |
STp | 378 | drivers/scsi/st.c | (STp->buffer)->in_use = 1; |
STp | 379 | drivers/scsi/st.c | (STp->buffer)->writing = 0; |
STp | 380 | drivers/scsi/st.c | STp->in_use = 1; |
STp | 383 | drivers/scsi/st.c | STp->write_prot = ((flags & O_ACCMODE) == O_RDONLY); |
STp | 385 | drivers/scsi/st.c | STp->dirty = 0; |
STp | 386 | drivers/scsi/st.c | STp->rw = ST_IDLE; |
STp | 387 | drivers/scsi/st.c | STp->eof = ST_NOEOF; |
STp | 388 | drivers/scsi/st.c | STp->eof_hit = 0; |
STp | 389 | drivers/scsi/st.c | STp->recover_count = 0; |
STp | 391 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 402 | drivers/scsi/st.c | (void *) cmd, (void *) (STp->buffer)->b_data, |
STp | 406 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 415 | drivers/scsi/st.c | (void *) cmd, (void *) (STp->buffer)->b_data, |
STp | 419 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 422 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) { |
STp | 428 | drivers/scsi/st.c | (STp->buffer)->in_use = 0; |
STp | 429 | drivers/scsi/st.c | STp->in_use = 0; |
STp | 439 | drivers/scsi/st.c | (void *) cmd, (void *) (STp->buffer)->b_data, |
STp | 442 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 445 | drivers/scsi/st.c | STp->max_block = ((STp->buffer)->b_data[1] << 16) | |
STp | 446 | drivers/scsi/st.c | ((STp->buffer)->b_data[2] << 8) | (STp->buffer)->b_data[3]; |
STp | 447 | drivers/scsi/st.c | STp->min_block = ((STp->buffer)->b_data[4] << 8) | |
STp | 448 | drivers/scsi/st.c | (STp->buffer)->b_data[5]; |
STp | 450 | drivers/scsi/st.c | printk("st%d: Block limits %d - %d bytes.\n", dev, STp->min_block, |
STp | 451 | drivers/scsi/st.c | STp->max_block); |
STp | 455 | drivers/scsi/st.c | STp->min_block = STp->max_block = (-1); |
STp | 467 | drivers/scsi/st.c | (void *) cmd, (void *) (STp->buffer)->b_data, |
STp | 470 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 472 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) { |
STp | 476 | drivers/scsi/st.c | (STp->buffer)->b_data[2] = |
STp | 477 | drivers/scsi/st.c | (STp->buffer)->b_data[3] = 0; |
STp | 483 | drivers/scsi/st.c | (STp->buffer)->b_data[0], (STp->buffer)->b_data[1], |
STp | 484 | drivers/scsi/st.c | (STp->buffer)->b_data[2], (STp->buffer)->b_data[3]); |
STp | 487 | drivers/scsi/st.c | if ((STp->buffer)->b_data[3] >= 8) { |
STp | 488 | drivers/scsi/st.c | STp->drv_buffer = ((STp->buffer)->b_data[2] >> 4) & 7; |
STp | 489 | drivers/scsi/st.c | STp->density = (STp->buffer)->b_data[4]; |
STp | 490 | drivers/scsi/st.c | STp->block_size = (STp->buffer)->b_data[9] * 65536 + |
STp | 491 | drivers/scsi/st.c | (STp->buffer)->b_data[10] * 256 + (STp->buffer)->b_data[11]; |
STp | 495 | drivers/scsi/st.c | dev, STp->density, (STp->buffer)->b_data[5] * 65536 + |
STp | 496 | drivers/scsi/st.c | (STp->buffer)->b_data[6] * 256 + (STp->buffer)->b_data[7], |
STp | 497 | drivers/scsi/st.c | STp->block_size, STp->drv_buffer); |
STp | 499 | drivers/scsi/st.c | if (STp->block_size > ST_BUFFER_SIZE) { |
STp | 501 | drivers/scsi/st.c | STp->block_size); |
STp | 502 | drivers/scsi/st.c | (STp->buffer)->in_use = 0; |
STp | 503 | drivers/scsi/st.c | STp->in_use = 0; |
STp | 509 | drivers/scsi/st.c | STp->block_size = ST_BLOCK_SIZE; |
STp | 511 | drivers/scsi/st.c | if (STp->block_size > 0) { |
STp | 512 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks = ST_BUFFER_SIZE / STp->block_size; |
STp | 513 | drivers/scsi/st.c | (STp->buffer)->buffer_size = |
STp | 514 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks * STp->block_size; |
STp | 517 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks = 1; |
STp | 518 | drivers/scsi/st.c | (STp->buffer)->buffer_size = ST_BUFFER_SIZE; |
STp | 520 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = (STp->buffer)->read_pointer = 0; |
STp | 524 | drivers/scsi/st.c | STp->block_size, (STp->buffer)->buffer_size, |
STp | 525 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks); |
STp | 528 | drivers/scsi/st.c | if ((STp->buffer)->b_data[2] & 0x80) { |
STp | 529 | drivers/scsi/st.c | STp->write_prot = 1; |
STp | 548 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 553 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 555 | drivers/scsi/st.c | if ( STp->rw == ST_WRITING) { |
STp | 564 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 572 | drivers/scsi/st.c | (void *) cmd, (void *) (STp->buffer)->b_data, |
STp | 575 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 577 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) |
STp | 589 | drivers/scsi/st.c | if ((STp->eof == ST_FM) && !STp->eof_hit) |
STp | 599 | drivers/scsi/st.c | (STp->buffer)->in_use = 0; |
STp | 600 | drivers/scsi/st.c | STp->in_use = 0; |
STp | 616 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 619 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 621 | drivers/scsi/st.c | if (!STp->in_use) { |
STp | 627 | drivers/scsi/st.c | if (STp->write_prot) |
STp | 630 | drivers/scsi/st.c | if (STp->block_size == 0 && count > ST_BUFFER_SIZE) |
STp | 633 | drivers/scsi/st.c | if (STp->rw == ST_READING) { |
STp | 637 | drivers/scsi/st.c | STp->rw = ST_WRITING; |
STp | 641 | drivers/scsi/st.c | if ((STp->buffer)->writing) { |
STp | 643 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal) { |
STp | 646 | drivers/scsi/st.c | (STp->buffer)->last_result); |
STp | 648 | drivers/scsi/st.c | if ((STp->buffer)->last_result == INT_MAX) { |
STp | 650 | drivers/scsi/st.c | STp->eof = ST_EOM_OK; |
STp | 659 | drivers/scsi/st.c | if (STp->eof == ST_EOM_OK) |
STp | 661 | drivers/scsi/st.c | else if (STp->eof == ST_EOM_ERROR) |
STp | 665 | drivers/scsi/st.c | if (STp->block_size != 0 && (count % STp->block_size) != 0) |
STp | 669 | drivers/scsi/st.c | write_threshold = (STp->buffer)->buffer_size; |
STp | 672 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 678 | drivers/scsi/st.c | cmd[1] = (STp->block_size != 0); |
STp | 680 | drivers/scsi/st.c | STp->rw = ST_WRITING; |
STp | 685 | drivers/scsi/st.c | STp->block_size != 0 && |
STp | 686 | drivers/scsi/st.c | ((STp->buffer)->buffer_bytes + count) > |
STp | 689 | drivers/scsi/st.c | (STp->block_size == 0 && count > 0) || |
STp | 690 | drivers/scsi/st.c | ((STp->buffer)->buffer_bytes + count) >= |
STp | 694 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 697 | drivers/scsi/st.c | do_count = (STp->buffer)->buffer_size - (STp->buffer)->buffer_bytes; |
STp | 701 | drivers/scsi/st.c | memcpy_fromfs((STp->buffer)->b_data + |
STp | 702 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes, b_point, do_count); |
STp | 704 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 707 | drivers/scsi/st.c | blks = ((STp->buffer)->buffer_bytes + do_count) / |
STp | 708 | drivers/scsi/st.c | STp->block_size; |
STp | 715 | drivers/scsi/st.c | (void *) cmd, (STp->buffer)->b_data, |
STp | 716 | drivers/scsi/st.c | (STp->buffer)->buffer_size, |
STp | 719 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 721 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) { |
STp | 727 | drivers/scsi/st.c | if (STp->block_size != 0 && (SCpnt->sense_buffer[0] & 0x80) != 0) |
STp | 731 | drivers/scsi/st.c | else if (STp->block_size == 0 && |
STp | 736 | drivers/scsi/st.c | if (STp->block_size != 0) |
STp | 737 | drivers/scsi/st.c | transfer *= STp->block_size; |
STp | 741 | drivers/scsi/st.c | STp->eof = ST_EOM_OK; |
STp | 749 | drivers/scsi/st.c | STp->eof = ST_EOM_ERROR; |
STp | 760 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = 0; |
STp | 761 | drivers/scsi/st.c | STp->dirty = 0; |
STp | 770 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = 0; |
STp | 771 | drivers/scsi/st.c | STp->dirty = 0; |
STp | 774 | drivers/scsi/st.c | STp->dirty = 1; |
STp | 775 | drivers/scsi/st.c | memcpy_fromfs((STp->buffer)->b_data + |
STp | 776 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes,b_point,count); |
STp | 778 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes += count; |
STp | 782 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) { |
STp | 784 | drivers/scsi/st.c | return (STp->buffer)->last_result_fatal; |
STp | 788 | drivers/scsi/st.c | if ((STp->buffer)->buffer_bytes >= ST_WRITE_THRESHOLD || |
STp | 789 | drivers/scsi/st.c | STp->block_size == 0) { |
STp | 791 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 792 | drivers/scsi/st.c | (STp->buffer)->writing = (STp->buffer)->buffer_bytes; |
STp | 794 | drivers/scsi/st.c | (STp->buffer)->writing = ((STp->buffer)->buffer_bytes / |
STp | 795 | drivers/scsi/st.c | STp->block_size) * STp->block_size; |
STp | 796 | drivers/scsi/st.c | STp->dirty = 0; |
STp | 798 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 799 | drivers/scsi/st.c | blks = (STp->buffer)->writing; |
STp | 801 | drivers/scsi/st.c | blks = (STp->buffer)->writing / STp->block_size; |
STp | 805 | drivers/scsi/st.c | SCpnt->result = (STp->buffer)->last_result = -1; |
STp | 809 | drivers/scsi/st.c | (void *) cmd, (STp->buffer)->b_data, |
STp | 810 | drivers/scsi/st.c | (STp->buffer)->writing, |
STp | 830 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 833 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 835 | drivers/scsi/st.c | if (!STp->in_use) { |
STp | 841 | drivers/scsi/st.c | if (STp->block_size == 0 && count > ST_BUFFER_SIZE) |
STp | 844 | drivers/scsi/st.c | if (STp->rw == ST_WRITING) { |
STp | 848 | drivers/scsi/st.c | STp->rw = ST_READING; |
STp | 852 | drivers/scsi/st.c | if (STp->eof != ST_NOEOF) |
STp | 854 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes); |
STp | 856 | drivers/scsi/st.c | if (((STp->buffer)->buffer_bytes == 0) && |
STp | 857 | drivers/scsi/st.c | STp->eof == ST_EOM_OK) /* EOM or Blank Check */ |
STp | 860 | drivers/scsi/st.c | STp->rw = ST_READING; |
STp | 862 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 866 | drivers/scsi/st.c | if ((STp->buffer)->buffer_bytes == 0 && |
STp | 867 | drivers/scsi/st.c | STp->eof == ST_NOEOF) { |
STp | 871 | drivers/scsi/st.c | cmd[1] = (STp->block_size != 0); |
STp | 872 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 875 | drivers/scsi/st.c | blks = (STp->buffer)->buffer_blocks; |
STp | 876 | drivers/scsi/st.c | bytes = blks * STp->block_size; |
STp | 885 | drivers/scsi/st.c | (void *) cmd, (STp->buffer)->b_data, |
STp | 886 | drivers/scsi/st.c | (STp->buffer)->buffer_size, |
STp | 889 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 891 | drivers/scsi/st.c | (STp->buffer)->read_pointer = 0; |
STp | 892 | drivers/scsi/st.c | STp->eof_hit = 0; |
STp | 894 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal) { |
STp | 912 | drivers/scsi/st.c | if (STp->block_size == 0 && |
STp | 917 | drivers/scsi/st.c | if (STp->block_size == 0) { |
STp | 920 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = count - transfer; |
STp | 929 | drivers/scsi/st.c | STp->eof = ST_EOM_OK; |
STp | 930 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 931 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = count - transfer; |
STp | 933 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = |
STp | 934 | drivers/scsi/st.c | ((STp->buffer)->buffer_blocks - transfer) * |
STp | 935 | drivers/scsi/st.c | STp->block_size; |
STp | 938 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes); |
STp | 942 | drivers/scsi/st.c | STp->eof = ST_FM; |
STp | 943 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 944 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = 0; |
STp | 946 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = |
STp | 947 | drivers/scsi/st.c | ((STp->buffer)->buffer_blocks - transfer) * |
STp | 948 | drivers/scsi/st.c | STp->block_size; |
STp | 952 | drivers/scsi/st.c | dev, (STp->buffer)->buffer_bytes, total); |
STp | 968 | drivers/scsi/st.c | transfer = (STp->buffer)->last_result_fatal; |
STp | 974 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = bytes; |
STp | 979 | drivers/scsi/st.c | if ((STp->buffer)->buffer_bytes > 0) { |
STp | 981 | drivers/scsi/st.c | if (STp->eof != ST_NOEOF) |
STp | 983 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes, count - total); |
STp | 985 | drivers/scsi/st.c | transfer = (STp->buffer)->buffer_bytes < count - total ? |
STp | 986 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes : count - total; |
STp | 987 | drivers/scsi/st.c | memcpy_tofs(buf, (STp->buffer)->b_data + |
STp | 988 | drivers/scsi/st.c | (STp->buffer)->read_pointer,transfer); |
STp | 992 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes -= transfer; |
STp | 993 | drivers/scsi/st.c | (STp->buffer)->read_pointer += transfer; |
STp | 995 | drivers/scsi/st.c | else if (STp->eof != ST_NOEOF) { |
STp | 996 | drivers/scsi/st.c | STp->eof_hit = 1; |
STp | 998 | drivers/scsi/st.c | if (total == 0 && STp->eof == ST_FM) |
STp | 999 | drivers/scsi/st.c | STp->eof = 0; |
STp | 1000 | drivers/scsi/st.c | if (total == 0 && STp->eof == ST_EOM_OK) |
STp | 1005 | drivers/scsi/st.c | if (STp->block_size == 0) |
STp | 1027 | drivers/scsi/st.c | Scsi_Tape * STp; |
STp | 1030 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 1087 | drivers/scsi/st.c | if (STp->write_prot) |
STp | 1144 | drivers/scsi/st.c | if (STp->write_prot) |
STp | 1153 | drivers/scsi/st.c | if ((STp->device)->scsi_level < SCSI_2) { |
STp | 1179 | drivers/scsi/st.c | if (STp->dirty || (STp->buffer)->buffer_bytes != 0) |
STp | 1183 | drivers/scsi/st.c | (arg < STp->min_block || arg > STp->max_block || |
STp | 1191 | drivers/scsi/st.c | memset((STp->buffer)->b_data, 0, 12); |
STp | 1193 | drivers/scsi/st.c | (STp->buffer)->b_data[2] = (arg & 7) << 4; |
STp | 1195 | drivers/scsi/st.c | (STp->buffer)->b_data[2] = |
STp | 1196 | drivers/scsi/st.c | STp->drv_buffer << 4; |
STp | 1197 | drivers/scsi/st.c | (STp->buffer)->b_data[3] = 8; /* block descriptor length */ |
STp | 1199 | drivers/scsi/st.c | (STp->buffer)->b_data[4] = arg; |
STp | 1201 | drivers/scsi/st.c | (STp->buffer)->b_data[4] = STp->density; |
STp | 1205 | drivers/scsi/st.c | ltmp = STp->block_size; |
STp | 1206 | drivers/scsi/st.c | (STp->buffer)->b_data[9] = (ltmp >> 16); |
STp | 1207 | drivers/scsi/st.c | (STp->buffer)->b_data[10] = (ltmp >> 8); |
STp | 1208 | drivers/scsi/st.c | (STp->buffer)->b_data[11] = ltmp; |
STp | 1213 | drivers/scsi/st.c | (STp->buffer)->b_data[9] * 65536 + |
STp | 1214 | drivers/scsi/st.c | (STp->buffer)->b_data[10] * 256 + |
STp | 1215 | drivers/scsi/st.c | (STp->buffer)->b_data[11]); |
STp | 1218 | drivers/scsi/st.c | (STp->buffer)->b_data[4]); |
STp | 1221 | drivers/scsi/st.c | ((STp->buffer)->b_data[2] >> 4) & 7); |
STp | 1229 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 1233 | drivers/scsi/st.c | (void *) cmd, (void *) (STp->buffer)->b_data, ST_BLOCK_SIZE, |
STp | 1236 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 1238 | drivers/scsi/st.c | ioctl_result = (STp->buffer)->last_result_fatal; |
STp | 1248 | drivers/scsi/st.c | STp->block_size = arg; |
STp | 1250 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks = |
STp | 1251 | drivers/scsi/st.c | ST_BUFFER_SIZE / STp->block_size; |
STp | 1252 | drivers/scsi/st.c | (STp->buffer)->buffer_size = |
STp | 1253 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks * STp->block_size; |
STp | 1256 | drivers/scsi/st.c | (STp->buffer)->buffer_blocks = 1; |
STp | 1257 | drivers/scsi/st.c | (STp->buffer)->buffer_size = ST_BUFFER_SIZE; |
STp | 1259 | drivers/scsi/st.c | (STp->buffer)->buffer_bytes = |
STp | 1260 | drivers/scsi/st.c | (STp->buffer)->read_pointer = 0; |
STp | 1263 | drivers/scsi/st.c | STp->drv_buffer = arg; |
STp | 1265 | drivers/scsi/st.c | STp->density = arg; |
STp | 1267 | drivers/scsi/st.c | STp->eof = ST_EOM_OK; |
STp | 1268 | drivers/scsi/st.c | STp->eof_hit = 0; |
STp | 1271 | drivers/scsi/st.c | STp->eof = ST_NOEOF; |
STp | 1272 | drivers/scsi/st.c | STp->eof_hit = 0; |
STp | 1292 | drivers/scsi/st.c | Scsi_Tape *STp; |
STp | 1295 | drivers/scsi/st.c | STp = &(scsi_tapes[dev]); |
STp | 1297 | drivers/scsi/st.c | if (!STp->in_use) { |
STp | 1331 | drivers/scsi/st.c | memcpy_tofs((char *)arg, (char *)(STp->buffer)->mt_status, |
STp | 1350 | drivers/scsi/st.c | SCpnt = allocate_device(NULL, (STp->device)->index, 1); |
STp | 1354 | drivers/scsi/st.c | if ((STp->device)->scsi_level < SCSI_2) { |
STp | 1365 | drivers/scsi/st.c | (void *) scmd, (void *) (STp->buffer)->b_data, |
STp | 1368 | drivers/scsi/st.c | if (SCpnt->request.dev == dev) sleep_on( &(STp->waiting) ); |
STp | 1370 | drivers/scsi/st.c | if ((STp->buffer)->last_result_fatal != 0) { |
STp | 1379 | drivers/scsi/st.c | if ((STp->device)->scsi_level < SCSI_2) |
STp | 1380 | drivers/scsi/st.c | mt_pos.mt_blkno = ((STp->buffer)->b_data[0] << 16) |
STp | 1381 | drivers/scsi/st.c | + ((STp->buffer)->b_data[1] << 8) |
STp | 1382 | drivers/scsi/st.c | + (STp->buffer)->b_data[2]; |
STp | 1384 | drivers/scsi/st.c | mt_pos.mt_blkno = ((STp->buffer)->b_data[4] << 24) |
STp | 1385 | drivers/scsi/st.c | + ((STp->buffer)->b_data[5] << 16) |
STp | 1386 | drivers/scsi/st.c | + ((STp->buffer)->b_data[6] << 8) |
STp | 1387 | drivers/scsi/st.c | + (STp->buffer)->b_data[7]; |
STp | 1397 | drivers/scsi/st.c | return scsi_ioctl(STp->device, cmd_in, (void *) arg); |