taglinefilesource code
scpnt596drivers/scsi/buslogic.cint buslogic_queuecommand(Scsi_Cmnd *scpnt, void (*done)(Scsi_Cmnd *))
scpnt600drivers/scsi/buslogic.cunsigned char *cmd = (unsigned char *)scpnt->cmnd;
scpnt601drivers/scsi/buslogic.cunsigned char target = scpnt->target;
scpnt602drivers/scsi/buslogic.cunsigned char lun = scpnt->lun;
scpnt603drivers/scsi/buslogic.cvoid *buff = scpnt->request_buffer;
scpnt604drivers/scsi/buslogic.cint bufflen = scpnt->request_bufflen;
scpnt609drivers/scsi/buslogic.cstruct Scsi_Host *shpnt = scpnt->host;
scpnt613drivers/scsi/buslogic.cscpnt->result = DID_TIME_OUT << 16;
scpnt614drivers/scsi/buslogic.cdone(scpnt);
scpnt621drivers/scsi/buslogic.cif (bufflen != sizeof scpnt->sense_buffer) {
scpnt627drivers/scsi/buslogic.cscpnt->result = 0;
scpnt628drivers/scsi/buslogic.cdone(scpnt);
scpnt645drivers/scsi/buslogic.cfor (i = 0; i < scpnt->cmd_len; i++)
scpnt683drivers/scsi/buslogic.cHOSTDATA(shpnt)->sc[mbo] = scpnt;    /* This will effectively
scpnt700drivers/scsi/buslogic.cccb[mbo].cdblen = scpnt->cmd_len;    /* SCSI Command Descriptor
scpnt711drivers/scsi/buslogic.cif (scpnt->use_sg) {
scpnt718drivers/scsi/buslogic.cscpnt->host_scribble
scpnt720drivers/scsi/buslogic.cif (scpnt->host_scribble == NULL) {
scpnt724drivers/scsi/buslogic.csgpnt = (struct scatterlist *)scpnt->request_buffer;
scpnt725drivers/scsi/buslogic.ccptr = (struct chain *)scpnt->host_scribble;
scpnt726drivers/scsi/buslogic.cif (scpnt->use_sg > shpnt->sg_tablesize) {
scpnt728drivers/scsi/buslogic.cscpnt->use_sg, shpnt->sg_tablesize);
scpnt731drivers/scsi/buslogic.cfor (i = 0; i < scpnt->use_sg; i++) {
scpnt737drivers/scsi/buslogic.cccb[mbo].datalen = scpnt->use_sg * sizeof (struct chain);
scpnt752drivers/scsi/buslogic.cscpnt->host_scribble = NULL;
scpnt760drivers/scsi/buslogic.cccb[mbo].rsalen = sizeof scpnt->sense_buffer;
scpnt761drivers/scsi/buslogic.cccb[mbo].senseptr = scpnt->sense_buffer;
scpnt781drivers/scsi/buslogic.cscpnt->scsi_done = done;
scpnt797drivers/scsi/buslogic.cscpnt->result = DID_ERROR << 16;
scpnt798drivers/scsi/buslogic.cdone(scpnt);
scpnt805drivers/scsi/buslogic.cstatic void internal_done(Scsi_Cmnd *scpnt)
scpnt807drivers/scsi/buslogic.cscpnt->SCp.Status++;
scpnt810drivers/scsi/buslogic.cint buslogic_command(Scsi_Cmnd *scpnt)
scpnt816drivers/scsi/buslogic.cbuslogic_queuecommand(scpnt, internal_done);
scpnt818drivers/scsi/buslogic.cscpnt->SCp.Status = 0;
scpnt819drivers/scsi/buslogic.cwhile (!scpnt->SCp.Status)
scpnt821drivers/scsi/buslogic.creturn scpnt->result;
scpnt1380drivers/scsi/buslogic.cint buslogic_abort(Scsi_Cmnd *scpnt)
scpnt1390drivers/scsi/buslogic.cinb(STATUS(scpnt->host->io_port)),
scpnt1391drivers/scsi/buslogic.cinb(INTERRUPT(scpnt->host->io_port)));
scpnt1395drivers/scsi/buslogic.cmb = HOSTDATA(scpnt->host)->mb;
scpnt1396drivers/scsi/buslogic.cmbi = HOSTDATA(scpnt->host)->last_mbi_used + 1;
scpnt1406drivers/scsi/buslogic.c} while (mbi != HOSTDATA(scpnt->host)->last_mbi_used);
scpnt1412drivers/scsi/buslogic.cscpnt->host->irq);
scpnt1416drivers/scsi/buslogic.cintval[0] = scpnt->host->irq;
scpnt1425drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i]) {
scpnt1426drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i] == scpnt) {
scpnt1428drivers/scsi/buslogic.cscpnt->request.dev);
scpnt1429drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->mb[i].status != MBX_NOT_IN_USE) {
scpnt1431drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt1435drivers/scsi/buslogic.cscpnt->request.dev);
scpnt1449drivers/scsi/buslogic.cif (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) {
scpnt1451drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt1465drivers/scsi/buslogic.cint buslogic_reset(Scsi_Cmnd *scpnt)
scpnt1475drivers/scsi/buslogic.coutb(RSBUS, CONTROL(scpnt->host->io_port));
scpnt1480drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i] == scpnt) {
scpnt1481drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->ccbs[i].op = CCB_OP_BUS_RESET;
scpnt1485drivers/scsi/buslogic.cbuslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd);
scpnt1492drivers/scsi/buslogic.cscpnt->target);
scpnt1499drivers/scsi/buslogic.cif (HOSTDATA(scpnt->host)->sc[i]
scpnt1500drivers/scsi/buslogic.c&& HOSTDATA(scpnt->host)->sc[i]->target == scpnt->target) {
scpnt1501drivers/scsi/buslogic.cScsi_Cmnd *sctmp = HOSTDATA(scpnt->host)->sc[i];
scpnt1507drivers/scsi/buslogic.cscpnt->target);
scpnt1508drivers/scsi/buslogic.csctmp->scsi_done(scpnt);
scpnt1510drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->sc[i] = NULL;
scpnt1511drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->mb[i].status = MBX_NOT_IN_USE;