tag | line | file | source code |
scpnt | 575 | drivers/scsi/buslogic.c | int buslogic_queuecommand(Scsi_Cmnd *scpnt, void (*done)(Scsi_Cmnd *)) |
scpnt | 579 | drivers/scsi/buslogic.c | unsigned char *cmd = (unsigned char *)scpnt->cmnd; |
scpnt | 580 | drivers/scsi/buslogic.c | unsigned char target = scpnt->target; |
scpnt | 581 | drivers/scsi/buslogic.c | unsigned char lun = scpnt->lun; |
scpnt | 582 | drivers/scsi/buslogic.c | void *buff = scpnt->request_buffer; |
scpnt | 583 | drivers/scsi/buslogic.c | int bufflen = scpnt->request_bufflen; |
scpnt | 586 | drivers/scsi/buslogic.c | struct Scsi_Host *shpnt = scpnt->host; |
scpnt | 593 | drivers/scsi/buslogic.c | scpnt->result = DID_TIME_OUT << 16; |
scpnt | 594 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 601 | drivers/scsi/buslogic.c | if (bufflen != sizeof scpnt->sense_buffer) { |
scpnt | 607 | drivers/scsi/buslogic.c | scpnt->result = 0; |
scpnt | 608 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 625 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->cmd_len; i++) |
scpnt | 660 | drivers/scsi/buslogic.c | HOSTDATA(shpnt)->sc[mbo] = scpnt; /* This will effectively |
scpnt | 679 | drivers/scsi/buslogic.c | ccb->cdblen = scpnt->cmd_len; /* SCSI Command Descriptor |
scpnt | 690 | drivers/scsi/buslogic.c | if (scpnt->use_sg) { |
scpnt | 697 | drivers/scsi/buslogic.c | scpnt->host_scribble |
scpnt | 699 | drivers/scsi/buslogic.c | if (scpnt->host_scribble == NULL) { |
scpnt | 703 | drivers/scsi/buslogic.c | sgpnt = (struct scatterlist *)scpnt->request_buffer; |
scpnt | 704 | drivers/scsi/buslogic.c | cptr = (struct chain *)scpnt->host_scribble; |
scpnt | 705 | drivers/scsi/buslogic.c | if (scpnt->use_sg > shpnt->sg_tablesize) { |
scpnt | 707 | drivers/scsi/buslogic.c | scpnt->use_sg, shpnt->sg_tablesize); |
scpnt | 710 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->use_sg; i++) { |
scpnt | 716 | drivers/scsi/buslogic.c | ccb->datalen = scpnt->use_sg * sizeof (struct chain); |
scpnt | 731 | drivers/scsi/buslogic.c | scpnt->host_scribble = NULL; |
scpnt | 739 | drivers/scsi/buslogic.c | ccb->rsalen = sizeof scpnt->sense_buffer; |
scpnt | 740 | drivers/scsi/buslogic.c | ccb->senseptr = scpnt->sense_buffer; |
scpnt | 759 | drivers/scsi/buslogic.c | scpnt->scsi_done = done; |
scpnt | 775 | drivers/scsi/buslogic.c | scpnt->result = DID_ERROR << 16; |
scpnt | 776 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 783 | drivers/scsi/buslogic.c | static void internal_done(Scsi_Cmnd *scpnt) |
scpnt | 785 | drivers/scsi/buslogic.c | scpnt->SCp.Status++; |
scpnt | 788 | drivers/scsi/buslogic.c | int buslogic_command(Scsi_Cmnd *scpnt) |
scpnt | 794 | drivers/scsi/buslogic.c | buslogic_queuecommand(scpnt, internal_done); |
scpnt | 796 | drivers/scsi/buslogic.c | scpnt->SCp.Status = 0; |
scpnt | 797 | drivers/scsi/buslogic.c | while (!scpnt->SCp.Status) |
scpnt | 799 | drivers/scsi/buslogic.c | return scpnt->result; |
scpnt | 1360 | drivers/scsi/buslogic.c | int buslogic_abort(Scsi_Cmnd *scpnt) |
scpnt | 1370 | drivers/scsi/buslogic.c | inb(STATUS(scpnt->host->io_port)), |
scpnt | 1371 | drivers/scsi/buslogic.c | inb(INTERRUPT(scpnt->host->io_port))); |
scpnt | 1375 | drivers/scsi/buslogic.c | mb = HOSTDATA(scpnt->host)->mb; |
scpnt | 1376 | drivers/scsi/buslogic.c | last_mbi = HOSTDATA(scpnt->host)->last_mbi_used; |
scpnt | 1388 | drivers/scsi/buslogic.c | } while (mbi != HOSTDATA(scpnt->host)->last_mbi_used); |
scpnt | 1393 | drivers/scsi/buslogic.c | scpnt->host->irq); |
scpnt | 1394 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->last_mbi_used = last_mbi; |
scpnt | 1395 | drivers/scsi/buslogic.c | buslogic_interrupt(scpnt->host->irq, NULL); |
scpnt | 1404 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i]) { |
scpnt | 1405 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1407 | drivers/scsi/buslogic.c | kdevname(scpnt->request.rq_dev)); |
scpnt | 1408 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->mb[i].status != MBX_NOT_IN_USE) { |
scpnt | 1410 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1414 | drivers/scsi/buslogic.c | kdevname(scpnt->request.rq_dev)); |
scpnt | 1428 | drivers/scsi/buslogic.c | if (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) { |
scpnt | 1430 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1444 | drivers/scsi/buslogic.c | int buslogic_reset(Scsi_Cmnd *scpnt) |
scpnt | 1454 | drivers/scsi/buslogic.c | outb(RSBUS, CONTROL(scpnt->host->io_port)); |
scpnt | 1459 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1460 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->ccbs[i].op = CCB_OP_BUS_RESET; |
scpnt | 1464 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1471 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1478 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] |
scpnt | 1479 | drivers/scsi/buslogic.c | && HOSTDATA(scpnt->host)->sc[i]->target == scpnt->target) { |
scpnt | 1480 | drivers/scsi/buslogic.c | Scsi_Cmnd *sctmp = HOSTDATA(scpnt->host)->sc[i]; |
scpnt | 1486 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1487 | drivers/scsi/buslogic.c | sctmp->scsi_done(scpnt); |
scpnt | 1489 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->sc[i] = NULL; |
scpnt | 1490 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->mb[i].status = MBX_NOT_IN_USE; |