taglinefilesource code
tape1221drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1233drivers/block/ide-tape.ctape->block_address=0;      
tape1234drivers/block/ide-tape.ctape->block_address_valid=0;
tape1235drivers/block/ide-tape.ctape->pc_stack_index=0;
tape1236drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1237drivers/block/ide-tape.ctape->postponed_rq=NULL;
tape1238drivers/block/ide-tape.ctape->busy=0;
tape1239drivers/block/ide-tape.ctape->active_data_request=NULL;
tape1240drivers/block/ide-tape.ctape->current_number_of_stages=0;
tape1241drivers/block/ide-tape.ctape->first_stage=tape->next_stage=tape->last_stage=NULL;
tape1242drivers/block/ide-tape.ctape->error_in_pipeline_stage=0;
tape1243drivers/block/ide-tape.ctape->request_status=0;
tape1244drivers/block/ide-tape.ctape->chrdev_direction=idetape_direction_none;
tape1245drivers/block/ide-tape.ctape->reset_issued=0;
tape1248drivers/block/ide-tape.ctape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES;
tape1251drivers/block/ide-tape.ctape->max_number_of_stages=0;
tape1257drivers/block/ide-tape.ctape->data_buffer_size=tape->capabilities.ctl*tape->tape_block_size;
tape1259drivers/block/ide-tape.callocation_length=tape->data_buffer_size;
tape1260drivers/block/ide-tape.cif (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK)
tape1264drivers/block/ide-tape.ctape->data_buffer=tape->merge_buffer=NULL;
tape1266drivers/block/ide-tape.ctape->data_buffer=kmalloc (allocation_length,GFP_KERNEL);
tape1267drivers/block/ide-tape.ctape->merge_buffer=kmalloc (allocation_length,GFP_KERNEL);
tape1268drivers/block/ide-tape.cif (tape->data_buffer == NULL || tape->merge_buffer == NULL) {
tape1277drivers/block/ide-tape.ctape->merge_buffer_size=tape->merge_buffer_offset=0;
tape1302drivers/block/ide-tape.cservice_time=((double) tape->data_buffer_size/1024.0)/((double) tape->capabilities.speed*(1000.0/1024.0));
tape1303drivers/block/ide-tape.cnr_units=(double) tape->capabilities.buffer_size*512.0/(double) tape->data_buffer_size;
tape1305drivers/block/ide-tape.cif (tape->max_number_of_stages)  
tape1306drivers/block/ide-tape.ctape->best_dsc_rw_frequency=(unsigned long) (0.5*nr_units*service_time*HZ);
tape1308drivers/block/ide-tape.ctape->best_dsc_rw_frequency=(unsigned long) (service_time*HZ);
tape1314drivers/block/ide-tape.cif (tape->best_dsc_rw_frequency > IDETAPE_DSC_READ_WRITE_LOWEST_FREQUENCY) {
tape1315drivers/block/ide-tape.cprintk ("ide-tape: Although the recommended polling period is %lu jiffies, \n",tape->best_dsc_rw_frequency);
tape1318drivers/block/ide-tape.ctape->best_dsc_rw_frequency = IDETAPE_DSC_READ_WRITE_LOWEST_FREQUENCY;
tape1321drivers/block/ide-tape.cif (tape->best_dsc_rw_frequency < IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY) {
tape1322drivers/block/ide-tape.cprintk ("ide-tape: Although the recommended polling period is %lu jiffies, \n",tape->best_dsc_rw_frequency);
tape1324drivers/block/ide-tape.ctape->best_dsc_rw_frequency = IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY;
tape1328drivers/block/ide-tape.ctape->best_dsc_rw_frequency=IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY;
tape1331drivers/block/ide-tape.cprintk ("ide-tape: Tape speed - %d KBps. Recommended transfer unit - %d bytes.\n",tape->capabilities.speed,tape->data_buffer_size);
tape1346drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1365drivers/block/ide-tape.ctape->capabilities=*capabilities;    /* Save us a copy */
tape1366drivers/block/ide-tape.ctape->tape_block_size=capabilities->blk512 ? 512:1024;
tape1371drivers/block/ide-tape.ctape->tape_block_size=512;
tape1372drivers/block/ide-tape.ctape->capabilities.ctl=52;
tape1373drivers/block/ide-tape.ctape->capabilities.speed=450;
tape1374drivers/block/ide-tape.ctape->capabilities.buffer_size=6*52;
tape1455drivers/block/ide-tape.cidetape_tape_t *tape;
tape1460drivers/block/ide-tape.ctape=&(drive->tape);
tape1463drivers/block/ide-tape.cif (tape->pc->c[0] == IDETAPE_REQUEST_SENSE_CMD && pc->c[0] == IDETAPE_REQUEST_SENSE_CMD) {
tape1468drivers/block/ide-tape.cif (tape->failed_pc == NULL && pc->c[0] != IDETAPE_REQUEST_SENSE_CMD)
tape1469drivers/block/ide-tape.ctape->failed_pc=pc;
tape1470drivers/block/ide-tape.ctape->pc=pc;              /* Set the current packet command */
tape1483drivers/block/ide-tape.cprintk ("pc = %x, key = %x, asc = %x, ascq = %x\n",pc->c[0],tape->sense_key,tape->asc,tape->ascq);
tape1487drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1573drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1577drivers/block/ide-tape.cidetape_packet_command_t *pc=tape->pc;
tape1631drivers/block/ide-tape.ctape->dsc_polling_frequency=IDETAPE_DSC_FAST_MEDIA_ACCESS_FREQUENCY;
tape1635drivers/block/ide-tape.cif (tape->failed_pc == pc)
tape1636drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1721drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1729drivers/block/ide-tape.cif (tape->postponed_rq != NULL)
tape1733drivers/block/ide-tape.ctape->dsc_timer.expires=jiffies + tape->dsc_polling_frequency;  /* Set timer to poll for */
tape1734drivers/block/ide-tape.ctape->dsc_timeout=jiffies+IDETAPE_DSC_TIMEOUT;      /* actual completion */
tape1735drivers/block/ide-tape.ctape->dsc_timer.data=(unsigned long) drive;
tape1736drivers/block/ide-tape.ctape->dsc_timer.function=&idetape_poll_for_dsc;
tape1737drivers/block/ide-tape.cinit_timer (&(tape->dsc_timer));
tape1743drivers/block/ide-tape.ctape->postponed_rq = rq = HWGROUP(drive)->rq;
tape1753drivers/block/ide-tape.ctape->last_status=status.all;
tape1754drivers/block/ide-tape.ctape->request_status=1;  
tape1756drivers/block/ide-tape.ctape->dsc_polling_start=jiffies;
tape1757drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));    /* Activate the polling timer */
tape1770drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1781drivers/block/ide-tape.ctape->dsc_received=1;
tape1782drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));      /* Stop polling and put back the postponed */
tape1787drivers/block/ide-tape.cif (jiffies > tape->dsc_timeout)   { /* Timeout */
tape1788drivers/block/ide-tape.ctape->dsc_received=0;
tape1789drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1797drivers/block/ide-tape.cif (jiffies - tape->dsc_polling_start > IDETAPE_FAST_SLOW_THRESHOLD)
tape1798drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + IDETAPE_DSC_SLOW_MEDIA_ACCESS_FREQUENCY;
tape1800drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency;
tape1801drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));
tape1826drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1853drivers/block/ide-tape.cstatus.all=tape->last_status;
tape1856drivers/block/ide-tape.ctape->dsc_received=1;
tape1858drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1914drivers/block/ide-tape.cif (tape->postponed_rq->cmd != IDETAPE_PACKET_COMMAND_REQUEST_TYPE1) {
tape1922drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1949drivers/block/ide-tape.cif (tape->postponed_rq->cmd == IDETAPE_PACKET_COMMAND_REQUEST_TYPE1) {
tape1958drivers/block/ide-tape.ctape->request_status=1;
tape1960drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency;
tape1961drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));
tape1972drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1984drivers/block/ide-tape.ctape->request_status=1;
tape1987drivers/block/ide-tape.cif (jiffies > tape->dsc_timeout)   {     /* Timeout */
tape1988drivers/block/ide-tape.ctape->dsc_received=0;
tape1991drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1998drivers/block/ide-tape.cif (jiffies - tape->dsc_polling_start > IDETAPE_FAST_SLOW_THRESHOLD)
tape1999drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + IDETAPE_DSC_SLOW_MEDIA_ACCESS_FREQUENCY;
tape2001drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency;
tape2002drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));
tape2014drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape2020drivers/block/ide-tape.cif (tape->postponed_rq == NULL) {
tape2025drivers/block/ide-tape.c(void) ide_do_drive_cmd (drive, tape->postponed_rq, ide_next);
tape2042drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2046drivers/block/ide-tape.cpc=tape->pc;
tape2050drivers/block/ide-tape.cif (tape->dsc_received) {
tape2060drivers/block/ide-tape.cif (tape->failed_pc == pc)
tape2061drivers/block/ide-tape.ctape->failed_pc=NULL;
tape2075drivers/block/ide-tape.ctape->failed_pc=NULL;
tape2117drivers/block/ide-tape.cidetape_tape_t *tape;
tape2120drivers/block/ide-tape.ctape=&(drive->tape);
tape2126drivers/block/ide-tape.cif (!tape->pc->error) {
tape2142drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2144drivers/block/ide-tape.cint blocks_read=tape->pc->actually_transferred/tape->tape_block_size;
tape2150drivers/block/ide-tape.ctape->block_address+=blocks_read;
tape2153drivers/block/ide-tape.cif (!tape->pc->error)
tape2156drivers/block/ide-tape.crq->errors=tape->pc->error;
tape2170drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2172drivers/block/ide-tape.cint blocks_written=tape->pc->actually_transferred/tape->tape_block_size;
tape2178drivers/block/ide-tape.ctape->block_address+=blocks_written;
tape2181drivers/block/ide-tape.cif (!tape->pc->error)
tape2184drivers/block/ide-tape.crq->errors=tape->pc->error;
tape2193drivers/block/ide-tape.cidetape_tape_t *tape;
tape2195drivers/block/ide-tape.ctape=&(drive->tape);
tape2197drivers/block/ide-tape.cidetape_display_inquiry_result (tape->pc->buffer);
tape2383drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2388drivers/block/ide-tape.cif (!tape->pc->error) {
tape2392drivers/block/ide-tape.cidetape_analyze_error (drive,(idetape_request_sense_result_t *) tape->pc->buffer);
tape2411drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2412drivers/block/ide-tape.cidetape_packet_command_t *pc=tape->failed_pc;
tape2414drivers/block/ide-tape.ctape->sense_key=result->sense_key;
tape2415drivers/block/ide-tape.ctape->asc=result->asc;
tape2416drivers/block/ide-tape.ctape->ascq=result->ascq;
tape2449drivers/block/ide-tape.cpc->actually_transferred=pc->request_transfer-tape->tape_block_size*idetape_swap_long (*long_ptr);
tape2743drivers/block/ide-tape.cidetape_tape_t *tape;
tape2747drivers/block/ide-tape.ctape=&(drive->tape);
tape2755drivers/block/ide-tape.cif (!tape->pc->error) {
tape2756drivers/block/ide-tape.cresult=(idetape_read_position_result_t *) tape->pc->buffer;
tape2766drivers/block/ide-tape.ctape->block_address_valid=0;
tape2773drivers/block/ide-tape.ctape->block_address=idetape_swap_long (result->first_block);
tape2774drivers/block/ide-tape.ctape->block_address_valid=1;
tape2824drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape2839drivers/block/ide-tape.cif (tape->active_data_request == rq) {    /* The request was a pipelined data transfer request */
tape2843drivers/block/ide-tape.cif (tape->active_stage == NULL)
tape2847drivers/block/ide-tape.cidetape_copy_buffer_to_stage (tape->active_stage,tape->data_buffer);
tape2850drivers/block/ide-tape.ctape->active_stage=NULL;
tape2851drivers/block/ide-tape.ctape->active_data_request=NULL;
tape2855drivers/block/ide-tape.ctape->error_in_pipeline_stage=rq->errors;
tape2859drivers/block/ide-tape.cif (tape->next_stage == NULL) {
tape2876drivers/block/ide-tape.c(void) ide_do_drive_cmd (drive,tape->active_data_request,ide_end);
tape2878drivers/block/ide-tape.c(void) ide_do_drive_cmd (drive,tape->active_data_request,ide_next);
tape2891drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2945drivers/block/ide-tape.cif (tape->failed_pc != NULL && tape->pc->c[0] == IDETAPE_REQUEST_SENSE_CMD) {
tape2946drivers/block/ide-tape.cidetape_issue_packet_command (drive,tape->failed_pc,&idetape_pc_intr);
tape2952drivers/block/ide-tape.cif (tape->postponed_rq != NULL) {
tape2954drivers/block/ide-tape.cif (tape->postponed_rq->rq_status != RQ_ACTIVE || rq != tape->postponed_rq) {
tape2964drivers/block/ide-tape.ctape->postponed_rq = NULL;
tape2975drivers/block/ide-tape.ctape->postponed_rq = NULL;
tape2986drivers/block/ide-tape.cif (tape->reset_issued) {
tape2988drivers/block/ide-tape.ctape->reset_issued=0;
tape2997drivers/block/ide-tape.ctape->dsc_polling_frequency=tape->best_dsc_rw_frequency;
tape3007drivers/block/ide-tape.cpc->buffer_size=rq->current_nr_sectors*tape->tape_block_size;
tape3009drivers/block/ide-tape.cpc->request_transfer=rq->current_nr_sectors*tape->tape_block_size;
tape3019drivers/block/ide-tape.ctape->dsc_polling_frequency=tape->best_dsc_rw_frequency;
tape3029drivers/block/ide-tape.cpc->buffer_size=rq->current_nr_sectors*tape->tape_block_size;
tape3031drivers/block/ide-tape.cpc->request_transfer=rq->current_nr_sectors*tape->tape_block_size;
tape3049drivers/block/ide-tape.ctape->dsc_polling_frequency=IDETAPE_DSC_READ_WRITE_FALLBACK_FREQUENCY;
tape3162drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape3169drivers/block/ide-tape.cif (tape->active_data_request != NULL) {
tape3178drivers/block/ide-tape.crq.sector = tape->block_address;
tape3182drivers/block/ide-tape.creturn (tape->tape_block_size*(blocks-rq.current_nr_sectors));
tape3193drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape3205drivers/block/ide-tape.crq.sector = tape->block_address;
tape3208drivers/block/ide-tape.cif (tape->current_number_of_stages < 0.5*tape->max_number_of_stages) {
tape3217drivers/block/ide-tape.cif (tape->active_data_request == NULL)
tape3221drivers/block/ide-tape.cif (tape->first_stage == NULL) {
tape3232drivers/block/ide-tape.cif (tape->active_data_request == &(tape->first_stage->rq))
tape3233drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape3236drivers/block/ide-tape.crq_ptr=&(tape->first_stage->rq);
tape3237drivers/block/ide-tape.cbytes_read=tape->tape_block_size*(rq_ptr->nr_sectors-rq_ptr->current_nr_sectors);
tape3239drivers/block/ide-tape.cidetape_copy_buffer_from_stage (tape->first_stage,buffer);
tape3243drivers/block/ide-tape.cif (bytes_read > blocks*tape->tape_block_size) {
tape3245drivers/block/ide-tape.cbytes_read=blocks*tape->tape_block_size;
tape3266drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape3287drivers/block/ide-tape.cif (tape->active_data_request != NULL) {
tape3288drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape3307drivers/block/ide-tape.crq->sector = tape->block_address;  /* Doesn't actually matter - We always assume sequential access */
tape3326drivers/block/ide-tape.cif (tape->active_data_request == NULL && tape->current_number_of_stages >= 0.75*tape->max_number_of_stages)
tape3329drivers/block/ide-tape.cif (tape->error_in_pipeline_stage) {    /* Return a deferred error */
tape3330drivers/block/ide-tape.ctape->error_in_pipeline_stage=0;
tape3340drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape3344drivers/block/ide-tape.cif (tape->chrdev_direction != idetape_direction_read) {
tape3350drivers/block/ide-tape.ctape->merge_buffer_size=tape->merge_buffer_offset=0;
tape3351drivers/block/ide-tape.ctape->chrdev_direction=idetape_direction_none;
tape3353drivers/block/ide-tape.cif (tape->first_stage == NULL)
tape3357drivers/block/ide-tape.ctape->next_stage=NULL;
tape3358drivers/block/ide-tape.cif (tape->active_data_request != NULL)
tape3359drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape3362drivers/block/ide-tape.cwhile (tape->first_stage != NULL)
tape3366drivers/block/ide-tape.ctape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES;
tape3368drivers/block/ide-tape.ctape->max_number_of_stages=0;
tape3380drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape3383drivers/block/ide-tape.cif (tape->active_data_request == NULL)
tape3386drivers/block/ide-tape.cif (tape->active_data_request == NULL)
tape3390drivers/block/ide-tape.cif (tape->last_stage != NULL)
tape3391drivers/block/ide-tape.cidetape_wait_for_request (&(tape->last_stage->rq));
tape3393drivers/block/ide-tape.celse if (tape->active_data_request != NULL)
tape3394drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape3401drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape3405drivers/block/ide-tape.cif (tape->chrdev_direction != idetape_direction_write) {
tape3409drivers/block/ide-tape.cif (tape->merge_buffer_size > tape->data_buffer_size) {
tape3411drivers/block/ide-tape.ctape->merge_buffer_size = tape->data_buffer_size;
tape3415drivers/block/ide-tape.cif (tape->merge_buffer_size) {
tape3416drivers/block/ide-tape.cblocks=tape->merge_buffer_size/tape->tape_block_size;
tape3417drivers/block/ide-tape.cif (tape->merge_buffer_size % tape->tape_block_size) {
tape3419drivers/block/ide-tape.cmemset (tape->merge_buffer+tape->merge_buffer_size,0,tape->data_buffer_size-tape->merge_buffer_size);
tape3421drivers/block/ide-tape.c(void) idetape_add_chrdev_write_request (drive,blocks,tape->merge_buffer);
tape3422drivers/block/ide-tape.ctape->merge_buffer_size=0;
tape3427drivers/block/ide-tape.ctape->error_in_pipeline_stage=0;
tape3428drivers/block/ide-tape.ctape->chrdev_direction=idetape_direction_none;
tape3438drivers/block/ide-tape.ctape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES;
tape3440drivers/block/ide-tape.ctape->max_number_of_stages=0;
tape3443drivers/block/ide-tape.cif (tape->first_stage != NULL || tape->next_stage != NULL || tape->last_stage != NULL || tape->current_number_of_stages != 0) {
tape3525drivers/block/ide-tape.cidetape_tape_t *tape;
tape3527drivers/block/ide-tape.ctape=&(drive->tape);
tape3529drivers/block/ide-tape.cprintk ("ide-tape: pc_stack_index=%d\n",tape->pc_stack_index);
tape3531drivers/block/ide-tape.cif (tape->pc_stack_index==IDETAPE_PC_STACK)
tape3532drivers/block/ide-tape.ctape->pc_stack_index=0;
tape3533drivers/block/ide-tape.creturn (&(tape->pc_stack [tape->pc_stack_index++]));
tape3552drivers/block/ide-tape.cidetape_tape_t *tape;
tape3554drivers/block/ide-tape.ctape=&(drive->tape);
tape3557drivers/block/ide-tape.cprintk ("ide-tape: rq_stack_index=%d\n",tape->rq_stack_index);
tape3559drivers/block/ide-tape.cif (tape->rq_stack_index==IDETAPE_PC_STACK)
tape3560drivers/block/ide-tape.ctape->rq_stack_index=0;
tape3561drivers/block/ide-tape.creturn (&(tape->rq_stack [tape->rq_stack_index++]));
tape3575drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3584drivers/block/ide-tape.cif (tape->busy) {
tape3589drivers/block/ide-tape.ctape->busy=1;
tape3598drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3606drivers/block/ide-tape.ctape->busy=0;
tape3640drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3648drivers/block/ide-tape.cif (tape->chrdev_direction != idetape_direction_read) {    /* Initialize read operation */
tape3649drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_write) {
tape3660drivers/block/ide-tape.cbytes_read=idetape_queue_rw_tail (drive,IDETAPE_READ_REQUEST,0,tape->merge_buffer);
tape3664drivers/block/ide-tape.ctape->chrdev_direction=idetape_direction_read;
tape3670drivers/block/ide-tape.cif (tape->merge_buffer_size) {
tape3672drivers/block/ide-tape.cif (tape->merge_buffer_offset+tape->merge_buffer_size > tape->data_buffer_size) {
tape3674drivers/block/ide-tape.ctape->merge_buffer_offset=0;tape->merge_buffer_size=tape->data_buffer_size-1;
tape3677drivers/block/ide-tape.cactually_read=IDETAPE_MIN (tape->merge_buffer_size,count);
tape3678drivers/block/ide-tape.cmemcpy_tofs (buf_ptr,tape->merge_buffer+tape->merge_buffer_offset,actually_read);
tape3679drivers/block/ide-tape.cbuf_ptr+=actually_read;tape->merge_buffer_size-=actually_read;
tape3680drivers/block/ide-tape.ccount-=actually_read;tape->merge_buffer_offset+=actually_read;
tape3683drivers/block/ide-tape.cwhile (count >= tape->data_buffer_size) {
tape3684drivers/block/ide-tape.cbytes_read=idetape_add_chrdev_read_request (drive,tape->capabilities.ctl,tape->merge_buffer);
tape3687drivers/block/ide-tape.cmemcpy_tofs (buf_ptr,tape->merge_buffer,bytes_read);
tape3692drivers/block/ide-tape.cbytes_read=idetape_add_chrdev_read_request (drive,tape->capabilities.ctl,tape->merge_buffer);
tape3696drivers/block/ide-tape.cmemcpy_tofs (buf_ptr,tape->merge_buffer,temp);
tape3698drivers/block/ide-tape.ctape->merge_buffer_offset=temp;
tape3699drivers/block/ide-tape.ctape->merge_buffer_size=bytes_read-temp;
tape3708drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3716drivers/block/ide-tape.cif (tape->chrdev_direction != idetape_direction_write) {  /* Initialize write operation */
tape3717drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_read)
tape3726drivers/block/ide-tape.cretval=idetape_queue_rw_tail (drive,IDETAPE_WRITE_REQUEST,0,tape->merge_buffer);
tape3730drivers/block/ide-tape.ctape->chrdev_direction=idetape_direction_write;
tape3736drivers/block/ide-tape.cif (tape->merge_buffer_size) {
tape3738drivers/block/ide-tape.cif (tape->merge_buffer_size >= tape->data_buffer_size) {
tape3740drivers/block/ide-tape.ctape->merge_buffer_size=0;
tape3744drivers/block/ide-tape.cactually_written=IDETAPE_MIN (tape->data_buffer_size-tape->merge_buffer_size,count);
tape3745drivers/block/ide-tape.cmemcpy_fromfs (tape->merge_buffer+tape->merge_buffer_size,buf_ptr,actually_written);
tape3746drivers/block/ide-tape.cbuf_ptr+=actually_written;tape->merge_buffer_size+=actually_written;count-=actually_written;
tape3748drivers/block/ide-tape.cif (tape->merge_buffer_size == tape->data_buffer_size) {
tape3749drivers/block/ide-tape.ctape->merge_buffer_size=0;
tape3750drivers/block/ide-tape.cretval=idetape_add_chrdev_write_request (drive,tape->capabilities.ctl,tape->merge_buffer);
tape3756drivers/block/ide-tape.cwhile (count >= tape->data_buffer_size) {
tape3757drivers/block/ide-tape.cmemcpy_fromfs (tape->merge_buffer,buf_ptr,tape->data_buffer_size);
tape3758drivers/block/ide-tape.cbuf_ptr+=tape->data_buffer_size;count-=tape->data_buffer_size;
tape3759drivers/block/ide-tape.cretval=idetape_add_chrdev_write_request (drive,tape->capabilities.ctl,tape->merge_buffer);
tape3760drivers/block/ide-tape.cactually_written+=tape->data_buffer_size;
tape3767drivers/block/ide-tape.cmemcpy_fromfs (tape->merge_buffer,buf_ptr,count);
tape3768drivers/block/ide-tape.ctape->merge_buffer_size+=count;
tape3808drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3819drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_write) {
tape3824drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_read && cmd != MTIOCTOP)
tape3838drivers/block/ide-tape.cmtget.mt_dsreg=(tape->data_buffer_size << MT_ST_BLKSIZE_SHIFT) & MT_ST_BLKSIZE_MASK;
tape3847drivers/block/ide-tape.cmtpos.mt_blkno=tape->block_address;
tape3913drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3945drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_read)
tape3995drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4000drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_read) {
tape4007drivers/block/ide-tape.ctape->merge_buffer_size=tape->merge_buffer_offset=0;
tape4008drivers/block/ide-tape.cwhile (tape->first_stage != NULL) {
tape4016drivers/block/ide-tape.cif (tape->active_data_request == &(tape->first_stage->rq))
tape4017drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape4020drivers/block/ide-tape.cerrors=tape->first_stage->rq.errors;
tape4051drivers/block/ide-tape.cif (!tape->capabilities.sprev)
tape4057drivers/block/ide-tape.cif (!tape->capabilities.sprev)
tape4062drivers/block/ide-tape.cif (!tape->capabilities.sprev)
tape4081drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4096drivers/block/ide-tape.cif (tape->busy) {
tape4101drivers/block/ide-tape.ctape->busy=1;
tape4104drivers/block/ide-tape.callocation_length=tape->data_buffer_size;
tape4105drivers/block/ide-tape.cif (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK)
tape4109drivers/block/ide-tape.cif (tape->data_buffer == NULL)
tape4110drivers/block/ide-tape.ctape->data_buffer=kmalloc (allocation_length,GFP_KERNEL);
tape4111drivers/block/ide-tape.cif (tape->data_buffer == NULL)
tape4113drivers/block/ide-tape.cif (tape->merge_buffer == NULL)
tape4114drivers/block/ide-tape.ctape->merge_buffer=kmalloc (allocation_length,GFP_KERNEL);
tape4115drivers/block/ide-tape.cif (tape->merge_buffer == NULL) {
tape4116drivers/block/ide-tape.ckfree (tape->data_buffer);
tape4119drivers/block/ide-tape.ctape->busy=0;
tape4124drivers/block/ide-tape.cif (!tape->block_address_valid) {
tape4127drivers/block/ide-tape.ctape->busy=0;
tape4143drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4152drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_write) {
tape4159drivers/block/ide-tape.cif (tape->chrdev_direction == idetape_direction_read) {
tape4171drivers/block/ide-tape.ckfree (tape->data_buffer);
tape4172drivers/block/ide-tape.ctape->data_buffer=NULL;
tape4173drivers/block/ide-tape.cif (!tape->merge_buffer_size) {
tape4174drivers/block/ide-tape.ckfree (tape->merge_buffer);
tape4175drivers/block/ide-tape.ctape->merge_buffer=NULL;
tape4180drivers/block/ide-tape.ctape->busy=0;
tape4269drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4278drivers/block/ide-tape.cif (tape->current_number_of_stages>=tape->max_number_of_stages) {
tape4288drivers/block/ide-tape.cbuffers_num=tape->data_buffer_size / IDETAPE_ALLOCATION_BLOCK;
tape4289drivers/block/ide-tape.cif (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK)
tape4441drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4447drivers/block/ide-tape.ctape->max_number_of_stages+=IDETAPE_INCREASE_STAGES_RATE*
tape4450drivers/block/ide-tape.cif (tape->max_number_of_stages >= IDETAPE_MAX_PIPELINE_STAGES)
tape4451drivers/block/ide-tape.ctape->max_number_of_stages = IDETAPE_MAX_PIPELINE_STAGES;
tape4454drivers/block/ide-tape.cprintk ("Maximum number of stages: %d\n",tape->max_number_of_stages);
tape4469drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4476drivers/block/ide-tape.cstage->prev=tape->last_stage;
tape4477drivers/block/ide-tape.cif (tape->last_stage != NULL)
tape4478drivers/block/ide-tape.ctape->last_stage->next=stage;
tape4480drivers/block/ide-tape.ctape->first_stage=tape->next_stage=stage;
tape4481drivers/block/ide-tape.ctape->last_stage=stage;
tape4482drivers/block/ide-tape.cif (tape->next_stage == NULL)
tape4483drivers/block/ide-tape.ctape->next_stage=tape->last_stage;
tape4484drivers/block/ide-tape.ctape->current_number_of_stages++;
tape4496drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4503drivers/block/ide-tape.cif (tape->first_stage == NULL) {
tape4507drivers/block/ide-tape.cif (tape->active_stage == tape->first_stage) {
tape4512drivers/block/ide-tape.cstage=tape->first_stage;
tape4513drivers/block/ide-tape.ctape->first_stage=stage->next;
tape4515drivers/block/ide-tape.ctape->current_number_of_stages--;
tape4516drivers/block/ide-tape.cif (tape->first_stage == NULL) {
tape4517drivers/block/ide-tape.ctape->last_stage=NULL;
tape4519drivers/block/ide-tape.cif (tape->next_stage != NULL)
tape4521drivers/block/ide-tape.cif (tape->current_number_of_stages)
tape4535drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4537drivers/block/ide-tape.cif (tape->next_stage == NULL)
tape4540drivers/block/ide-tape.cif (tape->active_data_request == NULL) {
tape4542drivers/block/ide-tape.c(void) (ide_do_drive_cmd (drive,tape->active_data_request,ide_end));
tape4554drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape4555drivers/block/ide-tape.cidetape_pipeline_stage_t *stage=tape->next_stage;
tape4568drivers/block/ide-tape.cidetape_copy_buffer_from_stage (stage,tape->data_buffer);
tape4570drivers/block/ide-tape.crq->buffer=tape->data_buffer;
tape4571drivers/block/ide-tape.ctape->active_data_request=rq;
tape4572drivers/block/ide-tape.ctape->active_stage=stage;
tape4573drivers/block/ide-tape.ctape->next_stage=stage->next;
tape513drivers/block/ide-tape.hif (hwif->tape_drive->tape.request_status) {      \
tape515drivers/block/ide-tape.hhwif->tape_drive->tape.last_status=GET_STAT();    \
tape516drivers/block/ide-tape.hhwif->tape_drive->tape.request_status=0;    \
tape733drivers/block/ide.cdrive->tape.reset_issued=1;
tape337drivers/block/ide.hidetape_tape_t  tape;    /* for ide-tape.c */
tape193drivers/block/triton.csize = drive->tape.pc->request_transfer;