Lines Matching full:current
242 lsi_request *current; member
419 assert(!s->current); in lsi_soft_reset()
528 if (!s->current && !level && lsi_irq_on_rsl(s) && !(s->scntl1 & LSI_SCNTL1_CON)) { in lsi_update_irq()
630 if (!s->current || !s->current->dma_len) { in lsi_do_dma()
636 dev = s->current->req->dev; in lsi_do_dma()
640 if (count > s->current->dma_len) in lsi_do_dma()
641 count = s->current->dma_len; in lsi_do_dma()
656 if (s->current->dma_buf == NULL) { in lsi_do_dma()
657 s->current->dma_buf = scsi_req_get_buf(s->current->req); in lsi_do_dma()
661 lsi_mem_read(s, addr, s->current->dma_buf, count); in lsi_do_dma()
663 lsi_mem_write(s, addr, s->current->dma_buf, count); in lsi_do_dma()
665 s->current->dma_len -= count; in lsi_do_dma()
666 if (s->current->dma_len == 0) { in lsi_do_dma()
667 s->current->dma_buf = NULL; in lsi_do_dma()
668 scsi_req_continue(s->current->req); in lsi_do_dma()
670 s->current->dma_buf += count; in lsi_do_dma()
679 lsi_request *p = s->current; in lsi_queue_command()
682 assert(s->current != NULL); in lsi_queue_command()
683 assert(s->current->dma_len == 0); in lsi_queue_command()
684 QTAILQ_INSERT_TAIL(&s->queue, s->current, next); in lsi_queue_command()
685 s->current = NULL; in lsi_queue_command()
707 assert(s->current == NULL); in lsi_reselect()
709 s->current = p; in lsi_reselect()
721 s->current->dma_len = p->pending; in lsi_reselect()
723 if (s->current->tag & LSI_TAG_VALID) { in lsi_reselect()
748 if (p == s->current) { in lsi_request_free()
749 s->current = NULL; in lsi_request_free()
814 if (req->hba_private == s->current) { in lsi_command_complete()
816 lsi_request_free(s, s->current); in lsi_command_complete()
831 if (s->waiting == LSI_WAIT_RESELECT || req->hba_private != s->current || in lsi_transfer_data()
842 s->current->dma_len = len; in lsi_transfer_data()
874 assert(s->current == NULL); in lsi_do_command()
875 s->current = g_new0(lsi_request, 1); in lsi_do_command()
876 s->current->tag = s->select_tag; in lsi_do_command()
877 s->current->req = scsi_req_new(dev, s->current->tag, s->current_lun, buf, in lsi_do_command()
878 s->dbc, s->current); in lsi_do_command()
880 n = scsi_req_enqueue(s->current->req); in lsi_do_command()
887 scsi_req_continue(s->current->req); in lsi_do_command()
987 if (s->current) { in lsi_do_msgout()
988 current_tag = s->current->tag; in lsi_do_msgout()
989 current_req = s->current; in lsi_do_msgout()
1045 /* The ABORT TAG message clears the current I/O process only. */ in lsi_do_msgout()
1072 /* clear the current I/O process */ in lsi_do_msgout()
1073 if (s->current) { in lsi_do_msgout()
1074 scsi_req_cancel(s->current->req); in lsi_do_msgout()
1078 /* As the current implemented devices scsi_disk and scsi_generic in lsi_do_msgout()
1084 commands for the current device: */ in lsi_do_msgout()
1134 if (s->current) { in lsi_wait_reselect()
1141 if (s->current == NULL) { in lsi_wait_reselect()
1369 if (!s->current) { in lsi_execute_script()
2205 if (s->current) { in lsi_pre_save()
2206 assert(s->current->dma_buf == NULL); in lsi_pre_save()
2207 assert(s->current->dma_len == 0); in lsi_pre_save()