tag | line | file | source code |
current_SC | 172 | kernel/blk_drv/scsi/fdomain.c | static Scsi_Cmnd *current_SC = NULL; |
current_SC | 650 | kernel/blk_drv/scsi/fdomain.c | current_SC->result = error; |
current_SC | 651 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->scsi_done) current_SC->scsi_done( current_SC ); |
current_SC | 669 | kernel/blk_drv/scsi/fdomain.c | if (!in_command || !current_SC) { /* Spurious interrupt */ |
current_SC | 673 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & aborted) { |
current_SC | 675 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & (in_other || disconnect)) |
current_SC | 677 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase & in_other |
current_SC | 679 | kernel/blk_drv/scsi/fdomain.c | current_SC->result ); |
current_SC | 682 | kernel/blk_drv/scsi/fdomain.c | current_SC->result ); |
current_SC | 685 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & (in_other || disconnect)) { |
current_SC | 689 | kernel/blk_drv/scsi/fdomain.c | my_done( current_SC->result << 16 ); |
current_SC | 695 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & disconnect) { |
current_SC | 697 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase = in_other; |
current_SC | 706 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & in_arbitration) { |
current_SC | 715 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase = in_selection; |
current_SC | 719 | kernel/blk_drv/scsi/fdomain.c | outb( 0x40 | (1 << current_SC->target), SCSI_Data_NoACK_port ); |
current_SC | 731 | kernel/blk_drv/scsi/fdomain.c | } else if (current_SC->SCp.phase & in_selection) { |
current_SC | 735 | kernel/blk_drv/scsi/fdomain.c | if (fdomain_select( current_SC->target )) { |
current_SC | 749 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase = in_other; |
current_SC | 761 | kernel/blk_drv/scsi/fdomain.c | switch (current_SC->cmnd[0]) { |
current_SC | 768 | kernel/blk_drv/scsi/fdomain.c | if (data_count > current_SC->SCp.this_residual) |
current_SC | 769 | kernel/blk_drv/scsi/fdomain.c | data_count = current_SC->SCp.this_residual; |
current_SC | 775 | kernel/blk_drv/scsi/fdomain.c | outb( *current_SC->SCp.ptr++, Write_FIFO_port ); |
current_SC | 776 | kernel/blk_drv/scsi/fdomain.c | --current_SC->SCp.this_residual; |
current_SC | 779 | kernel/blk_drv/scsi/fdomain.c | outsw( current_SC->SCp.ptr, data_count, Write_FIFO_port ); |
current_SC | 780 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr += 2 * data_count; |
current_SC | 781 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual -= 2 * data_count; |
current_SC | 784 | kernel/blk_drv/scsi/fdomain.c | if (!current_SC->SCp.this_residual) { |
current_SC | 785 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.buffers_residual) { |
current_SC | 786 | kernel/blk_drv/scsi/fdomain.c | --current_SC->SCp.buffers_residual; |
current_SC | 787 | kernel/blk_drv/scsi/fdomain.c | ++current_SC->SCp.buffer; |
current_SC | 788 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr = current_SC->SCp.buffer->address; |
current_SC | 789 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual = current_SC->SCp.buffer->length; |
current_SC | 796 | kernel/blk_drv/scsi/fdomain.c | if (!current_SC->SCp.have_data_in) { |
current_SC | 798 | kernel/blk_drv/scsi/fdomain.c | ++current_SC->SCp.have_data_in; |
current_SC | 804 | kernel/blk_drv/scsi/fdomain.c | if (data_count > current_SC->SCp.this_residual) |
current_SC | 805 | kernel/blk_drv/scsi/fdomain.c | data_count = current_SC->SCp.this_residual; |
current_SC | 811 | kernel/blk_drv/scsi/fdomain.c | *current_SC->SCp.ptr++ = inb( Read_FIFO_port ); |
current_SC | 812 | kernel/blk_drv/scsi/fdomain.c | --current_SC->SCp.this_residual; |
current_SC | 815 | kernel/blk_drv/scsi/fdomain.c | insw( current_SC->SCp.ptr, data_count, Read_FIFO_port ); |
current_SC | 816 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr += 2 * data_count; |
current_SC | 817 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual -= 2 * data_count; |
current_SC | 820 | kernel/blk_drv/scsi/fdomain.c | if (!current_SC->SCp.this_residual && current_SC->SCp.buffers_residual) { |
current_SC | 821 | kernel/blk_drv/scsi/fdomain.c | --current_SC->SCp.buffers_residual; |
current_SC | 822 | kernel/blk_drv/scsi/fdomain.c | ++current_SC->SCp.buffer; |
current_SC | 823 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr = current_SC->SCp.buffer->address; |
current_SC | 824 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual = current_SC->SCp.buffer->length; |
current_SC | 838 | kernel/blk_drv/scsi/fdomain.c | if (!current_SC->SCp.sent_command) { |
current_SC | 841 | kernel/blk_drv/scsi/fdomain.c | ++current_SC->SCp.sent_command; |
current_SC | 843 | kernel/blk_drv/scsi/fdomain.c | for (i = 0; i < COMMAND_SIZE( current_SC->cmnd[0] ); i++) { |
current_SC | 844 | kernel/blk_drv/scsi/fdomain.c | outb( current_SC->cmnd[i], Write_SCSI_Data_port ); |
current_SC | 846 | kernel/blk_drv/scsi/fdomain.c | printk( "CMD = %x,", current_SC->cmnd[i] ); |
current_SC | 851 | kernel/blk_drv/scsi/fdomain.c | outb( current_SC->cmnd[current_SC->SCp.sent_command++], |
current_SC | 855 | kernel/blk_drv/scsi/fdomain.c | current_SC->cmnd[ current_SC->SCp.sent_command - 1] ); |
current_SC | 861 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.Status = inb( Read_SCSI_Data_port ); |
current_SC | 863 | kernel/blk_drv/scsi/fdomain.c | printk( "Status = %x, ", current_SC->SCp.Status ); |
current_SC | 866 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.Status && current_SC->SCp.Status != 2) { |
current_SC | 868 | kernel/blk_drv/scsi/fdomain.c | current_SC->target, current_SC->cmnd[0], current_SC->SCp.Status ); |
current_SC | 874 | kernel/blk_drv/scsi/fdomain.c | if (!(current_SC->SCp.phase & sent_ident)) { |
current_SC | 880 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase |= sent_ident; |
current_SC | 887 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.Message = inb( Read_SCSI_Data_port ); |
current_SC | 889 | kernel/blk_drv/scsi/fdomain.c | printk( "Message = %x, ", current_SC->SCp.Message ); |
current_SC | 891 | kernel/blk_drv/scsi/fdomain.c | if (!current_SC->SCp.Message) ++done; |
current_SC | 893 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.Message == DISCONNECT) { |
current_SC | 895 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase = disconnect; |
current_SC | 899 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.Message) { |
current_SC | 901 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.Message ); |
current_SC | 913 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.have_data_in) { |
current_SC | 915 | kernel/blk_drv/scsi/fdomain.c | if (data_count > current_SC->SCp.this_residual) |
current_SC | 916 | kernel/blk_drv/scsi/fdomain.c | data_count = current_SC->SCp.this_residual; |
current_SC | 923 | kernel/blk_drv/scsi/fdomain.c | *current_SC->SCp.ptr++ = inb( Read_FIFO_port ); |
current_SC | 924 | kernel/blk_drv/scsi/fdomain.c | --current_SC->SCp.this_residual; |
current_SC | 927 | kernel/blk_drv/scsi/fdomain.c | insw( current_SC->SCp.ptr, data_count, Read_FIFO_port ); |
current_SC | 928 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual -= 2 * data_count; |
current_SC | 932 | kernel/blk_drv/scsi/fdomain.c | if (!current_SC->SCp.this_residual |
current_SC | 933 | kernel/blk_drv/scsi/fdomain.c | && current_SC->SCp.buffers_residual) { |
current_SC | 935 | kernel/blk_drv/scsi/fdomain.c | --current_SC->SCp.buffers_residual; |
current_SC | 936 | kernel/blk_drv/scsi/fdomain.c | ++current_SC->SCp.buffer; |
current_SC | 937 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr = current_SC->SCp.buffer->address; |
current_SC | 938 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual = current_SC->SCp.buffer->length; |
current_SC | 947 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->cmnd[0] == REQUEST_SENSE && !current_SC->SCp.Status) { |
current_SC | 948 | kernel/blk_drv/scsi/fdomain.c | if ((unsigned char)(*((char *)current_SC->request_buffer + 2)) & 0x0f) { |
current_SC | 952 | kernel/blk_drv/scsi/fdomain.c | key = (unsigned char)(*((char *)current_SC->request_buffer + 2)) & 0x0f; |
current_SC | 953 | kernel/blk_drv/scsi/fdomain.c | code = (unsigned char)(*((char *)current_SC->request_buffer + 12)); |
current_SC | 966 | kernel/blk_drv/scsi/fdomain.c | my_done( (current_SC->SCp.Status & 0xff) | ((current_SC->SCp.Message & 0xff) << 8) | (DID_OK << 16) ); |
current_SC | 972 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & disconnect) { |
current_SC | 998 | kernel/blk_drv/scsi/fdomain.c | current_SC = SCpnt; /* Save this for the done function */ |
current_SC | 999 | kernel/blk_drv/scsi/fdomain.c | current_SC->scsi_done = done; |
current_SC | 1003 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->use_sg) { |
current_SC | 1004 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.buffer = |
current_SC | 1005 | kernel/blk_drv/scsi/fdomain.c | (struct scatterlist *)current_SC->request_buffer; |
current_SC | 1006 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr = current_SC->SCp.buffer->address; |
current_SC | 1007 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual = current_SC->SCp.buffer->length; |
current_SC | 1008 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.buffers_residual = current_SC->use_sg - 1; |
current_SC | 1010 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.ptr = current_SC->request_buffer; |
current_SC | 1011 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.this_residual = current_SC->request_bufflen; |
current_SC | 1012 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.buffer = NULL; |
current_SC | 1013 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.buffers_residual = 0; |
current_SC | 1017 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.Status = 0; |
current_SC | 1018 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.Message = 0; |
current_SC | 1019 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.have_data_in = 0; |
current_SC | 1020 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.sent_command = 0; |
current_SC | 1021 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase = in_arbitration; |
current_SC | 1052 | kernel/blk_drv/scsi/fdomain.c | current_SC = SCpnt; |
current_SC | 1075 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase = non_queueing; |
current_SC | 1100 | kernel/blk_drv/scsi/fdomain.c | && !done && !(current_SC->SCp.phase & aborted) |
current_SC | 1180 | kernel/blk_drv/scsi/fdomain.c | if (current_SC->SCp.phase & aborted) { |
current_SC | 1232 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase, |
current_SC | 1233 | kernel/blk_drv/scsi/fdomain.c | current_SC->target, |
current_SC | 1234 | kernel/blk_drv/scsi/fdomain.c | *(unsigned char *)current_SC->cmnd, |
current_SC | 1235 | kernel/blk_drv/scsi/fdomain.c | current_SC->use_sg, |
current_SC | 1236 | kernel/blk_drv/scsi/fdomain.c | current_SC->request_bufflen ); |
current_SC | 1263 | kernel/blk_drv/scsi/fdomain.c | current_SC->SCp.phase |= aborted; |
current_SC | 1265 | kernel/blk_drv/scsi/fdomain.c | current_SC->result = code ? code : DID_ABORT; |