taglinefilesource code
tape1101drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1112drivers/block/ide-tape.ctape->block_address=0;      
tape1113drivers/block/ide-tape.ctape->block_address_valid=0;
tape1114drivers/block/ide-tape.ctape->pc_stack_index=0;
tape1115drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1116drivers/block/ide-tape.ctape->postponed_rq=NULL;
tape1117drivers/block/ide-tape.ctape->busy=0;
tape1118drivers/block/ide-tape.ctape->active_data_request=NULL;
tape1119drivers/block/ide-tape.ctape->current_number_of_stages=0;
tape1120drivers/block/ide-tape.ctape->first_stage=tape->last_stage=NULL;
tape1121drivers/block/ide-tape.ctape->pipeline_was_full_once=0;
tape1122drivers/block/ide-tape.ctape->error_in_pipeline_stage=0;
tape1123drivers/block/ide-tape.ctape->pipeline_locked=0;
tape1125drivers/block/ide-tape.ctape->request_status=0;
tape1126drivers/block/ide-tape.ctape->request_dsc_callback=0;
tape1129drivers/block/ide-tape.ctape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES;
tape1132drivers/block/ide-tape.ctape->max_number_of_stages=0;
tape1139drivers/block/ide-tape.ctape->data_buffer_size=tape->capabilities.ctl*tape->tape_block_size;
tape1141drivers/block/ide-tape.callocation_length=tape->data_buffer_size;
tape1142drivers/block/ide-tape.cif (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK)
tape1145drivers/block/ide-tape.ctape->data_buffer=kmalloc (allocation_length,GFP_KERNEL);
tape1146drivers/block/ide-tape.ctape->temp_data_buffer=kmalloc (allocation_length,GFP_KERNEL);
tape1147drivers/block/ide-tape.cif (tape->data_buffer == NULL || tape->temp_data_buffer == NULL) {
tape1155drivers/block/ide-tape.cprintk ("ide-tape: Tape speed - %d KBps. Recommended transfer unit - %d bytes.\n",tape->capabilities.speed,tape->data_buffer_size);
tape1170drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1189drivers/block/ide-tape.ctape->capabilities=*capabilities;    /* Save us a copy */
tape1190drivers/block/ide-tape.ctape->tape_block_size=capabilities->blk512 ? 512:1024;
tape1195drivers/block/ide-tape.ctape->tape_block_size=512;
tape1196drivers/block/ide-tape.ctape->capabilities.ctl=26*1024;
tape1277drivers/block/ide-tape.cidetape_tape_t *tape;
tape1281drivers/block/ide-tape.ctape=&(drive->tape);
tape1284drivers/block/ide-tape.cif (tape->pc->c[0] == IDETAPE_REQUEST_SENSE_CMD && pc->c[0] == IDETAPE_REQUEST_SENSE_CMD) {
tape1290drivers/block/ide-tape.cif (tape->failed_pc == NULL && pc->c[0] != IDETAPE_REQUEST_SENSE_CMD)
tape1291drivers/block/ide-tape.ctape->failed_pc=pc;
tape1292drivers/block/ide-tape.ctape->pc=pc;              /* Set the current packet command */
tape1296drivers/block/ide-tape.cprintk ("pc = %x, key = %x, asc = %x, ascq = %x\n",pc->c[0],tape->sense_key,tape->asc,tape->ascq);
tape1300drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1369drivers/block/ide-tape.cidetape_tape_t *tape;
tape1377drivers/block/ide-tape.ctape=&(drive->tape);
tape1385drivers/block/ide-tape.cpc=tape->pc;            /* Current packet command */
tape1405drivers/block/ide-tape.ctape->dsc_polling_frequency=IDETAPE_DSC_FAST_MEDIA_ACCESS_FREQUENCY;
tape1410drivers/block/ide-tape.cif (tape->failed_pc == pc)
tape1411drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1485drivers/block/ide-tape.cidetape_tape_t *tape;
tape1490drivers/block/ide-tape.ctape=&(drive->tape);
tape1497drivers/block/ide-tape.cif (tape->postponed_rq != NULL)
tape1501drivers/block/ide-tape.ctape->dsc_timer.expires=jiffies + tape->dsc_polling_frequency;  /* Set timer to poll for */
tape1502drivers/block/ide-tape.ctape->dsc_timeout=jiffies+IDETAPE_DSC_TIMEOUT;      /* actual completion */
tape1503drivers/block/ide-tape.ctape->dsc_timer.data=(unsigned long) drive;
tape1504drivers/block/ide-tape.ctape->dsc_timer.function=&idetape_poll_for_dsc;
tape1505drivers/block/ide-tape.cinit_timer (&(tape->dsc_timer));
tape1511drivers/block/ide-tape.ctape->postponed_rq = rq = HWGROUP(drive)->rq;
tape1518drivers/block/ide-tape.ctape->request_status=0;
tape1519drivers/block/ide-tape.ctape->request_dsc_callback=0;
tape1520drivers/block/ide-tape.ctape->last_status=status.all;
tape1522drivers/block/ide-tape.ctape->dsc_polling_start=jiffies;
tape1523drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));    /* Activate the polling timer */
tape1537drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1553drivers/block/ide-tape.ctape->dsc_received=1;
tape1554drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));      /* Stop polling and put back the postponed */
tape1559drivers/block/ide-tape.cif (jiffies > tape->dsc_timeout)   { /* Timeout */
tape1560drivers/block/ide-tape.ctape->dsc_received=0;
tape1561drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1569drivers/block/ide-tape.cif (jiffies - tape->dsc_polling_start > IDETAPE_FAST_SLOW_THRESHOLD)
tape1570drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + IDETAPE_DSC_SLOW_MEDIA_ACCESS_FREQUENCY;
tape1572drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency;
tape1573drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));
tape1600drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1632drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency/2;
tape1633drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));
tape1648drivers/block/ide-tape.cstatus.all=tape->last_status;
tape1651drivers/block/ide-tape.ctape->dsc_received=1;
tape1652drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));      /* Stop polling and request ide.c to call */
tape1653drivers/block/ide-tape.ctape->request_dsc_callback=1;      /* our idetape_put_back_postponed_request later */
tape1658drivers/block/ide-tape.cif (jiffies > tape->dsc_timeout)   {     /* Timeout */
tape1659drivers/block/ide-tape.ctape->dsc_received=1;
tape1660drivers/block/ide-tape.cdel_timer (&(tape->dsc_timer));
tape1662drivers/block/ide-tape.ctape->request_dsc_callback=1;
tape1672drivers/block/ide-tape.ctape->request_status=1;
tape1677drivers/block/ide-tape.cif (jiffies - tape->dsc_polling_start > IDETAPE_FAST_SLOW_THRESHOLD)
tape1678drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + IDETAPE_DSC_SLOW_MEDIA_ACCESS_FREQUENCY;
tape1680drivers/block/ide-tape.ctape->dsc_timer.expires = jiffies + tape->dsc_polling_frequency;
tape1681drivers/block/ide-tape.cadd_timer(&(tape->dsc_timer));
tape1694drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape1700drivers/block/ide-tape.c(void) ide_do_drive_cmd (drive, tape->postponed_rq, ide_next);
tape1717drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape1721drivers/block/ide-tape.cpc=tape->pc;
tape1725drivers/block/ide-tape.cif (tape->dsc_received) {
tape1736drivers/block/ide-tape.cif (tape->failed_pc == pc)
tape1737drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1752drivers/block/ide-tape.ctape->failed_pc=NULL;
tape1794drivers/block/ide-tape.cidetape_tape_t *tape;
tape1797drivers/block/ide-tape.ctape=&(drive->tape);
tape1803drivers/block/ide-tape.cif (!tape->pc->error) {
tape1820drivers/block/ide-tape.cidetape_tape_t *tape;
tape1823drivers/block/ide-tape.ctape=&(drive->tape);  
tape1828drivers/block/ide-tape.ctape->block_address+=tape->pc->actually_transferred/tape->tape_block_size;
tape1829drivers/block/ide-tape.cif (!tape->pc->error) {
tape1848drivers/block/ide-tape.cidetape_tape_t *tape;
tape1851drivers/block/ide-tape.ctape=&(drive->tape);
tape1856drivers/block/ide-tape.ctape->block_address+=tape->pc->actually_transferred/tape->tape_block_size;
tape1857drivers/block/ide-tape.cif (!tape->pc->error) {
tape1876drivers/block/ide-tape.cidetape_tape_t *tape;
tape1878drivers/block/ide-tape.ctape=&(drive->tape);
tape1880drivers/block/ide-tape.cidetape_display_inquiry_result (tape->pc->buffer);
tape2066drivers/block/ide-tape.cidetape_tape_t *tape;
tape2069drivers/block/ide-tape.ctape=&(drive->tape);  
tape2075drivers/block/ide-tape.cif (!tape->pc->error) {
tape2079drivers/block/ide-tape.cidetape_analyze_error (drive,(idetape_request_sense_result_t *) tape->pc->buffer);
tape2098drivers/block/ide-tape.cidetape_tape_t *tape;
tape2100drivers/block/ide-tape.ctape=&(drive->tape);
tape2101drivers/block/ide-tape.ctape->sense_key=result->sense_key;
tape2102drivers/block/ide-tape.ctape->asc=result->asc;
tape2103drivers/block/ide-tape.ctape->ascq=result->ascq;
tape2375drivers/block/ide-tape.cidetape_tape_t *tape;
tape2379drivers/block/ide-tape.ctape=&(drive->tape);
tape2387drivers/block/ide-tape.cif (!tape->pc->error) {
tape2388drivers/block/ide-tape.cresult=(idetape_read_position_result_t *) tape->pc->buffer;
tape2398drivers/block/ide-tape.ctape->block_address_valid=0;
tape2405drivers/block/ide-tape.ctape->block_address=idetape_swap_long (result->first_block);
tape2406drivers/block/ide-tape.ctape->block_address_valid=1;
tape2488drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape2493drivers/block/ide-tape.cif (tape->active_data_request == rq) {    /* The request was a data transfer request */
tape2495drivers/block/ide-tape.cif (!tape->max_number_of_stages)
tape2498drivers/block/ide-tape.cprintk ("Requests in pipeline: %d\n",tape->current_number_of_stages);
tape2501drivers/block/ide-tape.ctape->error_in_pipeline_stage=1;
tape2512drivers/block/ide-tape.ctape->pipeline_locked=1;
tape2513drivers/block/ide-tape.ctape->active_data_request = NULL;
tape2514drivers/block/ide-tape.cif (tape->first_stage == NULL) {
tape2515drivers/block/ide-tape.ctape->pipeline_locked=0;
tape2520drivers/block/ide-tape.ctape->pipeline_locked=0;
tape2533drivers/block/ide-tape.cide_do_drive_cmd (drive,tape->active_data_request,ide_end);
tape2545drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape2574drivers/block/ide-tape.cif (tape->failed_pc != NULL && tape->pc->c[0] == IDETAPE_REQUEST_SENSE_CMD) {
tape2575drivers/block/ide-tape.cidetape_issue_packet_command (drive,tape->failed_pc,&idetape_pc_intr);
tape2581drivers/block/ide-tape.cif (tape->postponed_rq != NULL) {
tape2583drivers/block/ide-tape.cif (tape->postponed_rq->rq_status != RQ_ACTIVE || rq != tape->postponed_rq) {
tape2593drivers/block/ide-tape.ctape->postponed_rq = NULL;
tape2604drivers/block/ide-tape.ctape->postponed_rq = NULL;
tape2617drivers/block/ide-tape.ctape->dsc_polling_frequency=IDETAPE_DSC_READ_WRITE_FREQUENCY;
tape2627drivers/block/ide-tape.cpc->buffer_size=rq->current_nr_sectors*tape->tape_block_size;
tape2629drivers/block/ide-tape.cpc->request_transfer=rq->current_nr_sectors*tape->tape_block_size;
tape2644drivers/block/ide-tape.ctape->dsc_polling_frequency=IDETAPE_DSC_READ_WRITE_FREQUENCY;
tape2654drivers/block/ide-tape.cpc->buffer_size=rq->current_nr_sectors*tape->tape_block_size;
tape2656drivers/block/ide-tape.cpc->request_transfer=rq->current_nr_sectors*tape->tape_block_size;
tape2675drivers/block/ide-tape.ctape->dsc_polling_frequency=IDETAPE_DSC_READ_WRITE_FREQUENCY;
tape2777drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape2788drivers/block/ide-tape.crq.sector = tape->block_address;
tape2791drivers/block/ide-tape.ctape->active_data_request=NULL;  /* Non-pipelined mode */
tape2813drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape2822drivers/block/ide-tape.cif (tape->error_in_pipeline_stage)    /* Return a deferred error */
tape2841drivers/block/ide-tape.cwhile (tape->pipeline_locked);
tape2843drivers/block/ide-tape.cif (tape->first_stage != NULL) {
tape2844drivers/block/ide-tape.cidetape_wait_for_request (&(tape->first_stage->rq));
tape2857drivers/block/ide-tape.cif (tape->active_data_request != NULL)
tape2858drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape2867drivers/block/ide-tape.crq->sector = tape->block_address;  /* Doesn't actually matter - We always assume sequential access */
tape2880drivers/block/ide-tape.cidetape_tape_t *tape = &(drive->tape);
tape2882drivers/block/ide-tape.ctape->pipeline_was_full_once=0;
tape2884drivers/block/ide-tape.cwhile (tape->pipeline_locked);
tape2886drivers/block/ide-tape.cif (tape->active_data_request == NULL)
tape2889drivers/block/ide-tape.cif (tape->last_stage != NULL)
tape2890drivers/block/ide-tape.cidetape_wait_for_request (&(tape->last_stage->rq));
tape2892drivers/block/ide-tape.celse if (tape->active_data_request != NULL)
tape2893drivers/block/ide-tape.cidetape_wait_for_request (tape->active_data_request);
tape2895drivers/block/ide-tape.ctape->error_in_pipeline_stage=0;
tape2905drivers/block/ide-tape.ctape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES;
tape2907drivers/block/ide-tape.ctape->max_number_of_stages=0;
tape2911drivers/block/ide-tape.cif (tape->first_stage != NULL || tape->last_stage != NULL || tape->current_number_of_stages != 0) {
tape2991drivers/block/ide-tape.cidetape_tape_t *tape;
tape2993drivers/block/ide-tape.ctape=&(drive->tape);
tape2995drivers/block/ide-tape.cprintk ("ide-tape: pc_stack_index=%d\n",tape->pc_stack_index);
tape2997drivers/block/ide-tape.cif (tape->pc_stack_index==IDETAPE_PC_STACK)
tape2998drivers/block/ide-tape.ctape->pc_stack_index=0;
tape2999drivers/block/ide-tape.creturn (&(tape->pc_stack [tape->pc_stack_index++]));
tape3018drivers/block/ide-tape.cidetape_tape_t *tape;
tape3020drivers/block/ide-tape.ctape=&(drive->tape);
tape3023drivers/block/ide-tape.cprintk ("ide-tape: rq_stack_index=%d\n",tape->rq_stack_index);
tape3025drivers/block/ide-tape.cif (tape->rq_stack_index==IDETAPE_PC_STACK)
tape3026drivers/block/ide-tape.ctape->rq_stack_index=0;
tape3027drivers/block/ide-tape.creturn (&(tape->rq_stack [tape->rq_stack_index++]));
tape3041drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3050drivers/block/ide-tape.cif (tape->busy) {
tape3055drivers/block/ide-tape.ctape->busy=1;
tape3064drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3072drivers/block/ide-tape.ctape->busy=0;
tape3135drivers/block/ide-tape.cidetape_tape_t *tape;
tape3145drivers/block/ide-tape.ctape=&(drive->tape);
tape3146drivers/block/ide-tape.ctape->last_dt_was_write=0;
tape3153drivers/block/ide-tape.cctl_bytes=tape->capabilities.ctl*tape->tape_block_size;
tape3161drivers/block/ide-tape.cprevious_block_address=tape->block_address;
tape3162drivers/block/ide-tape.cretval=idetape_queue_rw_tail (drive,IDETAPE_READ_REQUEST,tape->capabilities.ctl,tape->data_buffer);
tape3163drivers/block/ide-tape.cactually_read+=tape->tape_block_size*(tape->block_address-previous_block_address);
tape3173drivers/block/ide-tape.cmemcpy_tofs (buf_ptr,tape->data_buffer,ctl_bytes);
tape3187drivers/block/ide-tape.cidetape_tape_t *tape;
tape3196drivers/block/ide-tape.ctape=&(drive->tape);
tape3198drivers/block/ide-tape.ctape->last_dt_was_write=0;
tape3203drivers/block/ide-tape.cblocks=count/tape->tape_block_size;
tape3204drivers/block/ide-tape.cremainder=count%tape->tape_block_size;
tape3214drivers/block/ide-tape.cprevious_block_address=tape->block_address;
tape3215drivers/block/ide-tape.cretval=idetape_queue_rw_tail (drive,IDETAPE_READ_REQUEST,blocks,tape->data_buffer);
tape3218drivers/block/ide-tape.cactually_read=tape->tape_block_size*(tape->block_address-previous_block_address);
tape3222drivers/block/ide-tape.cmemcpy_tofs (buf,tape->data_buffer,actually_read);
tape3228drivers/block/ide-tape.cmemcpy_tofs (buf,tape->data_buffer,count);
tape3236drivers/block/ide-tape.cidetape_tape_t *tape;
tape3246drivers/block/ide-tape.ctape=&(drive->tape);
tape3248drivers/block/ide-tape.ctape->last_dt_was_write=1;
tape3255drivers/block/ide-tape.cblocks=count/tape->data_buffer_size;
tape3256drivers/block/ide-tape.cremainder=count%tape->data_buffer_size;
tape3259drivers/block/ide-tape.cmemcpy_fromfs (tape->temp_data_buffer,buf_ptr,tape->data_buffer_size);
tape3260drivers/block/ide-tape.cbuf_ptr+=tape->data_buffer_size;
tape3261drivers/block/ide-tape.cprevious_block_address=tape->block_address;
tape3262drivers/block/ide-tape.cretval=idetape_add_chrdev_write_request (drive,IDETAPE_WRITE_REQUEST,tape->capabilities.ctl,tape->temp_data_buffer);
tape3263drivers/block/ide-tape.cif (tape->max_number_of_stages)
tape3264drivers/block/ide-tape.cactually_written+=tape->data_buffer_size;  /* Pipelined mode - Cheat :-) */
tape3266drivers/block/ide-tape.cactually_written+=tape->tape_block_size*(tape->block_address-previous_block_address);
tape3270drivers/block/ide-tape.cif (tape->max_number_of_stages)
tape3287drivers/block/ide-tape.cidetape_tape_t *tape;
tape3297drivers/block/ide-tape.ctape=&(drive->tape);
tape3299drivers/block/ide-tape.cblocks=count/tape->tape_block_size;
tape3300drivers/block/ide-tape.cremainder=count%tape->tape_block_size;
tape3307drivers/block/ide-tape.cmemcpy_fromfs (tape->temp_data_buffer,buf,count);
tape3312drivers/block/ide-tape.cptr=tape->temp_data_buffer+(blocks-1)*tape->tape_block_size;
tape3319drivers/block/ide-tape.cprevious_block_address=tape->block_address;
tape3320drivers/block/ide-tape.cretval=idetape_add_chrdev_write_request (drive,IDETAPE_WRITE_REQUEST,blocks,tape->temp_data_buffer);
tape3323drivers/block/ide-tape.cif (tape->max_number_of_stages)
tape3326drivers/block/ide-tape.cactually_written=tape->tape_block_size*(tape->block_address-previous_block_address);
tape3494drivers/block/ide-tape.cidetape_tape_t *tape;
tape3506drivers/block/ide-tape.ctape=&(drive->tape);
tape3514drivers/block/ide-tape.cif (tape->busy) {
tape3519drivers/block/ide-tape.ctape->busy=1;
tape3522drivers/block/ide-tape.cif (!tape->block_address_valid) {
tape3525drivers/block/ide-tape.ctape->busy=0;
tape3530drivers/block/ide-tape.ctape->last_dt_was_write=0;
tape3543drivers/block/ide-tape.cidetape_tape_t *tape;
tape3554drivers/block/ide-tape.ctape=&(drive->tape);
tape3559drivers/block/ide-tape.cif (tape->last_dt_was_write) {
tape3582drivers/block/ide-tape.ctape->busy=0;
tape3666drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3675drivers/block/ide-tape.cif (tape->current_number_of_stages==tape->max_number_of_stages) {
tape3676drivers/block/ide-tape.ctape->pipeline_was_full_once=1;
tape3686drivers/block/ide-tape.cbuffers_num=tape->data_buffer_size / IDETAPE_ALLOCATION_BLOCK;
tape3687drivers/block/ide-tape.cif (tape->data_buffer_size % IDETAPE_ALLOCATION_BLOCK)
tape3815drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3821drivers/block/ide-tape.cif (!tape->pipeline_was_full_once)
tape3824drivers/block/ide-tape.ctape->max_number_of_stages+=IDETAPE_INCREASE_STAGES_RATE*
tape3827drivers/block/ide-tape.cif (tape->max_number_of_stages >= IDETAPE_MAX_PIPELINE_STAGES)
tape3828drivers/block/ide-tape.ctape->max_number_of_stages = IDETAPE_MAX_PIPELINE_STAGES;
tape3831drivers/block/ide-tape.cprintk ("Maximum number of stages: %d\n",tape->max_number_of_stages);
tape3844drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3863drivers/block/ide-tape.cwhile (tape->pipeline_locked);
tape3866drivers/block/ide-tape.cstage->prev=tape->last_stage;
tape3867drivers/block/ide-tape.cif (tape->first_stage != NULL)
tape3868drivers/block/ide-tape.ctape->last_stage->next=stage;
tape3870drivers/block/ide-tape.ctape->first_stage=stage;
tape3871drivers/block/ide-tape.ctape->last_stage=stage;
tape3872drivers/block/ide-tape.ctape->current_number_of_stages++;
tape3883drivers/block/ide-tape.cif (tape->active_data_request == NULL &&
tape3884drivers/block/ide-tape.ctape->current_number_of_stages >= 0.75*tape->max_number_of_stages) {
tape3901drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3903drivers/block/ide-tape.cif (tape->first_stage == NULL)
tape3906drivers/block/ide-tape.cif (tape->active_data_request == NULL) {
tape3911drivers/block/ide-tape.c(void) (ide_do_drive_cmd (drive,tape->active_data_request,ide_end));
tape3925drivers/block/ide-tape.cidetape_tape_t *tape=&(drive->tape);
tape3932drivers/block/ide-tape.cif (tape->first_stage == NULL) {
tape3938drivers/block/ide-tape.cstage=tape->first_stage;
tape3940drivers/block/ide-tape.cidetape_copy_buffer_from_stage (stage,tape->data_buffer);
tape3943drivers/block/ide-tape.crq->buffer=tape->data_buffer;
tape3946drivers/block/ide-tape.ctape->first_stage=stage->next;
tape3947drivers/block/ide-tape.cif (tape->first_stage == NULL)
tape3948drivers/block/ide-tape.ctape->last_stage=NULL;
tape3949drivers/block/ide-tape.ctape->current_number_of_stages--;
tape3950drivers/block/ide-tape.ctape->active_data_request=rq;
tape423drivers/block/ide-tape.hif (hwif->tape_drive->tape.request_status) {      \
tape425drivers/block/ide-tape.hhwif->tape_drive->tape.last_status=GET_STAT();    \
tape426drivers/block/ide-tape.hhwif->tape_drive->tape.request_status=0;    \
tape428drivers/block/ide-tape.hif (hwif->tape_drive->tape.request_dsc_callback) {    \
tape429drivers/block/ide-tape.hhwif->tape_drive->tape.request_dsc_callback=0;    \
tape315drivers/block/ide.hidetape_tape_t tape;