taglinefilesource code
scpnt568drivers/scsi/buslogic.cint buslogic_queuecommand(Scsi_Cmnd *scpnt, void (*done)(Scsi_Cmnd *))
scpnt572drivers/scsi/buslogic.cunsigned char *cmd = (unsigned char *)scpnt->cmnd;
scpnt573drivers/scsi/buslogic.cunsigned char target = scpnt->target;
scpnt574drivers/scsi/buslogic.cunsigned char lun = scpnt->lun;
scpnt575drivers/scsi/buslogic.cvoid *buff = scpnt->request_buffer;
scpnt576drivers/scsi/buslogic.cint bufflen = scpnt->request_bufflen;
scpnt583drivers/scsi/buslogic.cscpnt->result = DID_TIME_OUT << 16;
scpnt584drivers/scsi/buslogic.cdone(scpnt);
scpnt591drivers/scsi/buslogic.cif (bufflen != sizeof scpnt->sense_buffer) {
scpnt597drivers/scsi/buslogic.cscpnt->result = 0;
scpnt598drivers/scsi/buslogic.cdone(scpnt);
scpnt614drivers/scsi/buslogic.cbuslogic_stat(scpnt->host->io_port);
scpnt616drivers/scsi/buslogic.cfor (i = 0; i < scpnt->cmd_len; i++)
scpnt624drivers/scsi/buslogic.cmb = HOSTDATA(scpnt->host)->mb;
scpnt625drivers/scsi/buslogic.cccb = HOSTDATA(scpnt->host)->ccbs;
scpnt632drivers/scsi/buslogic.cmbo = HOSTDATA(scpnt->host)->last_mbo_used + 1;
scpnt638drivers/scsi/buslogic.c&& HOSTDATA(scpnt->host)->sc[mbo] == NULL)
scpnt643drivers/scsi/buslogic.c} while (mbo != HOSTDATA(scpnt->host)->last_mbo_used);
scpnt645drivers/scsi/buslogic.cif (mb[mbo].status != MBX_NOT_IN_USE || HOSTDATA(scpnt->host)->sc[mbo]) {
scpnt651drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->sc[mbo] = scpnt;  /* This will effectively
scpnt655drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->last_mbo_used = mbo;
scpnt668drivers/scsi/buslogic.cccb[mbo].cdblen = scpnt->cmd_len;    /* SCSI Command Descriptor
scpnt679drivers/scsi/buslogic.cif (scpnt->use_sg) {
scpnt686drivers/scsi/buslogic.cscpnt->host_scribble
scpnt688drivers/scsi/buslogic.cif (scpnt->host_scribble == NULL)
scpnt690drivers/scsi/buslogic.csgpnt = (struct scatterlist *)scpnt->request_buffer;
scpnt691drivers/scsi/buslogic.ccptr = (struct chain *)scpnt->host_scribble;
scpnt692drivers/scsi/buslogic.cif (scpnt->use_sg > scpnt->host->sg_tablesize) {
scpnt695drivers/scsi/buslogic.cscpnt->use_sg, scpnt->host->sg_tablesize);
scpnt698drivers/scsi/buslogic.cfor (i = 0; i < scpnt->use_sg; i++) {
scpnt702drivers/scsi/buslogic.cccb[mbo].datalen = scpnt->use_sg * sizeof (struct chain);
scpnt717drivers/scsi/buslogic.cscpnt->host_scribble = NULL;
scpnt724drivers/scsi/buslogic.cccb[mbo].rsalen = sizeof scpnt->sense_buffer;
scpnt725drivers/scsi/buslogic.cccb[mbo].senseptr = scpnt->sense_buffer;
scpnt743drivers/scsi/buslogic.cbuslogic_stat(scpnt->host->io_port);
scpnt745drivers/scsi/buslogic.cscpnt->scsi_done = done;
scpnt748drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt750drivers/scsi/buslogic.cbuslogic_stat(scpnt->host->io_port);
scpnt759drivers/scsi/buslogic.cstatic void internal_done(Scsi_Cmnd *scpnt)
scpnt761drivers/scsi/buslogic.cscpnt->SCp.Status++;
scpnt764drivers/scsi/buslogic.cint buslogic_command(Scsi_Cmnd *scpnt)
scpnt770drivers/scsi/buslogic.cbuslogic_queuecommand(scpnt, internal_done);
scpnt772drivers/scsi/buslogic.cscpnt->SCp.Status = 0;
scpnt773drivers/scsi/buslogic.cwhile (!scpnt->SCp.Status)
scpnt775drivers/scsi/buslogic.creturn scpnt->result;
scpnt1328drivers/scsi/buslogic.cint buslogic_abort(Scsi_Cmnd *scpnt)
scpnt1337drivers/scsi/buslogic.cinb(STATUS(scpnt->host->io_port)),
scpnt1338drivers/scsi/buslogic.cinb(INTERRUPT(scpnt->host->io_port)));
scpnt1341drivers/scsi/buslogic.cmb = HOSTDATA(scpnt->host)->mb;
scpnt1342drivers/scsi/buslogic.cmbi = HOSTDATA(scpnt->host)->last_mbi_used + 1;
scpnt1352drivers/scsi/buslogic.c} while (mbi != HOSTDATA(scpnt->host)->last_mbi_used);
scpnt1358drivers/scsi/buslogic.cscpnt->host->irq);
scpnt1362drivers/scsi/buslogic.cintval[0] = scpnt->host->irq;
scpnt1371drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i]) {
scpnt1372drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i] == scpnt) {
scpnt1374drivers/scsi/buslogic.cscpnt->request.dev);
scpnt1375drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->mb[i].status != MBX_NOT_IN_USE) {
scpnt1377drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt1381drivers/scsi/buslogic.cscpnt->request.dev);
scpnt1394drivers/scsi/buslogic.cif (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) {
scpnt1396drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt1410drivers/scsi/buslogic.cint buslogic_reset(Scsi_Cmnd *scpnt)
scpnt1420drivers/scsi/buslogic.coutb(RSBUS, CONTROL(scpnt->host->io_port));
scpnt1425drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i] == scpnt) {
scpnt1426drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->ccbs[i].op = CCB_OP_BUS_RESET;
scpnt1430drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt1437drivers/scsi/buslogic.cscpnt->target);
scpnt1444drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i]
scpnt1445drivers/scsi/buslogic.c&& HOSTDATA(scpnt->host)->sc[i]->target == scpnt->target) {
scpnt1446drivers/scsi/buslogic.cScsi_Cmnd *sctmp = HOSTDATA(scpnt->host)->sc[i];
scpnt1452drivers/scsi/buslogic.cscpnt->target);
scpnt1453drivers/scsi/buslogic.csctmp->scsi_done(scpnt);
scpnt1455drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->sc[i] = NULL;
scpnt1456drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->mb[i].status = MBX_NOT_IN_USE;