tag | line | file | source code |
scpnt | 568 | drivers/scsi/buslogic.c | int buslogic_queuecommand(Scsi_Cmnd *scpnt, void (*done)(Scsi_Cmnd *)) |
scpnt | 572 | drivers/scsi/buslogic.c | unsigned char *cmd = (unsigned char *)scpnt->cmnd; |
scpnt | 573 | drivers/scsi/buslogic.c | unsigned char target = scpnt->target; |
scpnt | 574 | drivers/scsi/buslogic.c | unsigned char lun = scpnt->lun; |
scpnt | 575 | drivers/scsi/buslogic.c | void *buff = scpnt->request_buffer; |
scpnt | 576 | drivers/scsi/buslogic.c | int bufflen = scpnt->request_bufflen; |
scpnt | 579 | drivers/scsi/buslogic.c | struct Scsi_Host *shpnt = scpnt->host; |
scpnt | 586 | drivers/scsi/buslogic.c | scpnt->result = DID_TIME_OUT << 16; |
scpnt | 587 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 594 | drivers/scsi/buslogic.c | if (bufflen != sizeof scpnt->sense_buffer) { |
scpnt | 600 | drivers/scsi/buslogic.c | scpnt->result = 0; |
scpnt | 601 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 618 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->cmd_len; i++) |
scpnt | 653 | drivers/scsi/buslogic.c | HOSTDATA(shpnt)->sc[mbo] = scpnt; /* This will effectively |
scpnt | 672 | drivers/scsi/buslogic.c | ccb->cdblen = scpnt->cmd_len; /* SCSI Command Descriptor |
scpnt | 683 | drivers/scsi/buslogic.c | if (scpnt->use_sg) { |
scpnt | 690 | drivers/scsi/buslogic.c | scpnt->host_scribble |
scpnt | 692 | drivers/scsi/buslogic.c | if (scpnt->host_scribble == NULL) { |
scpnt | 696 | drivers/scsi/buslogic.c | sgpnt = (struct scatterlist *)scpnt->request_buffer; |
scpnt | 697 | drivers/scsi/buslogic.c | cptr = (struct chain *)scpnt->host_scribble; |
scpnt | 698 | drivers/scsi/buslogic.c | if (scpnt->use_sg > shpnt->sg_tablesize) { |
scpnt | 700 | drivers/scsi/buslogic.c | scpnt->use_sg, shpnt->sg_tablesize); |
scpnt | 703 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->use_sg; i++) { |
scpnt | 709 | drivers/scsi/buslogic.c | ccb->datalen = scpnt->use_sg * sizeof (struct chain); |
scpnt | 724 | drivers/scsi/buslogic.c | scpnt->host_scribble = NULL; |
scpnt | 732 | drivers/scsi/buslogic.c | ccb->rsalen = sizeof scpnt->sense_buffer; |
scpnt | 733 | drivers/scsi/buslogic.c | ccb->senseptr = scpnt->sense_buffer; |
scpnt | 752 | drivers/scsi/buslogic.c | scpnt->scsi_done = done; |
scpnt | 768 | drivers/scsi/buslogic.c | scpnt->result = DID_ERROR << 16; |
scpnt | 769 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 776 | drivers/scsi/buslogic.c | static void internal_done(Scsi_Cmnd *scpnt) |
scpnt | 778 | drivers/scsi/buslogic.c | scpnt->SCp.Status++; |
scpnt | 781 | drivers/scsi/buslogic.c | int buslogic_command(Scsi_Cmnd *scpnt) |
scpnt | 787 | drivers/scsi/buslogic.c | buslogic_queuecommand(scpnt, internal_done); |
scpnt | 789 | drivers/scsi/buslogic.c | scpnt->SCp.Status = 0; |
scpnt | 790 | drivers/scsi/buslogic.c | while (!scpnt->SCp.Status) |
scpnt | 792 | drivers/scsi/buslogic.c | return scpnt->result; |
scpnt | 1352 | drivers/scsi/buslogic.c | int buslogic_abort(Scsi_Cmnd *scpnt) |
scpnt | 1362 | drivers/scsi/buslogic.c | inb(STATUS(scpnt->host->io_port)), |
scpnt | 1363 | drivers/scsi/buslogic.c | inb(INTERRUPT(scpnt->host->io_port))); |
scpnt | 1367 | drivers/scsi/buslogic.c | mb = HOSTDATA(scpnt->host)->mb; |
scpnt | 1368 | drivers/scsi/buslogic.c | last_mbi = HOSTDATA(scpnt->host)->last_mbi_used; |
scpnt | 1380 | drivers/scsi/buslogic.c | } while (mbi != HOSTDATA(scpnt->host)->last_mbi_used); |
scpnt | 1385 | drivers/scsi/buslogic.c | scpnt->host->irq); |
scpnt | 1386 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->last_mbi_used = last_mbi; |
scpnt | 1387 | drivers/scsi/buslogic.c | buslogic_interrupt(scpnt->host->irq, NULL); |
scpnt | 1396 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i]) { |
scpnt | 1397 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1399 | drivers/scsi/buslogic.c | scpnt->request.dev); |
scpnt | 1400 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->mb[i].status != MBX_NOT_IN_USE) { |
scpnt | 1402 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1406 | drivers/scsi/buslogic.c | scpnt->request.dev); |
scpnt | 1420 | drivers/scsi/buslogic.c | if (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) { |
scpnt | 1422 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1436 | drivers/scsi/buslogic.c | int buslogic_reset(Scsi_Cmnd *scpnt) |
scpnt | 1446 | drivers/scsi/buslogic.c | outb(RSBUS, CONTROL(scpnt->host->io_port)); |
scpnt | 1451 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1452 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->ccbs[i].op = CCB_OP_BUS_RESET; |
scpnt | 1456 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1463 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1470 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] |
scpnt | 1471 | drivers/scsi/buslogic.c | && HOSTDATA(scpnt->host)->sc[i]->target == scpnt->target) { |
scpnt | 1472 | drivers/scsi/buslogic.c | Scsi_Cmnd *sctmp = HOSTDATA(scpnt->host)->sc[i]; |
scpnt | 1478 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1479 | drivers/scsi/buslogic.c | sctmp->scsi_done(scpnt); |
scpnt | 1481 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->sc[i] = NULL; |
scpnt | 1482 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->mb[i].status = MBX_NOT_IN_USE; |