tag | line | file | source code |
scb | 143 | drivers/net/apricot.c | struct i596_scb *scb; |
scb | 155 | drivers/net/apricot.c | struct i596_scb scb; |
scb | 206 | drivers/net/apricot.c | lp->scb.rfd = (struct i596_rfd *)I596_NULL; |
scb | 227 | drivers/net/apricot.c | rfd->next = lp->scb.rfd; |
scb | 228 | drivers/net/apricot.c | lp->scb.rfd = rfd; |
scb | 232 | drivers/net/apricot.c | lp->rx_tail->next = lp->scb.rfd; |
scb | 241 | drivers/net/apricot.c | struct i596_rfd *rfd = lp->scb.rfd; |
scb | 247 | drivers/net/apricot.c | lp->scb.rfd = rfd->next; |
scb | 249 | drivers/net/apricot.c | rfd = lp->scb.rfd; |
scb | 272 | drivers/net/apricot.c | lp->iscp.scb = &(lp->scb); |
scb | 276 | drivers/net/apricot.c | lp->cmd_head = lp->scb.cmd = (struct i596_cmd *) I596_NULL; |
scb | 288 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 292 | drivers/net/apricot.c | lp->scb.command = 0; |
scb | 306 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 310 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 314 | drivers/net/apricot.c | lp->scb.command = RX_START; |
scb | 318 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 322 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 337 | drivers/net/apricot.c | while ((lp->scb.rfd->stat) & STAT_C) |
scb | 339 | drivers/net/apricot.c | if (i596_debug >2) print_eth(lp->scb.rfd->data); |
scb | 341 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & STAT_OK) |
scb | 344 | drivers/net/apricot.c | int pkt_len = lp->scb.rfd->count & 0x3fff; |
scb | 358 | drivers/net/apricot.c | memcpy(skb->data, lp->scb.rfd->data, pkt_len); |
scb | 369 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0001) lp->stats.collisions++; |
scb | 370 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0080) lp->stats.rx_length_errors++; |
scb | 371 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0100) lp->stats.rx_over_errors++; |
scb | 372 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0200) lp->stats.rx_fifo_errors++; |
scb | 373 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0400) lp->stats.rx_frame_errors++; |
scb | 374 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0800) lp->stats.rx_crc_errors++; |
scb | 375 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x1000) lp->stats.rx_length_errors++; |
scb | 378 | drivers/net/apricot.c | lp->scb.rfd->stat = 0; |
scb | 380 | drivers/net/apricot.c | lp->rx_tail = lp->scb.rfd; |
scb | 381 | drivers/net/apricot.c | lp->scb.rfd = lp->scb.rfd->next; |
scb | 436 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 440 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 444 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 454 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 458 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 465 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 471 | drivers/net/apricot.c | while ((lp->scb.status, lp->scb.command) || lp->scb.command) |
scb | 475 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 508 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 512 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 516 | drivers/net/apricot.c | lp->scb.cmd = cmd; |
scb | 517 | drivers/net/apricot.c | lp->scb.command = CUC_START; |
scb | 523 | drivers/net/apricot.c | lp->cmd_head = lp->scb.cmd; |
scb | 603 | drivers/net/apricot.c | lp->scb.command = CUC_START|RX_START; |
scb | 748 | drivers/net/apricot.c | lp->scb.command = 0; |
scb | 749 | drivers/net/apricot.c | lp->scb.cmd = (struct i596_cmd *) I596_NULL; |
scb | 750 | drivers/net/apricot.c | lp->scb.rfd = (struct i596_rfd *)I596_NULL; |
scb | 780 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 783 | drivers/net/apricot.c | printk("%s: i596 interrupt, timeout status %4.4x command %4.4x.\n", dev->name, lp->scb.status, lp->scb.command); |
scb | 786 | drivers/net/apricot.c | status = lp->scb.status; |
scb | 881 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 902 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 905 | drivers/net/apricot.c | printk("%s: i596 interrupt, timeout status %4.4x command %4.4x.\n", dev->name, lp->scb.status, lp->scb.command); |
scb | 908 | drivers/net/apricot.c | lp->scb.command = ack_cmd; |
scb | 933 | drivers/net/apricot.c | dev->name, lp->scb.status); |
scb | 935 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 940 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 944 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 143 | drivers/net/ni52.c | if(!p->scb->cmd) break; \ |
scb | 189 | drivers/net/ni52.c | volatile struct scb_struct *scb; /* volatile is important */ |
scb | 293 | drivers/net/ni52.c | p->scb = (struct scb_struct *) (dev->mem_start); |
scb | 301 | drivers/net/ni52.c | p->iscp->scb_offset = make16(p->scb); |
scb | 312 | drivers/net/ni52.c | memset((char *)p->scb,0,sizeof(struct scb_struct)); |
scb | 461 | drivers/net/ni52.c | ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct)); |
scb | 479 | drivers/net/ni52.c | p->scb->cbl_offset = make16(cfg_cmd); |
scb | 481 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 505 | drivers/net/ni52.c | p->scb->cbl_offset = make16(ias_cmd); |
scb | 507 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 529 | drivers/net/ni52.c | p->scb->cbl_offset = make16(tdr_cmd); |
scb | 531 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 546 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 566 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 623 | drivers/net/ni52.c | p->scb->cbl_offset = make16(mc_cmd); |
scb | 624 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 668 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[0]); |
scb | 669 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 718 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 743 | drivers/net/ni52.c | while((stat=p->scb->status & STAT_MASK)) |
scb | 745 | drivers/net/ni52.c | p->scb->cmd = stat; |
scb | 758 | drivers/net/ni52.c | printk("%s: oops! CU has left active state. stat: %04x/%04x.\n",dev->name,(int) stat,(int) p->scb->status); |
scb | 764 | drivers/net/ni52.c | if(p->scb->status & RU_SUSPEND) /* special case: RU_SUSPEND */ |
scb | 767 | drivers/net/ni52.c | p->scb->cmd = RUC_RESUME; |
scb | 772 | drivers/net/ni52.c | printk("%s: Receiver-Unit went 'NOT READY': %04x/%04x.\n",dev->name,(int) stat,(int) p->scb->status); |
scb | 777 | drivers/net/ni52.c | if(p->scb->cmd) /* timed out? */ |
scb | 849 | drivers/net/ni52.c | p->scb->cmd = RUC_ABORT; /* usually the RU is in the 'no resource'-state .. abort it now. */ |
scb | 856 | drivers/net/ni52.c | printk("%s: Receive-Unit restarted. Status: %04x\n",dev->name,p->scb->status); |
scb | 918 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 919 | drivers/net/ni52.c | p->scb->cmd = RUC_START; |
scb | 942 | drivers/net/ni52.c | if(p->scb->status & CU_ACTIVE) /* COMMAND-UNIT active? */ |
scb | 949 | drivers/net/ni52.c | p->scb->cmd = CUC_ABORT; |
scb | 952 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[p->nop_point]); |
scb | 953 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 962 | drivers/net/ni52.c | printk("%s: xmitter timed out, try to restart! stat: %04x\n",dev->name,p->scb->status); |
scb | 998 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->xmit_cmds[0]); |
scb | 999 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 1007 | drivers/net/ni52.c | if( (p->scb->status & CU_ACTIVE)) /* test it, because CU sometimes doesn't start immediately */ |
scb | 1060 | drivers/net/ni52.c | crc = p->scb->crc_errs; /* get error-statistic from the ni82586 */ |
scb | 1061 | drivers/net/ni52.c | p->scb->crc_errs -= crc; |
scb | 1062 | drivers/net/ni52.c | aln = p->scb->aln_errs; |
scb | 1063 | drivers/net/ni52.c | p->scb->aln_errs -= aln; |
scb | 1064 | drivers/net/ni52.c | rsc = p->scb->rsc_errs; |
scb | 1065 | drivers/net/ni52.c | p->scb->rsc_errs -= rsc; |
scb | 1066 | drivers/net/ni52.c | ovrn = p->scb->ovrn_errs; |
scb | 1067 | drivers/net/ni52.c | p->scb->ovrn_errs -= ovrn; |
scb | 505 | drivers/net/wavelan.c | scb_t scb; |
scb | 552 | drivers/net/wavelan.c | memset(&scb, 0x00, sizeof(scb)); |
scb | 553 | drivers/net/wavelan.c | scb.scb_command = SCB_CMD_RESET; |
scb | 554 | drivers/net/wavelan.c | scb.scb_cbl_offset = OFFSET_CU; |
scb | 555 | drivers/net/wavelan.c | scb.scb_rfa_offset = OFFSET_RU; |
scb | 556 | drivers/net/wavelan.c | obram_write(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 580 | drivers/net/wavelan.c | obram_read(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 582 | drivers/net/wavelan.c | if (scb.scb_status == (SCB_ST_CX | SCB_ST_CNA)) |
scb | 590 | drivers/net/wavelan.c | printk("%s: wavelan_hardware_reset(): status: expected 0x%02x, got 0x%02x.\n", dev->name, SCB_ST_CX | SCB_ST_CNA, scb.scb_status); |
scb | 2262 | drivers/net/wavelan.c | scb_t scb; |
scb | 2264 | drivers/net/wavelan.c | obram_read(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 2272 | drivers/net/wavelan.c | (scb.scb_status & (SCB_ST_CX | SCB_ST_FR | SCB_ST_CNA | SCB_ST_RNR)) >> 12, |
scb | 2273 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CX) ? "cmd completion interrupt," : "", |
scb | 2274 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_FR) ? "frame received," : "", |
scb | 2275 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CNA) ? "cmd unit not active," : "", |
scb | 2276 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_RNR) ? "rcv unit not ready," : "" |
scb | 2281 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CUS) >> 8, |
scb | 2282 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_IDLE) ? "idle" : "", |
scb | 2283 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_SUSP) ? "suspended" : "", |
scb | 2284 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_ACTV) ? "active" : "" |
scb | 2289 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_RUS) >> 4, |
scb | 2290 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_IDLE) ? "idle" : "", |
scb | 2291 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_SUSP) ? "suspended" : "", |
scb | 2292 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_NRES) ? "no resources" : "", |
scb | 2293 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_RDY) ? "ready" : "" |
scb | 2300 | drivers/net/wavelan.c | (scb.scb_command & (SCB_CMD_ACK_CX | SCB_CMD_ACK_FR | SCB_CMD_ACK_CNA | SCB_CMD_ACK_RNR)) >> 12, |
scb | 2301 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_CX) ? "ack cmd completion," : "", |
scb | 2302 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_FR) ? "ack frame received," : "", |
scb | 2303 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_CNA) ? "ack CU not active," : "", |
scb | 2304 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_RNR) ? "ack RU not ready," : "" |
scb | 2309 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_CUC) >> 8, |
scb | 2310 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_NOP) ? "nop" : "", |
scb | 2311 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_GO) ? "start cbl_offset" : "", |
scb | 2312 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_RES) ? "resume execution" : "", |
scb | 2313 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_SUS) ? "suspend execution" : "", |
scb | 2314 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_ABT) ? "abort execution" : "" |
scb | 2319 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_RUC) >> 4, |
scb | 2320 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_NOP) ? "nop" : "", |
scb | 2321 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_GO) ? "start rfa_offset" : "", |
scb | 2322 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_RES) ? "resume reception" : "", |
scb | 2323 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_SUS) ? "suspend reception" : "", |
scb | 2324 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_ABT) ? "abort reception" : "" |
scb | 2327 | drivers/net/wavelan.c | printk(" cbl_offset 0x%x", scb.scb_cbl_offset); |
scb | 2328 | drivers/net/wavelan.c | printk(" rfa_offset 0x%x", scb.scb_rfa_offset); |
scb | 2330 | drivers/net/wavelan.c | printk(" crcerrs %d", scb.scb_crcerrs); |
scb | 2331 | drivers/net/wavelan.c | printk(" alnerrs %d", scb.scb_alnerrs); |
scb | 2332 | drivers/net/wavelan.c | printk(" rscerrs %d", scb.scb_rscerrs); |
scb | 2333 | drivers/net/wavelan.c | printk(" ovrnerrs %d", scb.scb_ovrnerrs); |
scb | 1232 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(int base, struct aic7xxx_scb *scb) |
scb | 1240 | drivers/scsi/aic7xxx.c | outb(scb->position, QINFIFO(base)); |
scb | 1254 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (SCB_DOWNLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1269 | drivers/scsi/aic7xxx.c | aic7xxx_putdmascb(int base, struct aic7xxx_scb *scb) |
scb | 1283 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (31), "d" (SCBARRAY(base)) |
scb | 1297 | drivers/scsi/aic7xxx.c | aic7xxx_getscb(int base, struct aic7xxx_scb *scb) |
scb | 1308 | drivers/scsi/aic7xxx.c | :"D" (scb), "c" (SCB_UPLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1394 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 1725 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1727 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1731 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1735 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 1736 | drivers/scsi/aic7xxx.c | aic7xxx_getscb(base, scb); |
scb | 1737 | drivers/scsi/aic7xxx.c | aic7xxx_status(cmd) = scb->target_status; |
scb | 1739 | drivers/scsi/aic7xxx.c | cmd->result = cmd->result | scb->target_status; |
scb | 1745 | drivers/scsi/aic7xxx.c | switch (status_byte(scb->target_status)) |
scb | 1763 | drivers/scsi/aic7xxx.c | memcpy((void *) scb->sense_cmd, (void *) generic_sense, |
scb | 1766 | drivers/scsi/aic7xxx.c | scb->sense_cmd[1] = cmd->lun << 5; |
scb | 1767 | drivers/scsi/aic7xxx.c | scb->sense_cmd[4] = sizeof(cmd->sense_buffer); |
scb | 1770 | drivers/scsi/aic7xxx.c | scb->sense_sg.address = (char *) &cmd->sense_buffer; |
scb | 1771 | drivers/scsi/aic7xxx.c | scb->sense_sg.length = sizeof(cmd->sense_buffer); |
scb | 1772 | drivers/scsi/aic7xxx.c | req_buf = &scb->sense_sg; |
scb | 1778 | drivers/scsi/aic7xxx.c | memset(scb, 0, SCB_DOWNLOAD_SIZE); |
scb | 1779 | drivers/scsi/aic7xxx.c | scb->target_channel_lun = ((cmd->target << 4) & 0xF0) | |
scb | 1781 | drivers/scsi/aic7xxx.c | addr = scb->sense_cmd; |
scb | 1782 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length = COMMAND_SIZE(scb->sense_cmd[0]); |
scb | 1783 | drivers/scsi/aic7xxx.c | memcpy(scb->SCSI_cmd_pointer, &addr, |
scb | 1784 | drivers/scsi/aic7xxx.c | sizeof(scb->SCSI_cmd_pointer)); |
scb | 1786 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 1; |
scb | 1787 | drivers/scsi/aic7xxx.c | memcpy (scb->SG_list_pointer, &req_buf, |
scb | 1788 | drivers/scsi/aic7xxx.c | sizeof(scb->SG_list_pointer)); |
scb | 1790 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 0; |
scb | 1791 | drivers/scsi/aic7xxx.c | memcpy (scb->data_pointer, &req_buf, |
scb | 1792 | drivers/scsi/aic7xxx.c | sizeof(scb->data_pointer)); |
scb | 1793 | drivers/scsi/aic7xxx.c | memcpy (scb->data_count, &req_buflen, 3); |
scb | 1801 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (SCB_DOWNLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1813 | drivers/scsi/aic7xxx.c | head = scb->position; |
scb | 1820 | drivers/scsi/aic7xxx.c | tail = scb->position; |
scb | 1827 | drivers/scsi/aic7xxx.c | tail = scb->position; |
scb | 1864 | drivers/scsi/aic7xxx.c | scb->target_status); |
scb | 1876 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1877 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1881 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1885 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 1898 | drivers/scsi/aic7xxx.c | actual = aic7xxx_length(cmd, scb->residual_SG_segment_count); |
scb | 1911 | drivers/scsi/aic7xxx.c | aic7xxx_status(cmd) = scb->target_status; |
scb | 1919 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1920 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1924 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1928 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 1948 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 1949 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 1950 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; /* preserve next pointer */ |
scb | 1951 | drivers/scsi/aic7xxx.c | p->free_scb = scb; /* add at head of list */ |
scb | 1961 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1962 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1966 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1975 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_DEVICE_RESET) |
scb | 2002 | drivers/scsi/aic7xxx.c | scb = &p->scb_array[scbptr]; |
scb | 2003 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2015 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2019 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2046 | drivers/scsi/aic7xxx.c | if (scb->target_channel_lun & 0x88) |
scb | 2100 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 2101 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 2102 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; /* preserve next pointer */ |
scb | 2103 | drivers/scsi/aic7xxx.c | p->free_scb = scb; /* add at head of list */ |
scb | 2110 | drivers/scsi/aic7xxx.c | scb->position, scb->state, (unsigned int) scb->cmd); |
scb | 2135 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2149 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2168 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[complete]); |
scb | 2169 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2175 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd); |
scb | 2179 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2188 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, (unsigned int) p->free_scb); |
scb | 2197 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 2198 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; |
scb | 2199 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 2200 | drivers/scsi/aic7xxx.c | p->free_scb = &(p->scb_array[scb->position]); |
scb | 2204 | drivers/scsi/aic7xxx.c | if (scb != &p->scb_array[scb->position]) |
scb | 2206 | drivers/scsi/aic7xxx.c | printk("aic7xxx_isr: (complete) address mismatch, pos %d\n", scb->position); |
scb | 2209 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, (unsigned int) p->free_scb); |
scb | 3273 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb) |
scb | 3295 | drivers/scsi/aic7xxx.c | scb->control = scb->control | SCB_TE; |
scb | 3302 | drivers/scsi/aic7xxx.c | scb->control = scb->control | SCB_NEEDWDTR; |
scb | 3312 | drivers/scsi/aic7xxx.c | scb->control = scb->control | SCB_NEEDSDTR; |
scb | 3323 | drivers/scsi/aic7xxx.c | scb->target_channel_lun = ((cmd->target << 4) & 0xF0) | |
scb | 3348 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length = cmd->cmd_len; |
scb | 3349 | drivers/scsi/aic7xxx.c | memcpy(scb->SCSI_cmd_pointer, &addr, sizeof(scb->SCSI_cmd_pointer)); |
scb | 3357 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = cmd->use_sg; |
scb | 3358 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &cmd->request_buffer, |
scb | 3359 | drivers/scsi/aic7xxx.c | sizeof(scb->SG_list_pointer)); |
scb | 3368 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 1; |
scb | 3369 | drivers/scsi/aic7xxx.c | scb->sg.address = (char *) cmd->request_buffer; |
scb | 3370 | drivers/scsi/aic7xxx.c | scb->sg.length = cmd->request_bufflen; |
scb | 3371 | drivers/scsi/aic7xxx.c | addr = &scb->sg; |
scb | 3372 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &addr, sizeof(scb->SG_list_pointer)); |
scb | 3374 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 0; |
scb | 3375 | drivers/scsi/aic7xxx.c | memcpy(scb->data_pointer, &cmd->request_buffer, sizeof(scb->data_pointer)); |
scb | 3376 | drivers/scsi/aic7xxx.c | memcpy(scb->data_count, &cmd->request_bufflen, 3); |
scb | 3396 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 3441 | drivers/scsi/aic7xxx.c | scb = p->free_scb; |
scb | 3442 | drivers/scsi/aic7xxx.c | if (scb != NULL) |
scb | 3444 | drivers/scsi/aic7xxx.c | p->free_scb = scb->next; /* remove and update head of list */ |
scb | 3452 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb->position]); |
scb | 3453 | drivers/scsi/aic7xxx.c | scb->control = 0; |
scb | 3454 | drivers/scsi/aic7xxx.c | scb->state = SCB_ACTIVE; |
scb | 3469 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[p->numscb]); |
scb | 3470 | drivers/scsi/aic7xxx.c | memset(scb, 0, sizeof(*scb)); |
scb | 3472 | drivers/scsi/aic7xxx.c | scb->position = p->numscb; |
scb | 3474 | drivers/scsi/aic7xxx.c | scb->state = SCB_ACTIVE; |
scb | 3475 | drivers/scsi/aic7xxx.c | scb->next_waiting = SCB_LIST_NULL; |
scb | 3476 | drivers/scsi/aic7xxx.c | memcpy(scb->host_scb, &scb, sizeof(scb)); |
scb | 3478 | drivers/scsi/aic7xxx.c | scb->control = SCB_NEEDDMA; |
scb | 3482 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 3483 | drivers/scsi/aic7xxx.c | aic7xxx_putdmascb(p->base, scb); |
scb | 3486 | drivers/scsi/aic7xxx.c | scb->control = 0; |
scb | 3490 | drivers/scsi/aic7xxx.c | scb->cmd = cmd; |
scb | 3491 | drivers/scsi/aic7xxx.c | aic7xxx_position(cmd) = scb->position; |
scb | 3497 | drivers/scsi/aic7xxx.c | aic7xxx_buildscb(p, cmd, scb); |
scb | 3500 | drivers/scsi/aic7xxx.c | if (scb != &p->scb_array[scb->position]) |
scb | 3505 | drivers/scsi/aic7xxx.c | scb->position, (unsigned int) scb->cmd, |
scb | 3506 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) p->free_scb); |
scb | 3523 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(p->base, scb); |
scb | 3526 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 3528 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(p->base, scb); |
scb | 3530 | drivers/scsi/aic7xxx.c | outb(scb->position, QINFIFO(p->base)); |
scb | 3584 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 3592 | drivers/scsi/aic7xxx.c | scb = &p->scb_array[aic7xxx_position(cmd)]; |
scb | 3612 | drivers/scsi/aic7xxx.c | if (scbsave[i] == scb->position) |
scb | 3639 | drivers/scsi/aic7xxx.c | if (active_scb != scb->position) |
scb | 3641 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 3734 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; /* mark the scb as free */ |
scb | 3735 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; /* clear the command pointer */ |
scb | 3736 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; /* preserve next pointer */ |
scb | 3737 | drivers/scsi/aic7xxx.c | p->free_scb = scb; /* add at head of free list */ |
scb | 347 | drivers/scsi/wd7000.c | struct scb *next; /* for lists of scbs */ |
scb | 601 | drivers/scsi/wd7000.c | register Scb *scb, *p; |
scb | 637 | drivers/scsi/wd7000.c | scb = scbfree; freescbs -= needed; |
scb | 645 | drivers/scsi/wd7000.c | return scb; |
scb | 649 | drivers/scsi/wd7000.c | static inline void free_scb( Scb *scb ) |
scb | 656 | drivers/scsi/wd7000.c | memset(scb, 0, sizeof(Scb)); |
scb | 657 | drivers/scsi/wd7000.c | scb->next = scbfree; scbfree = scb; |
scb | 808 | drivers/scsi/wd7000.c | register Scb *scb; /* for SCSI commands */ |
scb | 864 | drivers/scsi/wd7000.c | scb = (struct scb *) scsi2int((unchar *)icmbs[icmb].scbptr); |
scb | 866 | drivers/scsi/wd7000.c | if (!(scb->op & ICB_OP_MASK)) { /* an SCB is done */ |
scb | 867 | drivers/scsi/wd7000.c | SCpnt = scb->SCpnt; |
scb | 869 | drivers/scsi/wd7000.c | host_error = scb->vue | (icmb_status << 8); |
scb | 870 | drivers/scsi/wd7000.c | scsi_error = scb->status; |
scb | 874 | drivers/scsi/wd7000.c | free_scb(scb); |
scb | 879 | drivers/scsi/wd7000.c | icb = (IcbAny *) scb; |
scb | 893 | drivers/scsi/wd7000.c | register Scb *scb; |
scb | 904 | drivers/scsi/wd7000.c | scb = alloc_scbs(1); |
scb | 905 | drivers/scsi/wd7000.c | scb->idlun = idlun; |
scb | 906 | drivers/scsi/wd7000.c | memcpy(scb->cdb, cdb, cdblen); |
scb | 907 | drivers/scsi/wd7000.c | scb->direc = 0x40; /* Disable direction check */ |
scb | 909 | drivers/scsi/wd7000.c | scb->SCpnt = SCpnt; /* so we can find stuff later */ |
scb | 910 | drivers/scsi/wd7000.c | SCpnt->host_scribble = (unchar *) scb; |
scb | 911 | drivers/scsi/wd7000.c | scb->host = host; |
scb | 924 | drivers/scsi/wd7000.c | sgb = scb->sgb; |
scb | 925 | drivers/scsi/wd7000.c | scb->op = 1; |
scb | 926 | drivers/scsi/wd7000.c | any2scsi(scb->dataptr, (int) sgb); |
scb | 927 | drivers/scsi/wd7000.c | any2scsi(scb->maxlen, SCpnt->use_sg * sizeof (Sgb) ); |
scb | 934 | drivers/scsi/wd7000.c | scb->op = 0; |
scb | 935 | drivers/scsi/wd7000.c | any2scsi(scb->dataptr, (int) SCpnt->request_buffer); |
scb | 936 | drivers/scsi/wd7000.c | any2scsi(scb->maxlen, SCpnt->request_bufflen); |
scb | 938 | drivers/scsi/wd7000.c | while (!mail_out(host, scb)) /* keep trying */; |
scb | 969 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |
scb | 1081 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |