taglinefilesource code
mbo317drivers/scsi/aha1542.cint errstatus, mbi, mbo, mbistatus;
mbo390drivers/scsi/aha1542.cmbo = (scsi2int(mb[mbi].ccbptr) - ((unsigned int) &ccb[0])) / sizeof(struct ccb);
mbo398drivers/scsi/aha1542.cif (ccb[mbo].tarstat|ccb[mbo].hastat)
mbo400drivers/scsi/aha1542.cccb[mbo].tarstat + ((int) ccb[mbo].hastat << 16), mb[mbi].status);
mbo407drivers/scsi/aha1542.cprintk("...done %d %d\n",mbo, mbi);
mbo410drivers/scsi/aha1542.cSCtmp = HOSTDATA(shost)->SCint[mbo];
mbo414drivers/scsi/aha1542.cprintk("tarstat=%x, hastat=%x idlun=%x ccb#=%d \n", ccb[mbo].tarstat, 
mbo415drivers/scsi/aha1542.cccb[mbo].hastat, ccb[mbo].idlun, mbo);
mbo425drivers/scsi/aha1542.cif (ccb[mbo].tarstat == 2)
mbo426drivers/scsi/aha1542.cmemcpy(SCtmp->sense_buffer, &ccb[mbo].cdb[ccb[mbo].cdblen], 
mbo435drivers/scsi/aha1542.cerrstatus = makecode(ccb[mbo].hastat, ccb[mbo].tarstat);
mbo441drivers/scsi/aha1542.cccb[mbo].hastat, ccb[mbo].tarstat);
mbo444drivers/scsi/aha1542.cif (ccb[mbo].tarstat == 2) {
mbo451drivers/scsi/aha1542.cprintk("%02x ", ccb[mbo].cdb[ccb[mbo].cdblen+i]);
mbo463drivers/scsi/aha1542.cHOSTDATA(shost)->SCint[mbo] = NULL;  /* This effectively frees up the mailbox slot, as
mbo479drivers/scsi/aha1542.cint mbo;
mbo525drivers/scsi/aha1542.cmbo = HOSTDATA(SCpnt->host)->aha1542_last_mbo_used + 1;
mbo526drivers/scsi/aha1542.cif (mbo >= AHA1542_MAILBOXES) mbo = 0;
mbo529drivers/scsi/aha1542.cif(mb[mbo].status == 0 && HOSTDATA(SCpnt->host)->SCint[mbo] == NULL)
mbo531drivers/scsi/aha1542.cmbo++;
mbo532drivers/scsi/aha1542.cif (mbo >= AHA1542_MAILBOXES) mbo = 0;
mbo533drivers/scsi/aha1542.c} while (mbo != HOSTDATA(SCpnt->host)->aha1542_last_mbo_used);
mbo535drivers/scsi/aha1542.cif(mb[mbo].status || HOSTDATA(SCpnt->host)->SCint[mbo])
mbo538drivers/scsi/aha1542.cHOSTDATA(SCpnt->host)->SCint[mbo] = SCpnt;  /* This will effectively prevent someone else from
mbo541drivers/scsi/aha1542.cHOSTDATA(SCpnt->host)->aha1542_last_mbo_used = mbo;    
mbo545drivers/scsi/aha1542.cprintk("Sending command (%d %x)...",mbo, done);
mbo548drivers/scsi/aha1542.cany2scsi(mb[mbo].ccbptr, &ccb[mbo]); /* This gets trashed for some reason*/
mbo550drivers/scsi/aha1542.cmemset(&ccb[mbo], 0, sizeof(struct ccb));
mbo552drivers/scsi/aha1542.cccb[mbo].cdblen = COMMAND_SIZE(*cmd);     /* SCSI Command Descriptor Block Length */
mbo560drivers/scsi/aha1542.cmemcpy(ccb[mbo].cdb, cmd, ccb[mbo].cdblen);
mbo569drivers/scsi/aha1542.cccb[mbo].op = 2;        /* SCSI Initiator Command  w/scatter-gather*/
mbo592drivers/scsi/aha1542.cany2scsi(ccb[mbo].datalen, SCpnt->use_sg * sizeof(struct chain));
mbo594drivers/scsi/aha1542.cany2scsi(ccb[mbo].dataptr, cptr);
mbo601drivers/scsi/aha1542.cccb[mbo].op = 0;        /* SCSI Initiator Command */
mbo603drivers/scsi/aha1542.cany2scsi(ccb[mbo].datalen, bufflen);
mbo604drivers/scsi/aha1542.cany2scsi(ccb[mbo].dataptr, buff);
mbo606drivers/scsi/aha1542.cccb[mbo].idlun = (target&7)<<5 | direction | (lun & 7); /*SCSI Target Id*/
mbo607drivers/scsi/aha1542.cccb[mbo].rsalen = 12;
mbo608drivers/scsi/aha1542.cccb[mbo].linkptr[0] = ccb[mbo].linkptr[1] = ccb[mbo].linkptr[2] = 0;
mbo609drivers/scsi/aha1542.cccb[mbo].commlinkid = 0;
mbo614drivers/scsi/aha1542.cfor (i = 0; i < sizeof(ccb[mbo])-10; i++)
mbo615drivers/scsi/aha1542.cprintk("%02x ", ((unchar *)&ccb[mbo])[i]);
mbo622drivers/scsi/aha1542.cmb[mbo].status = 1;
mbo981drivers/scsi/aha1542.cint mbi, mbo, i;
mbo1028drivers/scsi/aha1542.cfor(mbo = 0; mbo < AHA1542_MAILBOXES; mbo++)
mbo1029drivers/scsi/aha1542.cif (SCpnt == HOSTDATA(SCpnt->host)->SCint[mbo]){
mbo1030drivers/scsi/aha1542.cmb[mbo].status = 2;  /* Abort command */
mbo426drivers/scsi/buslogic.csize_t mbi, mbo = 0;
mbo506drivers/scsi/buslogic.cmbo = (struct ccb *)mb[mbi].ccbptr - ccb;
mbo526drivers/scsi/buslogic.cif (ccb[mbo].tarstat || ccb[mbo].hastat)
mbo528drivers/scsi/buslogic.c((int)ccb[mbo].hastat << 16) | ccb[mbo].tarstat,
mbo536drivers/scsi/buslogic.cbuslogic_printk("...done %u %u\n", mbo, mbi);
mbo539drivers/scsi/buslogic.csctmp = HOSTDATA(shpnt)->sc[mbo];
mbo544drivers/scsi/buslogic.cccb[mbo].tarstat, ccb[mbo].hastat,
mbo545drivers/scsi/buslogic.cccb[mbo].id, ccb[mbo].lun, mbo);
mbo557drivers/scsi/buslogic.cif (ccb[mbo].tarstat == 2)  /* ??? */
mbo558drivers/scsi/buslogic.cmemcpy(sctmp->sense_buffer, &ccb[mbo].cdb[ccb[mbo].cdblen],
mbo565drivers/scsi/buslogic.cerrstatus = makecode(ccb[mbo].hastat, ccb[mbo].tarstat);
mbo572drivers/scsi/buslogic.cerrstatus, ccb[mbo].hastat, ccb[mbo].tarstat);
mbo574drivers/scsi/buslogic.cif (status_byte(ccb[mbo].tarstat) == CHECK_CONDITION) {
mbo588drivers/scsi/buslogic.cHOSTDATA(shpnt)->sc[mbo] = NULL;  /* This effectively frees up
mbo606drivers/scsi/buslogic.cint mbo;
mbo661drivers/scsi/buslogic.cmbo = HOSTDATA(scpnt->host)->last_mbo_used + 1;
mbo662drivers/scsi/buslogic.cif (mbo >= BUSLOGIC_MAILBOXES)
mbo663drivers/scsi/buslogic.cmbo = 0;
mbo666drivers/scsi/buslogic.cif (mb[mbo].status == MBX_NOT_IN_USE
mbo667drivers/scsi/buslogic.c&& HOSTDATA(scpnt->host)->sc[mbo] == NULL)
mbo669drivers/scsi/buslogic.cmbo++;
mbo670drivers/scsi/buslogic.cif (mbo >= BUSLOGIC_MAILBOXES)
mbo671drivers/scsi/buslogic.cmbo = 0;
mbo672drivers/scsi/buslogic.c} while (mbo != HOSTDATA(scpnt->host)->last_mbo_used);
mbo674drivers/scsi/buslogic.cif (mb[mbo].status != MBX_NOT_IN_USE
mbo675drivers/scsi/buslogic.c|| HOSTDATA(scpnt->host)->sc[mbo]) {
mbo681drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->sc[mbo] = scpnt;  /* This will effectively
mbo685drivers/scsi/buslogic.cHOSTDATA(scpnt->host)->last_mbo_used = mbo;
mbo690drivers/scsi/buslogic.cbuslogic_printk("sending command (%d %08X)...", mbo, done);
mbo694drivers/scsi/buslogic.cmb[mbo].ccbptr = &ccb[mbo];
mbo696drivers/scsi/buslogic.cmemset(&ccb[mbo], 0, sizeof (struct ccb));
mbo698drivers/scsi/buslogic.cccb[mbo].cdblen = COMMAND_SIZE(*cmd);  /* SCSI Command Descriptor
mbo707drivers/scsi/buslogic.cmemcpy(ccb[mbo].cdb, cmd, ccb[mbo].cdblen);
mbo714drivers/scsi/buslogic.cccb[mbo].op = CCB_OP_INIT_SG;  /* SCSI Initiator Command
mbo732drivers/scsi/buslogic.cccb[mbo].datalen = scpnt->use_sg * sizeof (struct chain);
mbo733drivers/scsi/buslogic.cccb[mbo].dataptr = cptr;
mbo746drivers/scsi/buslogic.cccb[mbo].op = CCB_OP_INIT;  /* SCSI Initiator Command */
mbo748drivers/scsi/buslogic.cccb[mbo].datalen = bufflen;
mbo749drivers/scsi/buslogic.cccb[mbo].dataptr = buff;
mbo751drivers/scsi/buslogic.cccb[mbo].id = target;
mbo752drivers/scsi/buslogic.cccb[mbo].lun = lun;
mbo753drivers/scsi/buslogic.cccb[mbo].dir = direction;
mbo754drivers/scsi/buslogic.cccb[mbo].rsalen = sizeof scpnt->sense_buffer;
mbo755drivers/scsi/buslogic.cccb[mbo].senseptr = scpnt->sense_buffer;
mbo756drivers/scsi/buslogic.cccb[mbo].linkptr = NULL;
mbo757drivers/scsi/buslogic.cccb[mbo].commlinkid = 0;
mbo764drivers/scsi/buslogic.cfor (i = 0; i < sizeof ccb[mbo] - 10; i++)
mbo765drivers/scsi/buslogic.cprintk(" %02X", ((unsigned char *)&ccb[mbo])[i]);
mbo776drivers/scsi/buslogic.cmb[mbo].status = MBX_ACTION_START;
mbo1212drivers/scsi/buslogic.csize_t mbi, mbo;
mbo1272drivers/scsi/buslogic.cfor (mbo = 0; mbo < BUSLOGIC_MAILBOXES; mbo++)
mbo1273drivers/scsi/buslogic.cif (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) {
mbo1274drivers/scsi/buslogic.cmb[mbo].status = MBX_ACTION_ABORT;