| tag | line | file | source code |
| tape | 1221 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 1233 | drivers/block/ide-tape.c | tape->block_address=0; |
| tape | 1234 | drivers/block/ide-tape.c | tape->block_address_valid=0; |
| tape | 1235 | drivers/block/ide-tape.c | tape->pc_stack_index=0; |
| tape | 1236 | drivers/block/ide-tape.c | tape->failed_pc=NULL; |
| tape | 1237 | drivers/block/ide-tape.c | tape->postponed_rq=NULL; |
| tape | 1238 | drivers/block/ide-tape.c | tape->busy=0; |
| tape | 1239 | drivers/block/ide-tape.c | tape->active_data_request=NULL; |
| tape | 1240 | drivers/block/ide-tape.c | tape->current_number_of_stages=0; |
| tape | 1241 | drivers/block/ide-tape.c | tape->first_stage=tape->next_stage=tape->last_stage=NULL; |
| tape | 1242 | drivers/block/ide-tape.c | tape->error_in_pipeline_stage=0; |
| tape | 1243 | drivers/block/ide-tape.c | tape->request_status=0; |
| tape | 1244 | drivers/block/ide-tape.c | tape->chrdev_direction=idetape_direction_none; |
| tape | 1245 | drivers/block/ide-tape.c | tape->reset_issued=0; |
| tape | 1248 | drivers/block/ide-tape.c | tape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES; |
| tape | 1251 | drivers/block/ide-tape.c | tape->max_number_of_stages=0; |
| tape | 1257 | drivers/block/ide-tape.c | tape->data_buffer_size=tape->capabilities.ctl*tape->tape_block_size; |
| tape | 1259 | drivers/block/ide-tape.c | allocation_length=tape->data_buffer_size; |
| tape | 1260 | drivers/block/ide-tape.c | if (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK) |
| tape | 1264 | drivers/block/ide-tape.c | tape->data_buffer=tape->merge_buffer=NULL; |
| tape | 1266 | drivers/block/ide-tape.c | tape->data_buffer=kmalloc (allocation_length,GFP_KERNEL); |
| tape | 1267 | drivers/block/ide-tape.c | tape->merge_buffer=kmalloc (allocation_length,GFP_KERNEL); |
| tape | 1268 | drivers/block/ide-tape.c | if (tape->data_buffer == NULL || tape->merge_buffer == NULL) { |
| tape | 1277 | drivers/block/ide-tape.c | tape->merge_buffer_size=tape->merge_buffer_offset=0; |
| tape | 1302 | drivers/block/ide-tape.c | service_time=((double) tape->data_buffer_size/1024.0)/((double) tape->capabilities.speed*(1000.0/1024.0)); |
| tape | 1303 | drivers/block/ide-tape.c | nr_units=(double) tape->capabilities.buffer_size*512.0/(double) tape->data_buffer_size; |
| tape | 1305 | drivers/block/ide-tape.c | if (tape->max_number_of_stages) |
| tape | 1306 | drivers/block/ide-tape.c | tape->best_dsc_rw_frequency=(unsigned long) (0.5*nr_units*service_time*HZ); |
| tape | 1308 | drivers/block/ide-tape.c | tape->best_dsc_rw_frequency=(unsigned long) (service_time*HZ); |
| tape | 1314 | drivers/block/ide-tape.c | if (tape->best_dsc_rw_frequency > IDETAPE_DSC_READ_WRITE_LOWEST_FREQUENCY) { |
| tape | 1315 | drivers/block/ide-tape.c | printk ("ide-tape: Although the recommended polling period is %lu jiffies, \n",tape->best_dsc_rw_frequency); |
| tape | 1318 | drivers/block/ide-tape.c | tape->best_dsc_rw_frequency = IDETAPE_DSC_READ_WRITE_LOWEST_FREQUENCY; |
| tape | 1321 | drivers/block/ide-tape.c | if (tape->best_dsc_rw_frequency < IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY) { |
| tape | 1322 | drivers/block/ide-tape.c | printk ("ide-tape: Although the recommended polling period is %lu jiffies, \n",tape->best_dsc_rw_frequency); |
| tape | 1324 | drivers/block/ide-tape.c | tape->best_dsc_rw_frequency = IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY; |
| tape | 1328 | drivers/block/ide-tape.c | tape->best_dsc_rw_frequency=IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY; |
| tape | 1331 | drivers/block/ide-tape.c | printk ("ide-tape: Tape speed - %d KBps. Recommended transfer unit - %d bytes.\n",tape->capabilities.speed,tape->data_buffer_size); |
| tape | 1346 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 1365 | drivers/block/ide-tape.c | tape->capabilities=*capabilities; /* Save us a copy */ |
| tape | 1366 | drivers/block/ide-tape.c | tape->tape_block_size=capabilities->blk512 ? 512:1024; |
| tape | 1371 | drivers/block/ide-tape.c | tape->tape_block_size=512; |
| tape | 1372 | drivers/block/ide-tape.c | tape->capabilities.ctl=52; |
| tape | 1373 | drivers/block/ide-tape.c | tape->capabilities.speed=450; |
| tape | 1374 | drivers/block/ide-tape.c | tape->capabilities.buffer_size=6*52; |
| tape | 1455 | drivers/block/ide-tape.c | idetape_tape_t *tape; |
| tape | 1460 | drivers/block/ide-tape.c | tape=&(drive->tape); |
| tape | 1463 | drivers/block/ide-tape.c | if (tape->pc->c[0] == IDETAPE_REQUEST_SENSE_CMD && pc->c[0] == IDETAPE_REQUEST_SENSE_CMD) { |
| tape | 1468 | drivers/block/ide-tape.c | if (tape->failed_pc == NULL && pc->c[0] != IDETAPE_REQUEST_SENSE_CMD) |
| tape | 1469 | drivers/block/ide-tape.c | tape->failed_pc=pc; |
| tape | 1470 | drivers/block/ide-tape.c | tape->pc=pc; /* Set the current packet command */ |
| tape | 1483 | drivers/block/ide-tape.c | printk ("pc = %x, key = %x, asc = %x, ascq = %x\n",pc->c[0],tape->sense_key,tape->asc,tape->ascq); |
| tape | 1487 | drivers/block/ide-tape.c | tape->failed_pc=NULL; |
| tape | 1573 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 1577 | drivers/block/ide-tape.c | idetape_packet_command_t *pc=tape->pc; |
| tape | 1631 | drivers/block/ide-tape.c | tape->dsc_polling_frequency=IDETAPE_DSC_FAST_MEDIA_ACCESS_FREQUENCY; |
| tape | 1635 | drivers/block/ide-tape.c | if (tape->failed_pc == pc) |
| tape | 1636 | drivers/block/ide-tape.c | tape->failed_pc=NULL; |
| tape | 1721 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 1729 | drivers/block/ide-tape.c | if (tape->postponed_rq != NULL) |
| tape | 1733 | drivers/block/ide-tape.c | tape->dsc_timer.expires=jiffies + tape->dsc_polling_frequency; /* Set timer to poll for */ |
| tape | 1734 | drivers/block/ide-tape.c | tape->dsc_timeout=jiffies+IDETAPE_DSC_TIMEOUT; /* actual completion */ |
| tape | 1735 | drivers/block/ide-tape.c | tape->dsc_timer.data=(unsigned long) drive; |
| tape | 1736 | drivers/block/ide-tape.c | tape->dsc_timer.function=&idetape_poll_for_dsc; |
| tape | 1737 | drivers/block/ide-tape.c | init_timer (&(tape->dsc_timer)); |
| tape | 1743 | drivers/block/ide-tape.c | tape->postponed_rq = rq = HWGROUP(drive)->rq; |
| tape | 1753 | drivers/block/ide-tape.c | tape->last_status=status.all; |
| tape | 1754 | drivers/block/ide-tape.c | tape->request_status=1; |
| tape | 1756 | drivers/block/ide-tape.c | tape->dsc_polling_start=jiffies; |
| tape | 1757 | drivers/block/ide-tape.c | add_timer(&(tape->dsc_timer)); /* Activate the polling timer */ |
| tape | 1770 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 1781 | drivers/block/ide-tape.c | tape->dsc_received=1; |
| tape | 1782 | drivers/block/ide-tape.c | del_timer (&(tape->dsc_timer)); /* Stop polling and put back the postponed */ |
| tape | 1787 | drivers/block/ide-tape.c | if (jiffies > tape->dsc_timeout) { /* Timeout */ |
| tape | 1788 | drivers/block/ide-tape.c | tape->dsc_received=0; |
| tape | 1789 | drivers/block/ide-tape.c | del_timer (&(tape->dsc_timer)); |
| tape | 1797 | drivers/block/ide-tape.c | if (jiffies - tape->dsc_polling_start > IDETAPE_FAST_SLOW_THRESHOLD) |
| tape | 1798 | drivers/block/ide-tape.c | tape->dsc_timer.expires = jiffies + IDETAPE_DSC_SLOW_MEDIA_ACCESS_FREQUENCY; |
| tape | 1800 | drivers/block/ide-tape.c | tape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency; |
| tape | 1801 | drivers/block/ide-tape.c | add_timer(&(tape->dsc_timer)); |
| tape | 1826 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 1853 | drivers/block/ide-tape.c | status.all=tape->last_status; |
| tape | 1856 | drivers/block/ide-tape.c | tape->dsc_received=1; |
| tape | 1858 | drivers/block/ide-tape.c | del_timer (&(tape->dsc_timer)); |
| tape | 1914 | drivers/block/ide-tape.c | if (tape->postponed_rq->cmd != IDETAPE_PACKET_COMMAND_REQUEST_TYPE1) { |
| tape | 1922 | drivers/block/ide-tape.c | del_timer (&(tape->dsc_timer)); |
| tape | 1949 | drivers/block/ide-tape.c | if (tape->postponed_rq->cmd == IDETAPE_PACKET_COMMAND_REQUEST_TYPE1) { |
| tape | 1958 | drivers/block/ide-tape.c | tape->request_status=1; |
| tape | 1960 | drivers/block/ide-tape.c | tape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency; |
| tape | 1961 | drivers/block/ide-tape.c | add_timer(&(tape->dsc_timer)); |
| tape | 1972 | drivers/block/ide-tape.c | del_timer (&(tape->dsc_timer)); |
| tape | 1984 | drivers/block/ide-tape.c | tape->request_status=1; |
| tape | 1987 | drivers/block/ide-tape.c | if (jiffies > tape->dsc_timeout) { /* Timeout */ |
| tape | 1988 | drivers/block/ide-tape.c | tape->dsc_received=0; |
| tape | 1991 | drivers/block/ide-tape.c | del_timer (&(tape->dsc_timer)); |
| tape | 1998 | drivers/block/ide-tape.c | if (jiffies - tape->dsc_polling_start > IDETAPE_FAST_SLOW_THRESHOLD) |
| tape | 1999 | drivers/block/ide-tape.c | tape->dsc_timer.expires = jiffies + IDETAPE_DSC_SLOW_MEDIA_ACCESS_FREQUENCY; |
| tape | 2001 | drivers/block/ide-tape.c | tape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency; |
| tape | 2002 | drivers/block/ide-tape.c | add_timer(&(tape->dsc_timer)); |
| tape | 2014 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 2020 | drivers/block/ide-tape.c | if (tape->postponed_rq == NULL) { |
| tape | 2025 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive, tape->postponed_rq, ide_next); |
| tape | 2042 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 2046 | drivers/block/ide-tape.c | pc=tape->pc; |
| tape | 2050 | drivers/block/ide-tape.c | if (tape->dsc_received) { |
| tape | 2060 | drivers/block/ide-tape.c | if (tape->failed_pc == pc) |
| tape | 2061 | drivers/block/ide-tape.c | tape->failed_pc=NULL; |
| tape | 2075 | drivers/block/ide-tape.c | tape->failed_pc=NULL; |
| tape | 2117 | drivers/block/ide-tape.c | idetape_tape_t *tape; |
| tape | 2120 | drivers/block/ide-tape.c | tape=&(drive->tape); |
| tape | 2126 | drivers/block/ide-tape.c | if (!tape->pc->error) { |
| tape | 2142 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 2144 | drivers/block/ide-tape.c | int blocks_read=tape->pc->actually_transferred/tape->tape_block_size; |
| tape | 2150 | drivers/block/ide-tape.c | tape->block_address+=blocks_read; |
| tape | 2153 | drivers/block/ide-tape.c | if (!tape->pc->error) |
| tape | 2156 | drivers/block/ide-tape.c | rq->errors=tape->pc->error; |
| tape | 2170 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 2172 | drivers/block/ide-tape.c | int blocks_written=tape->pc->actually_transferred/tape->tape_block_size; |
| tape | 2178 | drivers/block/ide-tape.c | tape->block_address+=blocks_written; |
| tape | 2181 | drivers/block/ide-tape.c | if (!tape->pc->error) |
| tape | 2184 | drivers/block/ide-tape.c | rq->errors=tape->pc->error; |
| tape | 2193 | drivers/block/ide-tape.c | idetape_tape_t *tape; |
| tape | 2195 | drivers/block/ide-tape.c | tape=&(drive->tape); |
| tape | 2197 | drivers/block/ide-tape.c | idetape_display_inquiry_result (tape->pc->buffer); |
| tape | 2383 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 2388 | drivers/block/ide-tape.c | if (!tape->pc->error) { |
| tape | 2392 | drivers/block/ide-tape.c | idetape_analyze_error (drive,(idetape_request_sense_result_t *) tape->pc->buffer); |
| tape | 2411 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 2412 | drivers/block/ide-tape.c | idetape_packet_command_t *pc=tape->failed_pc; |
| tape | 2414 | drivers/block/ide-tape.c | tape->sense_key=result->sense_key; |
| tape | 2415 | drivers/block/ide-tape.c | tape->asc=result->asc; |
| tape | 2416 | drivers/block/ide-tape.c | tape->ascq=result->ascq; |
| tape | 2449 | drivers/block/ide-tape.c | pc->actually_transferred=pc->request_transfer-tape->tape_block_size*idetape_swap_long (*long_ptr); |
| tape | 2743 | drivers/block/ide-tape.c | idetape_tape_t *tape; |
| tape | 2747 | drivers/block/ide-tape.c | tape=&(drive->tape); |
| tape | 2755 | drivers/block/ide-tape.c | if (!tape->pc->error) { |
| tape | 2756 | drivers/block/ide-tape.c | result=(idetape_read_position_result_t *) tape->pc->buffer; |
| tape | 2766 | drivers/block/ide-tape.c | tape->block_address_valid=0; |
| tape | 2773 | drivers/block/ide-tape.c | tape->block_address=idetape_swap_long (result->first_block); |
| tape | 2774 | drivers/block/ide-tape.c | tape->block_address_valid=1; |
| tape | 2824 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 2839 | drivers/block/ide-tape.c | if (tape->active_data_request == rq) { /* The request was a pipelined data transfer request */ |
| tape | 2843 | drivers/block/ide-tape.c | if (tape->active_stage == NULL) |
| tape | 2847 | drivers/block/ide-tape.c | idetape_copy_buffer_to_stage (tape->active_stage,tape->data_buffer); |
| tape | 2850 | drivers/block/ide-tape.c | tape->active_stage=NULL; |
| tape | 2851 | drivers/block/ide-tape.c | tape->active_data_request=NULL; |
| tape | 2855 | drivers/block/ide-tape.c | tape->error_in_pipeline_stage=rq->errors; |
| tape | 2859 | drivers/block/ide-tape.c | if (tape->next_stage == NULL) { |
| tape | 2876 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive,tape->active_data_request,ide_end); |
| tape | 2878 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive,tape->active_data_request,ide_next); |
| tape | 2891 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 2945 | drivers/block/ide-tape.c | if (tape->failed_pc != NULL && tape->pc->c[0] == IDETAPE_REQUEST_SENSE_CMD) { |
| tape | 2946 | drivers/block/ide-tape.c | idetape_issue_packet_command (drive,tape->failed_pc,&idetape_pc_intr); |
| tape | 2952 | drivers/block/ide-tape.c | if (tape->postponed_rq != NULL) { |
| tape | 2954 | drivers/block/ide-tape.c | if (tape->postponed_rq->rq_status != RQ_ACTIVE || rq != tape->postponed_rq) { |
| tape | 2964 | drivers/block/ide-tape.c | tape->postponed_rq = NULL; |
| tape | 2975 | drivers/block/ide-tape.c | tape->postponed_rq = NULL; |
| tape | 2986 | drivers/block/ide-tape.c | if (tape->reset_issued) { |
| tape | 2988 | drivers/block/ide-tape.c | tape->reset_issued=0; |
| tape | 2997 | drivers/block/ide-tape.c | tape->dsc_polling_frequency=tape->best_dsc_rw_frequency; |
| tape | 3007 | drivers/block/ide-tape.c | pc->buffer_size=rq->current_nr_sectors*tape->tape_block_size; |
| tape | 3009 | drivers/block/ide-tape.c | pc->request_transfer=rq->current_nr_sectors*tape->tape_block_size; |
| tape | 3019 | drivers/block/ide-tape.c | tape->dsc_polling_frequency=tape->best_dsc_rw_frequency; |
| tape | 3029 | drivers/block/ide-tape.c | pc->buffer_size=rq->current_nr_sectors*tape->tape_block_size; |
| tape | 3031 | drivers/block/ide-tape.c | pc->request_transfer=rq->current_nr_sectors*tape->tape_block_size; |
| tape | 3049 | drivers/block/ide-tape.c | tape->dsc_polling_frequency=IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY; |
| tape | 3162 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 3169 | drivers/block/ide-tape.c | if (tape->active_data_request != NULL) { |
| tape | 3178 | drivers/block/ide-tape.c | rq.sector = tape->block_address; |
| tape | 3182 | drivers/block/ide-tape.c | return (tape->tape_block_size*(blocks-rq.current_nr_sectors)); |
| tape | 3193 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 3205 | drivers/block/ide-tape.c | rq.sector = tape->block_address; |
| tape | 3208 | drivers/block/ide-tape.c | if (tape->current_number_of_stages < 0.5*tape->max_number_of_stages) { |
| tape | 3217 | drivers/block/ide-tape.c | if (tape->active_data_request == NULL) |
| tape | 3221 | drivers/block/ide-tape.c | if (tape->first_stage == NULL) { |
| tape | 3232 | drivers/block/ide-tape.c | if (tape->active_data_request == &(tape->first_stage->rq)) |
| tape | 3233 | drivers/block/ide-tape.c | idetape_wait_for_request (tape->active_data_request); |
| tape | 3236 | drivers/block/ide-tape.c | rq_ptr=&(tape->first_stage->rq); |
| tape | 3237 | drivers/block/ide-tape.c | bytes_read=tape->tape_block_size*(rq_ptr->nr_sectors-rq_ptr->current_nr_sectors); |
| tape | 3239 | drivers/block/ide-tape.c | idetape_copy_buffer_from_stage (tape->first_stage,buffer); |
| tape | 3243 | drivers/block/ide-tape.c | if (bytes_read > blocks*tape->tape_block_size) { |
| tape | 3245 | drivers/block/ide-tape.c | bytes_read=blocks*tape->tape_block_size; |
| tape | 3266 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 3287 | drivers/block/ide-tape.c | if (tape->active_data_request != NULL) { |
| tape | 3288 | drivers/block/ide-tape.c | idetape_wait_for_request (tape->active_data_request); |
| tape | 3307 | drivers/block/ide-tape.c | rq->sector = tape->block_address; /* Doesn't actually matter - We always assume sequential access */ |
| tape | 3326 | drivers/block/ide-tape.c | if (tape->active_data_request == NULL && tape->current_number_of_stages >= 0.75*tape->max_number_of_stages) |
| tape | 3329 | drivers/block/ide-tape.c | if (tape->error_in_pipeline_stage) { /* Return a deferred error */ |
| tape | 3330 | drivers/block/ide-tape.c | tape->error_in_pipeline_stage=0; |
| tape | 3340 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 3344 | drivers/block/ide-tape.c | if (tape->chrdev_direction != idetape_direction_read) { |
| tape | 3350 | drivers/block/ide-tape.c | tape->merge_buffer_size=tape->merge_buffer_offset=0; |
| tape | 3351 | drivers/block/ide-tape.c | tape->chrdev_direction=idetape_direction_none; |
| tape | 3353 | drivers/block/ide-tape.c | if (tape->first_stage == NULL) |
| tape | 3357 | drivers/block/ide-tape.c | tape->next_stage=NULL; |
| tape | 3358 | drivers/block/ide-tape.c | if (tape->active_data_request != NULL) |
| tape | 3359 | drivers/block/ide-tape.c | idetape_wait_for_request (tape->active_data_request); |
| tape | 3362 | drivers/block/ide-tape.c | while (tape->first_stage != NULL) |
| tape | 3366 | drivers/block/ide-tape.c | tape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES; |
| tape | 3368 | drivers/block/ide-tape.c | tape->max_number_of_stages=0; |
| tape | 3380 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 3383 | drivers/block/ide-tape.c | if (tape->active_data_request == NULL) |
| tape | 3386 | drivers/block/ide-tape.c | if (tape->active_data_request == NULL) |
| tape | 3390 | drivers/block/ide-tape.c | if (tape->last_stage != NULL) |
| tape | 3391 | drivers/block/ide-tape.c | idetape_wait_for_request (&(tape->last_stage->rq)); |
| tape | 3393 | drivers/block/ide-tape.c | else if (tape->active_data_request != NULL) |
| tape | 3394 | drivers/block/ide-tape.c | idetape_wait_for_request (tape->active_data_request); |
| tape | 3401 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
| tape | 3405 | drivers/block/ide-tape.c | if (tape->chrdev_direction != idetape_direction_write) { |
| tape | 3409 | drivers/block/ide-tape.c | if (tape->merge_buffer_size > tape->data_buffer_size) { |
| tape | 3411 | drivers/block/ide-tape.c | tape->merge_buffer_size = tape->data_buffer_size; |
| tape | 3415 | drivers/block/ide-tape.c | if (tape->merge_buffer_size) { |
| tape | 3416 | drivers/block/ide-tape.c | blocks=tape->merge_buffer_size/tape->tape_block_size; |
| tape | 3417 | drivers/block/ide-tape.c | if (tape->merge_buffer_size % tape->tape_block_size) { |
| tape | 3419 | drivers/block/ide-tape.c | memset (tape->merge_buffer+tape->merge_buffer_size,0,tape->data_buffer_size-tape->merge_buffer_size); |
| tape | 3421 | drivers/block/ide-tape.c | (void) idetape_add_chrdev_write_request (drive,blocks,tape->merge_buffer); |
| tape | 3422 | drivers/block/ide-tape.c | tape->merge_buffer_size=0; |
| tape | 3427 | drivers/block/ide-tape.c | tape->error_in_pipeline_stage=0; |
| tape | 3428 | drivers/block/ide-tape.c | tape->chrdev_direction=idetape_direction_none; |
| tape | 3438 | drivers/block/ide-tape.c | tape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES; |
| tape | 3440 | drivers/block/ide-tape.c | tape->max_number_of_stages=0; |
| tape | 3443 | drivers/block/ide-tape.c | if (tape->first_stage != NULL || tape->next_stage != NULL || tape->last_stage != NULL || tape->current_number_of_stages != 0) { |
| tape | 3525 | drivers/block/ide-tape.c | idetape_tape_t *tape; |
| tape | 3527 | drivers/block/ide-tape.c | tape=&(drive->tape); |
| tape | 3529 | drivers/block/ide-tape.c | printk ("ide-tape: pc_stack_index=%d\n",tape->pc_stack_index); |
| tape | 3531 | drivers/block/ide-tape.c | if (tape->pc_stack_index==IDETAPE_PC_STACK) |
| tape | 3532 | drivers/block/ide-tape.c | tape->pc_stack_index=0; |
| tape | 3533 | drivers/block/ide-tape.c | return (&(tape->pc_stack [tape->pc_stack_index++])); |
| tape | 3552 | drivers/block/ide-tape.c | idetape_tape_t *tape; |
| tape | 3554 | drivers/block/ide-tape.c | tape=&(drive->tape); |
| tape | 3557 | drivers/block/ide-tape.c | printk ("ide-tape: rq_stack_index=%d\n",tape->rq_stack_index); |
| tape | 3559 | drivers/block/ide-tape.c | if (tape->rq_stack_index==IDETAPE_PC_STACK) |
| tape | 3560 | drivers/block/ide-tape.c | tape->rq_stack_index=0; |
| tape | 3561 | drivers/block/ide-tape.c | return (&(tape->rq_stack [tape->rq_stack_index++])); |
| tape | 3575 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 3584 | drivers/block/ide-tape.c | if (tape->busy) { |
| tape | 3589 | drivers/block/ide-tape.c | tape->busy=1; |
| tape | 3598 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 3606 | drivers/block/ide-tape.c | tape->busy=0; |
| tape | 3640 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 3648 | drivers/block/ide-tape.c | if (tape->chrdev_direction != idetape_direction_read) { /* Initialize read operation */ |
| tape | 3649 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_write) { |
| tape | 3660 | drivers/block/ide-tape.c | bytes_read=idetape_queue_rw_tail (drive,IDETAPE_READ_REQUEST,0,tape->merge_buffer); |
| tape | 3664 | drivers/block/ide-tape.c | tape->chrdev_direction=idetape_direction_read; |
| tape | 3670 | drivers/block/ide-tape.c | if (tape->merge_buffer_size) { |
| tape | 3672 | drivers/block/ide-tape.c | if (tape->merge_buffer_offset+tape->merge_buffer_size > tape->data_buffer_size) { |
| tape | 3674 | drivers/block/ide-tape.c | tape->merge_buffer_offset=0;tape->merge_buffer_size=tape->data_buffer_size-1; |
| tape | 3677 | drivers/block/ide-tape.c | actually_read=IDETAPE_MIN (tape->merge_buffer_size,count); |
| tape | 3678 | drivers/block/ide-tape.c | memcpy_tofs (buf_ptr,tape->merge_buffer+tape->merge_buffer_offset,actually_read); |
| tape | 3679 | drivers/block/ide-tape.c | buf_ptr+=actually_read;tape->merge_buffer_size-=actually_read; |
| tape | 3680 | drivers/block/ide-tape.c | count-=actually_read;tape->merge_buffer_offset+=actually_read; |
| tape | 3683 | drivers/block/ide-tape.c | while (count >= tape->data_buffer_size) { |
| tape | 3684 | drivers/block/ide-tape.c | bytes_read=idetape_add_chrdev_read_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
| tape | 3687 | drivers/block/ide-tape.c | memcpy_tofs (buf_ptr,tape->merge_buffer,bytes_read); |
| tape | 3692 | drivers/block/ide-tape.c | bytes_read=idetape_add_chrdev_read_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
| tape | 3696 | drivers/block/ide-tape.c | memcpy_tofs (buf_ptr,tape->merge_buffer,temp); |
| tape | 3698 | drivers/block/ide-tape.c | tape->merge_buffer_offset=temp; |
| tape | 3699 | drivers/block/ide-tape.c | tape->merge_buffer_size=bytes_read-temp; |
| tape | 3708 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 3716 | drivers/block/ide-tape.c | if (tape->chrdev_direction != idetape_direction_write) { /* Initialize write operation */ |
| tape | 3717 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_read) |
| tape | 3726 | drivers/block/ide-tape.c | retval=idetape_queue_rw_tail (drive,IDETAPE_WRITE_REQUEST,0,tape->merge_buffer); |
| tape | 3730 | drivers/block/ide-tape.c | tape->chrdev_direction=idetape_direction_write; |
| tape | 3736 | drivers/block/ide-tape.c | if (tape->merge_buffer_size) { |
| tape | 3738 | drivers/block/ide-tape.c | if (tape->merge_buffer_size >= tape->data_buffer_size) { |
| tape | 3740 | drivers/block/ide-tape.c | tape->merge_buffer_size=0; |
| tape | 3744 | drivers/block/ide-tape.c | actually_written=IDETAPE_MIN (tape->data_buffer_size-tape->merge_buffer_size,count); |
| tape | 3745 | drivers/block/ide-tape.c | memcpy_fromfs (tape->merge_buffer+tape->merge_buffer_size,buf_ptr,actually_written); |
| tape | 3746 | drivers/block/ide-tape.c | buf_ptr+=actually_written;tape->merge_buffer_size+=actually_written;count-=actually_written; |
| tape | 3748 | drivers/block/ide-tape.c | if (tape->merge_buffer_size == tape->data_buffer_size) { |
| tape | 3749 | drivers/block/ide-tape.c | tape->merge_buffer_size=0; |
| tape | 3750 | drivers/block/ide-tape.c | retval=idetape_add_chrdev_write_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
| tape | 3756 | drivers/block/ide-tape.c | while (count >= tape->data_buffer_size) { |
| tape | 3757 | drivers/block/ide-tape.c | memcpy_fromfs (tape->merge_buffer,buf_ptr,tape->data_buffer_size); |
| tape | 3758 | drivers/block/ide-tape.c | buf_ptr+=tape->data_buffer_size;count-=tape->data_buffer_size; |
| tape | 3759 | drivers/block/ide-tape.c | retval=idetape_add_chrdev_write_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
| tape | 3760 | drivers/block/ide-tape.c | actually_written+=tape->data_buffer_size; |
| tape | 3767 | drivers/block/ide-tape.c | memcpy_fromfs (tape->merge_buffer,buf_ptr,count); |
| tape | 3768 | drivers/block/ide-tape.c | tape->merge_buffer_size+=count; |
| tape | 3808 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 3819 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_write) { |
| tape | 3824 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_read && cmd != MTIOCTOP) |
| tape | 3838 | drivers/block/ide-tape.c | mtget.mt_dsreg=(tape->data_buffer_size << MT_ST_BLKSIZE_SHIFT) & MT_ST_BLKSIZE_MASK; |
| tape | 3847 | drivers/block/ide-tape.c | mtpos.mt_blkno=tape->block_address; |
| tape | 3913 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 3945 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_read) |
| tape | 3995 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4000 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_read) { |
| tape | 4007 | drivers/block/ide-tape.c | tape->merge_buffer_size=tape->merge_buffer_offset=0; |
| tape | 4008 | drivers/block/ide-tape.c | while (tape->first_stage != NULL) { |
| tape | 4016 | drivers/block/ide-tape.c | if (tape->active_data_request == &(tape->first_stage->rq)) |
| tape | 4017 | drivers/block/ide-tape.c | idetape_wait_for_request (tape->active_data_request); |
| tape | 4020 | drivers/block/ide-tape.c | errors=tape->first_stage->rq.errors; |
| tape | 4051 | drivers/block/ide-tape.c | if (!tape->capabilities.sprev) |
| tape | 4057 | drivers/block/ide-tape.c | if (!tape->capabilities.sprev) |
| tape | 4062 | drivers/block/ide-tape.c | if (!tape->capabilities.sprev) |
| tape | 4081 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4096 | drivers/block/ide-tape.c | if (tape->busy) { |
| tape | 4101 | drivers/block/ide-tape.c | tape->busy=1; |
| tape | 4104 | drivers/block/ide-tape.c | allocation_length=tape->data_buffer_size; |
| tape | 4105 | drivers/block/ide-tape.c | if (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK) |
| tape | 4109 | drivers/block/ide-tape.c | if (tape->data_buffer == NULL) |
| tape | 4110 | drivers/block/ide-tape.c | tape->data_buffer=kmalloc (allocation_length,GFP_KERNEL); |
| tape | 4111 | drivers/block/ide-tape.c | if (tape->data_buffer == NULL) |
| tape | 4113 | drivers/block/ide-tape.c | if (tape->merge_buffer == NULL) |
| tape | 4114 | drivers/block/ide-tape.c | tape->merge_buffer=kmalloc (allocation_length,GFP_KERNEL); |
| tape | 4115 | drivers/block/ide-tape.c | if (tape->merge_buffer == NULL) { |
| tape | 4116 | drivers/block/ide-tape.c | kfree (tape->data_buffer); |
| tape | 4119 | drivers/block/ide-tape.c | tape->busy=0; |
| tape | 4124 | drivers/block/ide-tape.c | if (!tape->block_address_valid) { |
| tape | 4127 | drivers/block/ide-tape.c | tape->busy=0; |
| tape | 4143 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4152 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_write) { |
| tape | 4159 | drivers/block/ide-tape.c | if (tape->chrdev_direction == idetape_direction_read) { |
| tape | 4171 | drivers/block/ide-tape.c | kfree (tape->data_buffer); |
| tape | 4172 | drivers/block/ide-tape.c | tape->data_buffer=NULL; |
| tape | 4173 | drivers/block/ide-tape.c | if (!tape->merge_buffer_size) { |
| tape | 4174 | drivers/block/ide-tape.c | kfree (tape->merge_buffer); |
| tape | 4175 | drivers/block/ide-tape.c | tape->merge_buffer=NULL; |
| tape | 4180 | drivers/block/ide-tape.c | tape->busy=0; |
| tape | 4269 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4278 | drivers/block/ide-tape.c | if (tape->current_number_of_stages>=tape->max_number_of_stages) { |
| tape | 4288 | drivers/block/ide-tape.c | buffers_num=tape->data_buffer_size / IDETAPE_ALLOCATION_BLOCK; |
| tape | 4289 | drivers/block/ide-tape.c | if (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK) |
| tape | 4441 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4447 | drivers/block/ide-tape.c | tape->max_number_of_stages+=IDETAPE_INCREASE_STAGES_RATE* |
| tape | 4450 | drivers/block/ide-tape.c | if (tape->max_number_of_stages >= IDETAPE_MAX_PIPELINE_STAGES) |
| tape | 4451 | drivers/block/ide-tape.c | tape->max_number_of_stages = IDETAPE_MAX_PIPELINE_STAGES; |
| tape | 4454 | drivers/block/ide-tape.c | printk ("Maximum number of stages: %d\n",tape->max_number_of_stages); |
| tape | 4469 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4476 | drivers/block/ide-tape.c | stage->prev=tape->last_stage; |
| tape | 4477 | drivers/block/ide-tape.c | if (tape->last_stage != NULL) |
| tape | 4478 | drivers/block/ide-tape.c | tape->last_stage->next=stage; |
| tape | 4480 | drivers/block/ide-tape.c | tape->first_stage=tape->next_stage=stage; |
| tape | 4481 | drivers/block/ide-tape.c | tape->last_stage=stage; |
| tape | 4482 | drivers/block/ide-tape.c | if (tape->next_stage == NULL) |
| tape | 4483 | drivers/block/ide-tape.c | tape->next_stage=tape->last_stage; |
| tape | 4484 | drivers/block/ide-tape.c | tape->current_number_of_stages++; |
| tape | 4496 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4503 | drivers/block/ide-tape.c | if (tape->first_stage == NULL) { |
| tape | 4507 | drivers/block/ide-tape.c | if (tape->active_stage == tape->first_stage) { |
| tape | 4512 | drivers/block/ide-tape.c | stage=tape->first_stage; |
| tape | 4513 | drivers/block/ide-tape.c | tape->first_stage=stage->next; |
| tape | 4515 | drivers/block/ide-tape.c | tape->current_number_of_stages--; |
| tape | 4516 | drivers/block/ide-tape.c | if (tape->first_stage == NULL) { |
| tape | 4517 | drivers/block/ide-tape.c | tape->last_stage=NULL; |
| tape | 4519 | drivers/block/ide-tape.c | if (tape->next_stage != NULL) |
| tape | 4521 | drivers/block/ide-tape.c | if (tape->current_number_of_stages) |
| tape | 4535 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4537 | drivers/block/ide-tape.c | if (tape->next_stage == NULL) |
| tape | 4540 | drivers/block/ide-tape.c | if (tape->active_data_request == NULL) { |
| tape | 4542 | drivers/block/ide-tape.c | (void) (ide_do_drive_cmd (drive,tape->active_data_request,ide_end)); |
| tape | 4554 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
| tape | 4555 | drivers/block/ide-tape.c | idetape_pipeline_stage_t *stage=tape->next_stage; |
| tape | 4568 | drivers/block/ide-tape.c | idetape_copy_buffer_from_stage (stage,tape->data_buffer); |
| tape | 4570 | drivers/block/ide-tape.c | rq->buffer=tape->data_buffer; |
| tape | 4571 | drivers/block/ide-tape.c | tape->active_data_request=rq; |
| tape | 4572 | drivers/block/ide-tape.c | tape->active_stage=stage; |
| tape | 4573 | drivers/block/ide-tape.c | tape->next_stage=stage->next; |
| tape | 513 | drivers/block/ide-tape.h | if (hwif->tape_drive->tape.request_status) { \ |
| tape | 515 | drivers/block/ide-tape.h | hwif->tape_drive->tape.last_status=GET_STAT(); \ |
| tape | 516 | drivers/block/ide-tape.h | hwif->tape_drive->tape.request_status=0; \ |
| tape | 733 | drivers/block/ide.c | drive->tape.reset_issued=1; |
| tape | 337 | drivers/block/ide.h | idetape_tape_t tape; /* for ide-tape.c */ |
| tape | 193 | drivers/block/triton.c | size = drive->tape.pc->request_transfer; |