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 | 357 | drivers/net/apricot.c | memcpy(skb_put(skb,pkt_len), lp->scb.rfd->data, pkt_len); |
scb | 368 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0001) lp->stats.collisions++; |
scb | 369 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0080) lp->stats.rx_length_errors++; |
scb | 370 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0100) lp->stats.rx_over_errors++; |
scb | 371 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0200) lp->stats.rx_fifo_errors++; |
scb | 372 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0400) lp->stats.rx_frame_errors++; |
scb | 373 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0800) lp->stats.rx_crc_errors++; |
scb | 374 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x1000) lp->stats.rx_length_errors++; |
scb | 377 | drivers/net/apricot.c | lp->scb.rfd->stat = 0; |
scb | 379 | drivers/net/apricot.c | lp->rx_tail = lp->scb.rfd; |
scb | 380 | drivers/net/apricot.c | lp->scb.rfd = lp->scb.rfd->next; |
scb | 435 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 439 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 443 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 453 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 457 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 464 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 470 | drivers/net/apricot.c | while ((lp->scb.status, lp->scb.command) || lp->scb.command) |
scb | 474 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 507 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 511 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 515 | drivers/net/apricot.c | lp->scb.cmd = cmd; |
scb | 516 | drivers/net/apricot.c | lp->scb.command = CUC_START; |
scb | 522 | drivers/net/apricot.c | lp->cmd_head = lp->scb.cmd; |
scb | 602 | drivers/net/apricot.c | lp->scb.command = CUC_START|RX_START; |
scb | 747 | drivers/net/apricot.c | lp->scb.command = 0; |
scb | 748 | drivers/net/apricot.c | lp->scb.cmd = (struct i596_cmd *) I596_NULL; |
scb | 749 | drivers/net/apricot.c | lp->scb.rfd = (struct i596_rfd *)I596_NULL; |
scb | 779 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 782 | 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 | 785 | drivers/net/apricot.c | status = lp->scb.status; |
scb | 880 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 901 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 904 | 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 | 907 | drivers/net/apricot.c | lp->scb.command = ack_cmd; |
scb | 932 | drivers/net/apricot.c | dev->name, lp->scb.status); |
scb | 934 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 939 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 943 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 143 | drivers/net/ni52.c | if(!p->scb->cmd) break; \ |
scb | 186 | drivers/net/ni52.c | volatile struct scb_struct *scb; /* volatile is important */ |
scb | 290 | drivers/net/ni52.c | p->scb = (struct scb_struct *) (dev->mem_start); |
scb | 298 | drivers/net/ni52.c | p->iscp->scb_offset = make16(p->scb); |
scb | 309 | drivers/net/ni52.c | memset((char *)p->scb,0,sizeof(struct scb_struct)); |
scb | 458 | drivers/net/ni52.c | ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct)); |
scb | 476 | drivers/net/ni52.c | p->scb->cbl_offset = make16(cfg_cmd); |
scb | 478 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 502 | drivers/net/ni52.c | p->scb->cbl_offset = make16(ias_cmd); |
scb | 504 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 526 | drivers/net/ni52.c | p->scb->cbl_offset = make16(tdr_cmd); |
scb | 528 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 543 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 563 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 620 | drivers/net/ni52.c | p->scb->cbl_offset = make16(mc_cmd); |
scb | 621 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 665 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[0]); |
scb | 666 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 715 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 740 | drivers/net/ni52.c | while((stat=p->scb->status & STAT_MASK)) |
scb | 742 | drivers/net/ni52.c | p->scb->cmd = stat; |
scb | 755 | 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 | 761 | drivers/net/ni52.c | if(p->scb->status & RU_SUSPEND) /* special case: RU_SUSPEND */ |
scb | 764 | drivers/net/ni52.c | p->scb->cmd = RUC_RESUME; |
scb | 769 | drivers/net/ni52.c | printk("%s: Receiver-Unit went 'NOT READY': %04x/%04x.\n",dev->name,(int) stat,(int) p->scb->status); |
scb | 774 | drivers/net/ni52.c | if(p->scb->cmd) /* timed out? */ |
scb | 846 | drivers/net/ni52.c | p->scb->cmd = RUC_ABORT; /* usually the RU is in the 'no resource'-state .. abort it now. */ |
scb | 853 | drivers/net/ni52.c | printk("%s: Receive-Unit restarted. Status: %04x\n",dev->name,p->scb->status); |
scb | 915 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 916 | drivers/net/ni52.c | p->scb->cmd = RUC_START; |
scb | 939 | drivers/net/ni52.c | if(p->scb->status & CU_ACTIVE) /* COMMAND-UNIT active? */ |
scb | 946 | drivers/net/ni52.c | p->scb->cmd = CUC_ABORT; |
scb | 949 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[p->nop_point]); |
scb | 950 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 959 | drivers/net/ni52.c | printk("%s: xmitter timed out, try to restart! stat: %04x\n",dev->name,p->scb->status); |
scb | 995 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->xmit_cmds[0]); |
scb | 996 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 1004 | drivers/net/ni52.c | if( (p->scb->status & CU_ACTIVE)) /* test it, because CU sometimes doesn't start immediately */ |
scb | 1057 | drivers/net/ni52.c | crc = p->scb->crc_errs; /* get error-statistic from the ni82586 */ |
scb | 1058 | drivers/net/ni52.c | p->scb->crc_errs -= crc; |
scb | 1059 | drivers/net/ni52.c | aln = p->scb->aln_errs; |
scb | 1060 | drivers/net/ni52.c | p->scb->aln_errs -= aln; |
scb | 1061 | drivers/net/ni52.c | rsc = p->scb->rsc_errs; |
scb | 1062 | drivers/net/ni52.c | p->scb->rsc_errs -= rsc; |
scb | 1063 | drivers/net/ni52.c | ovrn = p->scb->ovrn_errs; |
scb | 1064 | drivers/net/ni52.c | p->scb->ovrn_errs -= ovrn; |
scb | 546 | drivers/net/wavelan.c | scb_t scb; |
scb | 593 | drivers/net/wavelan.c | memset(&scb, 0x00, sizeof(scb)); |
scb | 594 | drivers/net/wavelan.c | scb.scb_command = SCB_CMD_RESET; |
scb | 595 | drivers/net/wavelan.c | scb.scb_cbl_offset = OFFSET_CU; |
scb | 596 | drivers/net/wavelan.c | scb.scb_rfa_offset = OFFSET_RU; |
scb | 597 | drivers/net/wavelan.c | obram_write(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 621 | drivers/net/wavelan.c | obram_read(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 623 | drivers/net/wavelan.c | if (scb.scb_status == (SCB_ST_CX | SCB_ST_CNA)) |
scb | 631 | 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 | 2350 | drivers/net/wavelan.c | scb_t scb; |
scb | 2352 | drivers/net/wavelan.c | obram_read(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 2360 | drivers/net/wavelan.c | (scb.scb_status & (SCB_ST_CX | SCB_ST_FR | SCB_ST_CNA | SCB_ST_RNR)) >> 12, |
scb | 2361 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CX) ? "cmd completion interrupt," : "", |
scb | 2362 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_FR) ? "frame received," : "", |
scb | 2363 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CNA) ? "cmd unit not active," : "", |
scb | 2364 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_RNR) ? "rcv unit not ready," : "" |
scb | 2369 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CUS) >> 8, |
scb | 2370 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_IDLE) ? "idle" : "", |
scb | 2371 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_SUSP) ? "suspended" : "", |
scb | 2372 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_ACTV) ? "active" : "" |
scb | 2377 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_RUS) >> 4, |
scb | 2378 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_IDLE) ? "idle" : "", |
scb | 2379 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_SUSP) ? "suspended" : "", |
scb | 2380 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_NRES) ? "no resources" : "", |
scb | 2381 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_RDY) ? "ready" : "" |
scb | 2388 | 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 | 2389 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_CX) ? "ack cmd completion," : "", |
scb | 2390 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_FR) ? "ack frame received," : "", |
scb | 2391 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_CNA) ? "ack CU not active," : "", |
scb | 2392 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_RNR) ? "ack RU not ready," : "" |
scb | 2397 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_CUC) >> 8, |
scb | 2398 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_NOP) ? "nop" : "", |
scb | 2399 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_GO) ? "start cbl_offset" : "", |
scb | 2400 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_RES) ? "resume execution" : "", |
scb | 2401 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_SUS) ? "suspend execution" : "", |
scb | 2402 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_ABT) ? "abort execution" : "" |
scb | 2407 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_RUC) >> 4, |
scb | 2408 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_NOP) ? "nop" : "", |
scb | 2409 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_GO) ? "start rfa_offset" : "", |
scb | 2410 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_RES) ? "resume reception" : "", |
scb | 2411 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_SUS) ? "suspend reception" : "", |
scb | 2412 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_ABT) ? "abort reception" : "" |
scb | 2415 | drivers/net/wavelan.c | printk(" cbl_offset 0x%x", scb.scb_cbl_offset); |
scb | 2416 | drivers/net/wavelan.c | printk(" rfa_offset 0x%x", scb.scb_rfa_offset); |
scb | 2418 | drivers/net/wavelan.c | printk(" crcerrs %d", scb.scb_crcerrs); |
scb | 2419 | drivers/net/wavelan.c | printk(" alnerrs %d", scb.scb_alnerrs); |
scb | 2420 | drivers/net/wavelan.c | printk(" rscerrs %d", scb.scb_rscerrs); |
scb | 2421 | drivers/net/wavelan.c | printk(" ovrnerrs %d", scb.scb_ovrnerrs); |
scb | 1268 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(int base, struct aic7xxx_scb *scb) |
scb | 1276 | drivers/scsi/aic7xxx.c | outb(scb->position, QINFIFO(base)); |
scb | 1290 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (SCB_DOWNLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1305 | drivers/scsi/aic7xxx.c | aic7xxx_putdmascb(int base, struct aic7xxx_scb *scb) |
scb | 1319 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (31), "d" (SCBARRAY(base)) |
scb | 1333 | drivers/scsi/aic7xxx.c | aic7xxx_getscb(int base, struct aic7xxx_scb *scb) |
scb | 1344 | drivers/scsi/aic7xxx.c | :"D" (scb), "c" (SCB_UPLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1430 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 1540 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1551 | drivers/scsi/aic7xxx.c | scb->cmd->device->tagged_supported = 0; |
scb | 1552 | drivers/scsi/aic7xxx.c | scb->cmd->device->tagged_queue = 0; |
scb | 1795 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1797 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1801 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1805 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 1806 | drivers/scsi/aic7xxx.c | aic7xxx_getscb(base, scb); |
scb | 1807 | drivers/scsi/aic7xxx.c | aic7xxx_status(cmd) = scb->target_status; |
scb | 1809 | drivers/scsi/aic7xxx.c | cmd->result = cmd->result | scb->target_status; |
scb | 1815 | drivers/scsi/aic7xxx.c | switch (status_byte(scb->target_status)) |
scb | 1833 | drivers/scsi/aic7xxx.c | memcpy((void *) scb->sense_cmd, (void *) generic_sense, |
scb | 1836 | drivers/scsi/aic7xxx.c | scb->sense_cmd[1] = cmd->lun << 5; |
scb | 1837 | drivers/scsi/aic7xxx.c | scb->sense_cmd[4] = sizeof(cmd->sense_buffer); |
scb | 1840 | drivers/scsi/aic7xxx.c | scb->sense_sg.address = (char *) &cmd->sense_buffer; |
scb | 1841 | drivers/scsi/aic7xxx.c | scb->sense_sg.length = sizeof(cmd->sense_buffer); |
scb | 1842 | drivers/scsi/aic7xxx.c | req_buf = &scb->sense_sg; |
scb | 1848 | drivers/scsi/aic7xxx.c | memset(scb, 0, SCB_DOWNLOAD_SIZE); |
scb | 1849 | drivers/scsi/aic7xxx.c | scb->target_channel_lun = ((cmd->target << 4) & 0xF0) | |
scb | 1851 | drivers/scsi/aic7xxx.c | addr = scb->sense_cmd; |
scb | 1852 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length = COMMAND_SIZE(scb->sense_cmd[0]); |
scb | 1853 | drivers/scsi/aic7xxx.c | memcpy(scb->SCSI_cmd_pointer, &addr, |
scb | 1854 | drivers/scsi/aic7xxx.c | sizeof(scb->SCSI_cmd_pointer)); |
scb | 1856 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 1; |
scb | 1857 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &req_buf, |
scb | 1858 | drivers/scsi/aic7xxx.c | sizeof(scb->SG_list_pointer)); |
scb | 1860 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 0; |
scb | 1861 | drivers/scsi/aic7xxx.c | memcpy(scb->data_pointer, &req_buf, |
scb | 1862 | drivers/scsi/aic7xxx.c | sizeof(scb->data_pointer)); |
scb | 1863 | drivers/scsi/aic7xxx.c | memcpy(scb->data_count, &req_buflen, 3); |
scb | 1871 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (SCB_DOWNLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1883 | drivers/scsi/aic7xxx.c | head = scb->position; |
scb | 1890 | drivers/scsi/aic7xxx.c | tail = scb->position; |
scb | 1897 | drivers/scsi/aic7xxx.c | tail = scb->position; |
scb | 1934 | drivers/scsi/aic7xxx.c | scb->target_status); |
scb | 1946 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1947 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1951 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1955 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 1968 | drivers/scsi/aic7xxx.c | actual = aic7xxx_length(cmd, scb->residual_SG_segment_count); |
scb | 1981 | drivers/scsi/aic7xxx.c | aic7xxx_status(cmd) = scb->target_status; |
scb | 1989 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 1990 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 1994 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 1998 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2018 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 2019 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 2020 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; /* preserve next pointer */ |
scb | 2021 | drivers/scsi/aic7xxx.c | p->free_scb = scb; /* add at head of list */ |
scb | 2031 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scbptr]); |
scb | 2032 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2036 | drivers/scsi/aic7xxx.c | intstat, scbptr, scb->state, (unsigned int) scb->cmd); |
scb | 2045 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_DEVICE_RESET) |
scb | 2072 | drivers/scsi/aic7xxx.c | scb = &p->scb_array[scbptr]; |
scb | 2073 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2085 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2089 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2116 | drivers/scsi/aic7xxx.c | if (scb->target_channel_lun & 0x88) |
scb | 2170 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 2171 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 2172 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; /* preserve next pointer */ |
scb | 2173 | drivers/scsi/aic7xxx.c | p->free_scb = scb; /* add at head of list */ |
scb | 2180 | drivers/scsi/aic7xxx.c | scb->position, scb->state, (unsigned int) scb->cmd); |
scb | 2205 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2219 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2238 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[complete]); |
scb | 2239 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2245 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd); |
scb | 2249 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2258 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, (unsigned int) p->free_scb); |
scb | 2267 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 2268 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; |
scb | 2269 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 2270 | drivers/scsi/aic7xxx.c | p->free_scb = &(p->scb_array[scb->position]); |
scb | 2274 | drivers/scsi/aic7xxx.c | if (scb != &p->scb_array[scb->position]) |
scb | 2276 | drivers/scsi/aic7xxx.c | printk("aic7xxx_isr: (complete) address mismatch, pos %d\n", scb->position); |
scb | 2279 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, (unsigned int) p->free_scb); |
scb | 3406 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb) |
scb | 3428 | drivers/scsi/aic7xxx.c | scb->control = scb->control | SCB_TE; |
scb | 3435 | drivers/scsi/aic7xxx.c | scb->control = scb->control | SCB_NEEDWDTR; |
scb | 3445 | drivers/scsi/aic7xxx.c | scb->control = scb->control | SCB_NEEDSDTR; |
scb | 3456 | drivers/scsi/aic7xxx.c | scb->target_channel_lun = ((cmd->target << 4) & 0xF0) | |
scb | 3481 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length = cmd->cmd_len; |
scb | 3482 | drivers/scsi/aic7xxx.c | memcpy(scb->SCSI_cmd_pointer, &addr, sizeof(scb->SCSI_cmd_pointer)); |
scb | 3490 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = cmd->use_sg; |
scb | 3491 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &cmd->request_buffer, |
scb | 3492 | drivers/scsi/aic7xxx.c | sizeof(scb->SG_list_pointer)); |
scb | 3501 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 1; |
scb | 3502 | drivers/scsi/aic7xxx.c | scb->sg.address = (char *) cmd->request_buffer; |
scb | 3503 | drivers/scsi/aic7xxx.c | scb->sg.length = cmd->request_bufflen; |
scb | 3504 | drivers/scsi/aic7xxx.c | addr = &scb->sg; |
scb | 3505 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &addr, sizeof(scb->SG_list_pointer)); |
scb | 3507 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 0; |
scb | 3508 | drivers/scsi/aic7xxx.c | memcpy(scb->data_pointer, &cmd->request_buffer, sizeof(scb->data_pointer)); |
scb | 3509 | drivers/scsi/aic7xxx.c | memcpy(scb->data_count, &cmd->request_bufflen, 3); |
scb | 3529 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 3574 | drivers/scsi/aic7xxx.c | scb = p->free_scb; |
scb | 3575 | drivers/scsi/aic7xxx.c | if (scb != NULL) |
scb | 3577 | drivers/scsi/aic7xxx.c | p->free_scb = scb->next; /* remove and update head of list */ |
scb | 3585 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb->position]); |
scb | 3586 | drivers/scsi/aic7xxx.c | scb->control = 0; |
scb | 3587 | drivers/scsi/aic7xxx.c | scb->state = SCB_ACTIVE; |
scb | 3602 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[p->numscb]); |
scb | 3603 | drivers/scsi/aic7xxx.c | memset(scb, 0, sizeof(*scb)); |
scb | 3605 | drivers/scsi/aic7xxx.c | scb->position = p->numscb; |
scb | 3607 | drivers/scsi/aic7xxx.c | scb->state = SCB_ACTIVE; |
scb | 3608 | drivers/scsi/aic7xxx.c | scb->next_waiting = SCB_LIST_NULL; |
scb | 3609 | drivers/scsi/aic7xxx.c | memcpy(scb->host_scb, &scb, sizeof(scb)); |
scb | 3611 | drivers/scsi/aic7xxx.c | scb->control = SCB_NEEDDMA; |
scb | 3615 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 3616 | drivers/scsi/aic7xxx.c | aic7xxx_putdmascb(p->base, scb); |
scb | 3619 | drivers/scsi/aic7xxx.c | scb->control = 0; |
scb | 3623 | drivers/scsi/aic7xxx.c | scb->cmd = cmd; |
scb | 3624 | drivers/scsi/aic7xxx.c | aic7xxx_position(cmd) = scb->position; |
scb | 3630 | drivers/scsi/aic7xxx.c | aic7xxx_buildscb(p, cmd, scb); |
scb | 3633 | drivers/scsi/aic7xxx.c | if (scb != &p->scb_array[scb->position]) |
scb | 3638 | drivers/scsi/aic7xxx.c | scb->position, (unsigned int) scb->cmd, |
scb | 3639 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) p->free_scb); |
scb | 3656 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(p->base, scb); |
scb | 3659 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 3661 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(p->base, scb); |
scb | 3663 | drivers/scsi/aic7xxx.c | outb(scb->position, QINFIFO(p->base)); |
scb | 3717 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 3725 | drivers/scsi/aic7xxx.c | scb = &p->scb_array[aic7xxx_position(cmd)]; |
scb | 3745 | drivers/scsi/aic7xxx.c | if (scbsave[i] == scb->position) |
scb | 3772 | drivers/scsi/aic7xxx.c | if (active_scb != scb->position) |
scb | 3774 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 3867 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; /* mark the scb as free */ |
scb | 3868 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; /* clear the command pointer */ |
scb | 3869 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; /* preserve next pointer */ |
scb | 3870 | 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); |