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 | 583 | drivers/scsi/buslogic.c | scpnt->result = DID_TIME_OUT << 16; |
scpnt | 584 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 591 | drivers/scsi/buslogic.c | if (bufflen != sizeof scpnt->sense_buffer) { |
scpnt | 597 | drivers/scsi/buslogic.c | scpnt->result = 0; |
scpnt | 598 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 614 | drivers/scsi/buslogic.c | buslogic_stat(scpnt->host->io_port); |
scpnt | 616 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->cmd_len; i++) |
scpnt | 624 | drivers/scsi/buslogic.c | mb = HOSTDATA(scpnt->host)->mb; |
scpnt | 625 | drivers/scsi/buslogic.c | ccb = HOSTDATA(scpnt->host)->ccbs; |
scpnt | 632 | drivers/scsi/buslogic.c | mbo = HOSTDATA(scpnt->host)->last_mbo_used + 1; |
scpnt | 638 | drivers/scsi/buslogic.c | && HOSTDATA(scpnt->host)->sc[mbo] == NULL) |
scpnt | 643 | drivers/scsi/buslogic.c | } while (mbo != HOSTDATA(scpnt->host)->last_mbo_used); |
scpnt | 645 | drivers/scsi/buslogic.c | if (mb[mbo].status != MBX_NOT_IN_USE || HOSTDATA(scpnt->host)->sc[mbo]) { |
scpnt | 651 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->sc[mbo] = scpnt; /* This will effectively |
scpnt | 655 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->last_mbo_used = mbo; |
scpnt | 668 | drivers/scsi/buslogic.c | ccb[mbo].cdblen = scpnt->cmd_len; /* SCSI Command Descriptor |
scpnt | 679 | drivers/scsi/buslogic.c | if (scpnt->use_sg) { |
scpnt | 686 | drivers/scsi/buslogic.c | scpnt->host_scribble |
scpnt | 688 | drivers/scsi/buslogic.c | if (scpnt->host_scribble == NULL) |
scpnt | 690 | drivers/scsi/buslogic.c | sgpnt = (struct scatterlist *)scpnt->request_buffer; |
scpnt | 691 | drivers/scsi/buslogic.c | cptr = (struct chain *)scpnt->host_scribble; |
scpnt | 692 | drivers/scsi/buslogic.c | if (scpnt->use_sg > scpnt->host->sg_tablesize) { |
scpnt | 695 | drivers/scsi/buslogic.c | scpnt->use_sg, scpnt->host->sg_tablesize); |
scpnt | 698 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->use_sg; i++) { |
scpnt | 702 | drivers/scsi/buslogic.c | ccb[mbo].datalen = scpnt->use_sg * sizeof (struct chain); |
scpnt | 717 | drivers/scsi/buslogic.c | scpnt->host_scribble = NULL; |
scpnt | 724 | drivers/scsi/buslogic.c | ccb[mbo].rsalen = sizeof scpnt->sense_buffer; |
scpnt | 725 | drivers/scsi/buslogic.c | ccb[mbo].senseptr = scpnt->sense_buffer; |
scpnt | 743 | drivers/scsi/buslogic.c | buslogic_stat(scpnt->host->io_port); |
scpnt | 745 | drivers/scsi/buslogic.c | scpnt->scsi_done = done; |
scpnt | 748 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 750 | drivers/scsi/buslogic.c | buslogic_stat(scpnt->host->io_port); |
scpnt | 759 | drivers/scsi/buslogic.c | static void internal_done(Scsi_Cmnd *scpnt) |
scpnt | 761 | drivers/scsi/buslogic.c | scpnt->SCp.Status++; |
scpnt | 764 | drivers/scsi/buslogic.c | int buslogic_command(Scsi_Cmnd *scpnt) |
scpnt | 770 | drivers/scsi/buslogic.c | buslogic_queuecommand(scpnt, internal_done); |
scpnt | 772 | drivers/scsi/buslogic.c | scpnt->SCp.Status = 0; |
scpnt | 773 | drivers/scsi/buslogic.c | while (!scpnt->SCp.Status) |
scpnt | 775 | drivers/scsi/buslogic.c | return scpnt->result; |
scpnt | 1328 | drivers/scsi/buslogic.c | int buslogic_abort(Scsi_Cmnd *scpnt) |
scpnt | 1337 | drivers/scsi/buslogic.c | inb(STATUS(scpnt->host->io_port)), |
scpnt | 1338 | drivers/scsi/buslogic.c | inb(INTERRUPT(scpnt->host->io_port))); |
scpnt | 1341 | drivers/scsi/buslogic.c | mb = HOSTDATA(scpnt->host)->mb; |
scpnt | 1342 | drivers/scsi/buslogic.c | mbi = HOSTDATA(scpnt->host)->last_mbi_used + 1; |
scpnt | 1352 | drivers/scsi/buslogic.c | } while (mbi != HOSTDATA(scpnt->host)->last_mbi_used); |
scpnt | 1358 | drivers/scsi/buslogic.c | scpnt->host->irq); |
scpnt | 1362 | drivers/scsi/buslogic.c | intval[0] = scpnt->host->irq; |
scpnt | 1371 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i]) { |
scpnt | 1372 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1374 | drivers/scsi/buslogic.c | scpnt->request.dev); |
scpnt | 1375 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->mb[i].status != MBX_NOT_IN_USE) { |
scpnt | 1377 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1381 | drivers/scsi/buslogic.c | scpnt->request.dev); |
scpnt | 1394 | drivers/scsi/buslogic.c | if (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) { |
scpnt | 1396 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1410 | drivers/scsi/buslogic.c | int buslogic_reset(Scsi_Cmnd *scpnt) |
scpnt | 1420 | drivers/scsi/buslogic.c | outb(RSBUS, CONTROL(scpnt->host->io_port)); |
scpnt | 1425 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1426 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->ccbs[i].op = CCB_OP_BUS_RESET; |
scpnt | 1430 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1437 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1444 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] |
scpnt | 1445 | drivers/scsi/buslogic.c | && HOSTDATA(scpnt->host)->sc[i]->target == scpnt->target) { |
scpnt | 1446 | drivers/scsi/buslogic.c | Scsi_Cmnd *sctmp = HOSTDATA(scpnt->host)->sc[i]; |
scpnt | 1452 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1453 | drivers/scsi/buslogic.c | sctmp->scsi_done(scpnt); |
scpnt | 1455 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->sc[i] = NULL; |
scpnt | 1456 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->mb[i].status = MBX_NOT_IN_USE; |