tag | line | file | source code |
scb | 140 | drivers/net/apricot.c | struct i596_scb *scb; |
scb | 152 | drivers/net/apricot.c | struct i596_scb scb; |
scb | 201 | drivers/net/apricot.c | lp->scb.rfd = (struct i596_rfd *)I596_NULL; |
scb | 222 | drivers/net/apricot.c | rfd->next = lp->scb.rfd; |
scb | 223 | drivers/net/apricot.c | lp->scb.rfd = rfd; |
scb | 227 | drivers/net/apricot.c | lp->rx_tail->next = lp->scb.rfd; |
scb | 236 | drivers/net/apricot.c | struct i596_rfd *rfd = lp->scb.rfd; |
scb | 242 | drivers/net/apricot.c | lp->scb.rfd = rfd->next; |
scb | 244 | drivers/net/apricot.c | rfd = lp->scb.rfd; |
scb | 267 | drivers/net/apricot.c | lp->iscp.scb = &(lp->scb); |
scb | 271 | drivers/net/apricot.c | lp->cmd_head = lp->scb.cmd = (struct i596_cmd *) I596_NULL; |
scb | 283 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 287 | drivers/net/apricot.c | lp->scb.command = 0; |
scb | 301 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 305 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 309 | drivers/net/apricot.c | lp->scb.command = RX_START; |
scb | 313 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 317 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 332 | drivers/net/apricot.c | while ((lp->scb.rfd->stat) & STAT_C) |
scb | 334 | drivers/net/apricot.c | if (i596_debug >2) print_eth(lp->scb.rfd->data); |
scb | 336 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & STAT_OK) |
scb | 339 | drivers/net/apricot.c | int pkt_len = lp->scb.rfd->count & 0x3fff; |
scb | 352 | drivers/net/apricot.c | memcpy(skb_put(skb,pkt_len), lp->scb.rfd->data, pkt_len); |
scb | 363 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0001) lp->stats.collisions++; |
scb | 364 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0080) lp->stats.rx_length_errors++; |
scb | 365 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0100) lp->stats.rx_over_errors++; |
scb | 366 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0200) lp->stats.rx_fifo_errors++; |
scb | 367 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0400) lp->stats.rx_frame_errors++; |
scb | 368 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x0800) lp->stats.rx_crc_errors++; |
scb | 369 | drivers/net/apricot.c | if ((lp->scb.rfd->stat) & 0x1000) lp->stats.rx_length_errors++; |
scb | 372 | drivers/net/apricot.c | lp->scb.rfd->stat = 0; |
scb | 374 | drivers/net/apricot.c | lp->rx_tail = lp->scb.rfd; |
scb | 375 | drivers/net/apricot.c | lp->scb.rfd = lp->scb.rfd->next; |
scb | 430 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 434 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 438 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 448 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 452 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 459 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 465 | drivers/net/apricot.c | while ((lp->scb.status, lp->scb.command) || lp->scb.command) |
scb | 469 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 502 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 506 | drivers/net/apricot.c | lp->scb.status, lp->scb.command); |
scb | 510 | drivers/net/apricot.c | lp->scb.cmd = cmd; |
scb | 511 | drivers/net/apricot.c | lp->scb.command = CUC_START; |
scb | 517 | drivers/net/apricot.c | lp->cmd_head = lp->scb.cmd; |
scb | 595 | drivers/net/apricot.c | lp->scb.command = CUC_START|RX_START; |
scb | 738 | drivers/net/apricot.c | lp->scb.command = 0; |
scb | 739 | drivers/net/apricot.c | lp->scb.cmd = (struct i596_cmd *) I596_NULL; |
scb | 740 | drivers/net/apricot.c | lp->scb.rfd = (struct i596_rfd *)I596_NULL; |
scb | 770 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 773 | 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 | 776 | drivers/net/apricot.c | status = lp->scb.status; |
scb | 871 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 892 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 895 | 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 | 898 | drivers/net/apricot.c | lp->scb.command = ack_cmd; |
scb | 923 | drivers/net/apricot.c | dev->name, lp->scb.status); |
scb | 925 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 930 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 934 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 145 | drivers/net/ni52.c | if(!p->scb->cmd) break; \ |
scb | 188 | drivers/net/ni52.c | volatile struct scb_struct *scb; /* volatile is important */ |
scb | 292 | drivers/net/ni52.c | p->scb = (struct scb_struct *) (dev->mem_start); |
scb | 300 | drivers/net/ni52.c | p->iscp->scb_offset = make16(p->scb); |
scb | 311 | drivers/net/ni52.c | memset((char *)p->scb,0,sizeof(struct scb_struct)); |
scb | 464 | drivers/net/ni52.c | ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct)); |
scb | 487 | drivers/net/ni52.c | p->scb->cbl_offset = make16(cfg_cmd); |
scb | 489 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 513 | drivers/net/ni52.c | p->scb->cbl_offset = make16(ias_cmd); |
scb | 515 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 537 | drivers/net/ni52.c | p->scb->cbl_offset = make16(tdr_cmd); |
scb | 539 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 554 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 574 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 635 | drivers/net/ni52.c | p->scb->cbl_offset = make16(mc_cmd); |
scb | 636 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 680 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[0]); |
scb | 681 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 730 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 755 | drivers/net/ni52.c | while((stat=p->scb->status & STAT_MASK)) |
scb | 757 | drivers/net/ni52.c | p->scb->cmd = stat; |
scb | 770 | 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 | 776 | drivers/net/ni52.c | if(p->scb->status & RU_SUSPEND) /* special case: RU_SUSPEND */ |
scb | 779 | drivers/net/ni52.c | p->scb->cmd = RUC_RESUME; |
scb | 784 | drivers/net/ni52.c | printk("%s: Receiver-Unit went 'NOT READY': %04x/%04x.\n",dev->name,(int) stat,(int) p->scb->status); |
scb | 789 | drivers/net/ni52.c | if(p->scb->cmd) /* timed out? */ |
scb | 861 | drivers/net/ni52.c | p->scb->cmd = RUC_ABORT; /* usually the RU is in the 'no resource'-state .. abort it now. */ |
scb | 868 | drivers/net/ni52.c | printk("%s: Receive-Unit restarted. Status: %04x\n",dev->name,p->scb->status); |
scb | 930 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 931 | drivers/net/ni52.c | p->scb->cmd = RUC_START; |
scb | 954 | drivers/net/ni52.c | if(p->scb->status & CU_ACTIVE) /* COMMAND-UNIT active? */ |
scb | 961 | drivers/net/ni52.c | p->scb->cmd = CUC_ABORT; |
scb | 964 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[p->nop_point]); |
scb | 965 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 974 | drivers/net/ni52.c | printk("%s: xmitter timed out, try to restart! stat: %04x\n",dev->name,p->scb->status); |
scb | 1010 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->xmit_cmds[0]); |
scb | 1011 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 1019 | drivers/net/ni52.c | if( (p->scb->status & CU_ACTIVE)) /* test it, because CU sometimes doesn't start immediately */ |
scb | 1072 | drivers/net/ni52.c | crc = p->scb->crc_errs; /* get error-statistic from the ni82586 */ |
scb | 1073 | drivers/net/ni52.c | p->scb->crc_errs -= crc; |
scb | 1074 | drivers/net/ni52.c | aln = p->scb->aln_errs; |
scb | 1075 | drivers/net/ni52.c | p->scb->aln_errs -= aln; |
scb | 1076 | drivers/net/ni52.c | rsc = p->scb->rsc_errs; |
scb | 1077 | drivers/net/ni52.c | p->scb->rsc_errs -= rsc; |
scb | 1078 | drivers/net/ni52.c | ovrn = p->scb->ovrn_errs; |
scb | 1079 | drivers/net/ni52.c | p->scb->ovrn_errs -= ovrn; |
scb | 541 | drivers/net/wavelan.c | scb_t scb; |
scb | 588 | drivers/net/wavelan.c | memset(&scb, 0x00, sizeof(scb)); |
scb | 589 | drivers/net/wavelan.c | scb.scb_command = SCB_CMD_RESET; |
scb | 590 | drivers/net/wavelan.c | scb.scb_cbl_offset = OFFSET_CU; |
scb | 591 | drivers/net/wavelan.c | scb.scb_rfa_offset = OFFSET_RU; |
scb | 592 | drivers/net/wavelan.c | obram_write(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 616 | drivers/net/wavelan.c | obram_read(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 618 | drivers/net/wavelan.c | if (scb.scb_status == (SCB_ST_CX | SCB_ST_CNA)) |
scb | 626 | 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 | 2337 | drivers/net/wavelan.c | scb_t scb; |
scb | 2339 | drivers/net/wavelan.c | obram_read(ioaddr, OFFSET_SCB, (unsigned char *)&scb, sizeof(scb)); |
scb | 2347 | drivers/net/wavelan.c | (scb.scb_status & (SCB_ST_CX | SCB_ST_FR | SCB_ST_CNA | SCB_ST_RNR)) >> 12, |
scb | 2348 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CX) ? "cmd completion interrupt," : "", |
scb | 2349 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_FR) ? "frame received," : "", |
scb | 2350 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CNA) ? "cmd unit not active," : "", |
scb | 2351 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_RNR) ? "rcv unit not ready," : "" |
scb | 2356 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_CUS) >> 8, |
scb | 2357 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_IDLE) ? "idle" : "", |
scb | 2358 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_SUSP) ? "suspended" : "", |
scb | 2359 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_CUS) == SCB_ST_CUS_ACTV) ? "active" : "" |
scb | 2364 | drivers/net/wavelan.c | (scb.scb_status & SCB_ST_RUS) >> 4, |
scb | 2365 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_IDLE) ? "idle" : "", |
scb | 2366 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_SUSP) ? "suspended" : "", |
scb | 2367 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_NRES) ? "no resources" : "", |
scb | 2368 | drivers/net/wavelan.c | ((scb.scb_status & SCB_ST_RUS) == SCB_ST_RUS_RDY) ? "ready" : "" |
scb | 2375 | 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 | 2376 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_CX) ? "ack cmd completion," : "", |
scb | 2377 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_FR) ? "ack frame received," : "", |
scb | 2378 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_CNA) ? "ack CU not active," : "", |
scb | 2379 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_ACK_RNR) ? "ack RU not ready," : "" |
scb | 2384 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_CUC) >> 8, |
scb | 2385 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_NOP) ? "nop" : "", |
scb | 2386 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_GO) ? "start cbl_offset" : "", |
scb | 2387 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_RES) ? "resume execution" : "", |
scb | 2388 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_SUS) ? "suspend execution" : "", |
scb | 2389 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_CUC) == SCB_CMD_CUC_ABT) ? "abort execution" : "" |
scb | 2394 | drivers/net/wavelan.c | (scb.scb_command & SCB_CMD_RUC) >> 4, |
scb | 2395 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_NOP) ? "nop" : "", |
scb | 2396 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_GO) ? "start rfa_offset" : "", |
scb | 2397 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_RES) ? "resume reception" : "", |
scb | 2398 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_SUS) ? "suspend reception" : "", |
scb | 2399 | drivers/net/wavelan.c | ((scb.scb_command & SCB_CMD_RUC) == SCB_CMD_RUC_ABT) ? "abort reception" : "" |
scb | 2402 | drivers/net/wavelan.c | printk(" cbl_offset 0x%x", scb.scb_cbl_offset); |
scb | 2403 | drivers/net/wavelan.c | printk(" rfa_offset 0x%x", scb.scb_rfa_offset); |
scb | 2405 | drivers/net/wavelan.c | printk(" crcerrs %d", scb.scb_crcerrs); |
scb | 2406 | drivers/net/wavelan.c | printk(" alnerrs %d", scb.scb_alnerrs); |
scb | 2407 | drivers/net/wavelan.c | printk(" rscerrs %d", scb.scb_rscerrs); |
scb | 2408 | drivers/net/wavelan.c | printk(" ovrnerrs %d", scb.scb_ovrnerrs); |
scb | 1274 | drivers/scsi/aic7xxx.c | debug_scb(struct aic7xxx_scb *scb) |
scb | 1277 | drivers/scsi/aic7xxx.c | scb->control, scb->target_channel_lun, scb->SG_segment_count, |
scb | 1278 | drivers/scsi/aic7xxx.c | (scb->SG_list_pointer[3] << 24) | (scb->SG_list_pointer[2] << 16) | |
scb | 1279 | drivers/scsi/aic7xxx.c | (scb->SG_list_pointer[1] << 8) | scb->SG_list_pointer[0], |
scb | 1280 | drivers/scsi/aic7xxx.c | (scb->SCSI_cmd_pointer[3] << 24) | (scb->SCSI_cmd_pointer[2] << 16) | |
scb | 1281 | drivers/scsi/aic7xxx.c | (scb->SCSI_cmd_pointer[1] << 8) | scb->SCSI_cmd_pointer[0], |
scb | 1282 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length); |
scb | 1284 | drivers/scsi/aic7xxx.c | (scb->RESERVED[1] << 8) | scb->RESERVED[0], scb->target_status, |
scb | 1285 | drivers/scsi/aic7xxx.c | scb->residual_SG_segment_count, (scb->residual_data_count[2] << 16) | |
scb | 1286 | drivers/scsi/aic7xxx.c | (scb->residual_data_count[1] << 8) | scb->residual_data_count[0]); |
scb | 1288 | drivers/scsi/aic7xxx.c | (scb->data_pointer[3] << 24) | (scb->data_pointer[2] << 16) | |
scb | 1289 | drivers/scsi/aic7xxx.c | (scb->data_pointer[1] << 8) | scb->data_pointer[0], |
scb | 1290 | drivers/scsi/aic7xxx.c | (scb->data_count[2] << 16) | (scb->data_count[1] << 8) | scb->data_count[0], |
scb | 1291 | drivers/scsi/aic7xxx.c | (unsigned int) scb->host_scb, scb->next_waiting); |
scb | 1293 | drivers/scsi/aic7xxx.c | (unsigned long) scb->next, (unsigned long) scb->cmd, scb->state, |
scb | 1294 | drivers/scsi/aic7xxx.c | scb->position); |
scb | 1617 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(int base, struct aic7xxx_scb *scb) |
scb | 1624 | drivers/scsi/aic7xxx.c | outb(scb->position, QINFIFO(base)); |
scb | 1635 | drivers/scsi/aic7xxx.c | aic7xxx_putscb_dma(int base, struct aic7xxx_scb *scb) |
scb | 1649 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (31), "d" (SCBARRAY(base)) |
scb | 1663 | drivers/scsi/aic7xxx.c | aic7xxx_getscb(int base, struct aic7xxx_scb *scb) |
scb | 1674 | drivers/scsi/aic7xxx.c | :"D" (scb), "c" (SCB_UPLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 1691 | drivers/scsi/aic7xxx.c | aic7xxx_match_scb(struct aic7xxx_scb *scb, int target, char channel) |
scb | 1693 | drivers/scsi/aic7xxx.c | int targ = (scb->target_channel_lun >> 4) & 0x0F; |
scb | 1694 | drivers/scsi/aic7xxx.c | char chan = (scb->target_channel_lun & SELBUSB) ? 'B' : 'A'; |
scb | 1748 | drivers/scsi/aic7xxx.c | aic7xxx_done(struct aic7xxx_host *p, struct aic7xxx_scb *scb) |
scb | 1751 | drivers/scsi/aic7xxx.c | Scsi_Cmnd *cmd = scb->cmd; |
scb | 1768 | drivers/scsi/aic7xxx.c | scb->state = SCB_FREE; |
scb | 1769 | drivers/scsi/aic7xxx.c | scb->next = p->free_scb; |
scb | 1770 | drivers/scsi/aic7xxx.c | p->free_scb = &(p->scb_array[scb->position]); |
scb | 1771 | drivers/scsi/aic7xxx.c | scb->cmd = NULL; |
scb | 1787 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb, |
scb | 1801 | drivers/scsi/aic7xxx.c | head = scb->position; |
scb | 1808 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 1810 | drivers/scsi/aic7xxx.c | head = scb->position; |
scb | 1819 | drivers/scsi/aic7xxx.c | tail = scb->position; |
scb | 1831 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBARRAY(base) + 30); |
scb | 1832 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 1838 | drivers/scsi/aic7xxx.c | tail = scb->position; |
scb | 1858 | drivers/scsi/aic7xxx.c | aic7xxx_abort_waiting_scb(struct aic7xxx_host *p, struct aic7xxx_scb *scb, |
scb | 1862 | drivers/scsi/aic7xxx.c | int target = (scb->target_channel_lun >> 4) & 0x0F; |
scb | 1863 | drivers/scsi/aic7xxx.c | char channel = (scb->target_channel_lun & SELBUSB) ? 'B' : 'A'; |
scb | 1871 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 1902 | drivers/scsi/aic7xxx.c | if (inb(WAITING_SCBT(base)) == scb->position) |
scb | 1913 | drivers/scsi/aic7xxx.c | scb->state |= SCB_ABORTED; |
scb | 1914 | drivers/scsi/aic7xxx.c | scb->cmd->result = (DID_RESET << 16); |
scb | 1915 | drivers/scsi/aic7xxx.c | aic7xxx_done(p, scb); |
scb | 1937 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 1961 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[saved_queue[i]]); |
scb | 1962 | drivers/scsi/aic7xxx.c | if (aic7xxx_match_scb(scb, target, channel)) |
scb | 1967 | drivers/scsi/aic7xxx.c | scb->state |= SCB_ABORTED; |
scb | 1968 | drivers/scsi/aic7xxx.c | scb->cmd->result = (DID_RESET << 16); |
scb | 1969 | drivers/scsi/aic7xxx.c | aic7xxx_done(p, scb); |
scb | 1970 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 1996 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[next]); |
scb | 2000 | drivers/scsi/aic7xxx.c | if (aic7xxx_match_scb(scb, target, channel)) |
scb | 2002 | drivers/scsi/aic7xxx.c | next = aic7xxx_abort_waiting_scb(p, scb, prev, timedout_scb); |
scb | 2007 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 2022 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[i]); |
scb | 2023 | drivers/scsi/aic7xxx.c | if ((scb->state & SCB_ACTIVE) && aic7xxx_match_scb(scb, target, channel)) |
scb | 2029 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 2031 | drivers/scsi/aic7xxx.c | scb->state |= SCB_ABORTED; |
scb | 2032 | drivers/scsi/aic7xxx.c | scb->cmd->result = (DID_RESET << 16); |
scb | 2033 | drivers/scsi/aic7xxx.c | aic7xxx_done(p, scb); |
scb | 2185 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 2310 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2313 | drivers/scsi/aic7xxx.c | scb->cmd->device->tagged_supported = 0; |
scb | 2314 | drivers/scsi/aic7xxx.c | scb->cmd->device->tagged_queue = 0; |
scb | 2401 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2402 | drivers/scsi/aic7xxx.c | debug_scb(scb); |
scb | 2516 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2518 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2522 | drivers/scsi/aic7xxx.c | intstat, scb_index, scb->state, (unsigned int) scb->cmd); |
scb | 2526 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2527 | drivers/scsi/aic7xxx.c | aic7xxx_getscb(base, scb); |
scb | 2528 | drivers/scsi/aic7xxx.c | aic7xxx_status(cmd) = scb->target_status; |
scb | 2530 | drivers/scsi/aic7xxx.c | cmd->result |= scb->target_status; |
scb | 2532 | drivers/scsi/aic7xxx.c | switch (status_byte(scb->target_status)) |
scb | 2545 | drivers/scsi/aic7xxx.c | tcl = scb->target_channel_lun; |
scb | 2550 | drivers/scsi/aic7xxx.c | memcpy((void *) scb->sense_cmd, (void *) generic_sense, |
scb | 2553 | drivers/scsi/aic7xxx.c | scb->sense_cmd[1] = (cmd->lun << 5); |
scb | 2554 | drivers/scsi/aic7xxx.c | scb->sense_cmd[4] = sizeof(cmd->sense_buffer); |
scb | 2556 | drivers/scsi/aic7xxx.c | scb->sense_sg.address = (char *) &cmd->sense_buffer; |
scb | 2557 | drivers/scsi/aic7xxx.c | scb->sense_sg.length = sizeof(cmd->sense_buffer); |
scb | 2558 | drivers/scsi/aic7xxx.c | req_buf = &scb->sense_sg; |
scb | 2560 | drivers/scsi/aic7xxx.c | control = scb->control; |
scb | 2561 | drivers/scsi/aic7xxx.c | memset(scb, 0, SCB_DOWNLOAD_SIZE); |
scb | 2562 | drivers/scsi/aic7xxx.c | scb->control = control & SCB_DISCENB; |
scb | 2563 | drivers/scsi/aic7xxx.c | scb->target_channel_lun = tcl; |
scb | 2564 | drivers/scsi/aic7xxx.c | addr = scb->sense_cmd; |
scb | 2565 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length = COMMAND_SIZE(scb->sense_cmd[0]); |
scb | 2566 | drivers/scsi/aic7xxx.c | memcpy(scb->SCSI_cmd_pointer, &addr, |
scb | 2567 | drivers/scsi/aic7xxx.c | sizeof(scb->SCSI_cmd_pointer)); |
scb | 2568 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 1; |
scb | 2569 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &req_buf, |
scb | 2570 | drivers/scsi/aic7xxx.c | sizeof(scb->SG_list_pointer)); |
scb | 2571 | drivers/scsi/aic7xxx.c | scb->data_count[0] = scb->sense_sg.length & 0xFF; |
scb | 2572 | drivers/scsi/aic7xxx.c | scb->data_count[1] = (scb->sense_sg.length >> 8) & 0xFF; |
scb | 2573 | drivers/scsi/aic7xxx.c | scb->data_count[2] = (scb->sense_sg.length >> 16) & 0xFF; |
scb | 2574 | drivers/scsi/aic7xxx.c | memcpy(scb->data_pointer, &(scb->sense_sg.address), 4); |
scb | 2581 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (SCB_DOWNLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 2594 | drivers/scsi/aic7xxx.c | aic7xxx_add_waiting_scb(base, scb, LIST_HEAD); |
scb | 2626 | drivers/scsi/aic7xxx.c | scb->target_status); |
scb | 2638 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2639 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2643 | drivers/scsi/aic7xxx.c | intstat, scb_index, scb->state, (unsigned int) scb->cmd); |
scb | 2647 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2660 | drivers/scsi/aic7xxx.c | actual = aic7xxx_length(cmd, scb->residual_SG_segment_count); |
scb | 2673 | drivers/scsi/aic7xxx.c | aic7xxx_status(cmd) = scb->target_status; |
scb | 2681 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2682 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2686 | drivers/scsi/aic7xxx.c | intstat, scb_index, scb->state, (unsigned int) scb->cmd); |
scb | 2690 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2700 | drivers/scsi/aic7xxx.c | aic7xxx_done(p, scb); |
scb | 2706 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2707 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2711 | drivers/scsi/aic7xxx.c | intstat, scb_index, scb->state, (unsigned int) scb->cmd); |
scb | 2720 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_DEVICE_RESET) |
scb | 2739 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2742 | drivers/scsi/aic7xxx.c | scsi_id, scb_index, scb->state); |
scb | 2744 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_DEVICE_RESET) |
scb | 2781 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb_index]); |
scb | 2782 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2794 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2798 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2825 | drivers/scsi/aic7xxx.c | if (scb->target_channel_lun & 0x88) |
scb | 2868 | drivers/scsi/aic7xxx.c | aic7xxx_done(p, scb); |
scb | 2871 | drivers/scsi/aic7xxx.c | scb->position, scb->state, (unsigned int) scb->cmd); |
scb | 2893 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2907 | drivers/scsi/aic7xxx.c | scb = NULL; |
scb | 2926 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[complete]); |
scb | 2927 | drivers/scsi/aic7xxx.c | if ((scb->state != SCB_ACTIVE) || (scb->cmd == NULL)) |
scb | 2932 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, scb->position); |
scb | 2936 | drivers/scsi/aic7xxx.c | cmd = scb->cmd; |
scb | 2948 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, (unsigned int) p->free_scb); |
scb | 2961 | drivers/scsi/aic7xxx.c | aic7xxx_done(p, scb); |
scb | 2963 | drivers/scsi/aic7xxx.c | if (scb != &p->scb_array[scb->position]) |
scb | 2965 | drivers/scsi/aic7xxx.c | printk("aic7xxx: (complete) Address mismatch, pos(%d).\n", scb->position); |
scb | 2968 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) scb->cmd, (unsigned int) p->free_scb); |
scb | 4421 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb) |
scb | 4443 | drivers/scsi/aic7xxx.c | scb->control |= SCB_TE; |
scb | 4449 | drivers/scsi/aic7xxx.c | scb->control |= SCB_DISCENB; |
scb | 4454 | drivers/scsi/aic7xxx.c | scb->control |= SCB_NEEDWDTR; |
scb | 4464 | drivers/scsi/aic7xxx.c | scb->control |= SCB_NEEDSDTR; |
scb | 4476 | drivers/scsi/aic7xxx.c | scb->target_channel_lun = ((cmd->target << 4) & 0xF0) | |
scb | 4491 | drivers/scsi/aic7xxx.c | scb->SCSI_cmd_length = cmd->cmd_len; |
scb | 4492 | drivers/scsi/aic7xxx.c | memcpy(scb->SCSI_cmd_pointer, &addr, sizeof(scb->SCSI_cmd_pointer)); |
scb | 4500 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = cmd->use_sg; |
scb | 4501 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &cmd->request_buffer, |
scb | 4502 | drivers/scsi/aic7xxx.c | sizeof(scb->SG_list_pointer)); |
scb | 4504 | drivers/scsi/aic7xxx.c | memcpy(scb->data_pointer, &(sg[0].address), sizeof(scb->data_pointer)); |
scb | 4505 | drivers/scsi/aic7xxx.c | scb->data_count[0] = sg[0].length & 0xFF; |
scb | 4506 | drivers/scsi/aic7xxx.c | scb->data_count[1] = (sg[0].length >> 8) & 0xFF; |
scb | 4507 | drivers/scsi/aic7xxx.c | scb->data_count[2] = (sg[0].length >> 16) & 0xFF; |
scb | 4522 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 0; |
scb | 4523 | drivers/scsi/aic7xxx.c | memset(scb->SG_list_pointer, 0, sizeof(scb->SG_list_pointer)); |
scb | 4524 | drivers/scsi/aic7xxx.c | memset(scb->data_pointer, 0, sizeof(scb->data_pointer)); |
scb | 4525 | drivers/scsi/aic7xxx.c | memset(scb->data_count, 0, sizeof(scb->data_count)); |
scb | 4529 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 1; |
scb | 4530 | drivers/scsi/aic7xxx.c | scb->sg.address = (char *) cmd->request_buffer; |
scb | 4531 | drivers/scsi/aic7xxx.c | scb->sg.length = cmd->request_bufflen; |
scb | 4532 | drivers/scsi/aic7xxx.c | addr = &scb->sg; |
scb | 4533 | drivers/scsi/aic7xxx.c | memcpy(scb->SG_list_pointer, &addr, sizeof(scb->SG_list_pointer)); |
scb | 4534 | drivers/scsi/aic7xxx.c | scb->data_count[0] = scb->sg.length & 0xFF; |
scb | 4535 | drivers/scsi/aic7xxx.c | scb->data_count[1] = (scb->sg.length >> 8) & 0xFF; |
scb | 4536 | drivers/scsi/aic7xxx.c | scb->data_count[2] = (scb->sg.length >> 16) & 0xFF; |
scb | 4537 | drivers/scsi/aic7xxx.c | memcpy(scb->data_pointer, &cmd->request_buffer, sizeof(scb->data_pointer)); |
scb | 4554 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 4601 | drivers/scsi/aic7xxx.c | scb = p->free_scb; |
scb | 4602 | drivers/scsi/aic7xxx.c | if (scb != NULL) |
scb | 4604 | drivers/scsi/aic7xxx.c | p->free_scb = scb->next; /* remove and update head of list */ |
scb | 4612 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[scb->position]); |
scb | 4613 | drivers/scsi/aic7xxx.c | scb->control = 0; |
scb | 4614 | drivers/scsi/aic7xxx.c | scb->state = SCB_ACTIVE; |
scb | 4629 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[p->numscb]); |
scb | 4630 | drivers/scsi/aic7xxx.c | memset(scb, 0, sizeof(*scb)); |
scb | 4632 | drivers/scsi/aic7xxx.c | scb->position = p->numscb; |
scb | 4634 | drivers/scsi/aic7xxx.c | scb->state = SCB_ACTIVE; |
scb | 4635 | drivers/scsi/aic7xxx.c | scb->next_waiting = SCB_LIST_NULL; |
scb | 4636 | drivers/scsi/aic7xxx.c | memcpy(scb->host_scb, &scb, sizeof(scb)); |
scb | 4637 | drivers/scsi/aic7xxx.c | scb->control = SCB_NEEDDMA; |
scb | 4640 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(p->base)); |
scb | 4641 | drivers/scsi/aic7xxx.c | aic7xxx_putscb_dma(p->base, scb); |
scb | 4644 | drivers/scsi/aic7xxx.c | scb->control = 0; |
scb | 4648 | drivers/scsi/aic7xxx.c | scb->cmd = cmd; |
scb | 4649 | drivers/scsi/aic7xxx.c | aic7xxx_position(cmd) = scb->position; |
scb | 4651 | drivers/scsi/aic7xxx.c | debug_scb(scb); |
scb | 4658 | drivers/scsi/aic7xxx.c | aic7xxx_buildscb(p, cmd, scb); |
scb | 4661 | drivers/scsi/aic7xxx.c | if (scb != &p->scb_array[scb->position]) |
scb | 4667 | drivers/scsi/aic7xxx.c | scb->position, (unsigned int) scb->cmd, |
scb | 4668 | drivers/scsi/aic7xxx.c | scb->state, (unsigned int) p->free_scb); |
scb | 4684 | drivers/scsi/aic7xxx.c | aic7xxx_putscb(p->base, scb); |
scb | 4701 | drivers/scsi/aic7xxx.c | (long) cmd, (long) scb->cmd, scb->position); |
scb | 4719 | drivers/scsi/aic7xxx.c | aic7xxx_abort_scb(struct aic7xxx_host *p, struct aic7xxx_scb *scb, |
scb | 4725 | drivers/scsi/aic7xxx.c | char channel = scb->target_channel_lun & SELBUSB ? 'B': 'A'; |
scb | 4735 | drivers/scsi/aic7xxx.c | scb->position, (scb->state & SCB_ABORTED)); |
scb | 4743 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_ABORTED) |
scb | 4748 | drivers/scsi/aic7xxx.c | found = aic7xxx_reset_channel(p, channel, scb->position); |
scb | 4775 | drivers/scsi/aic7xxx.c | outb(scb->position, SCBPTR(base)); |
scb | 4779 | drivers/scsi/aic7xxx.c | printk ("aic7xxx: (abort_scb) scb %d is disconnected.\n", scb->position); |
scb | 4781 | drivers/scsi/aic7xxx.c | scb->state |= (SCB_DEVICE_RESET | SCB_ABORTED); |
scb | 4782 | drivers/scsi/aic7xxx.c | scb->SG_segment_count = 0; |
scb | 4783 | drivers/scsi/aic7xxx.c | memset(scb->SG_list_pointer, 0, sizeof(scb->SG_list_pointer)); |
scb | 4784 | drivers/scsi/aic7xxx.c | memset(scb->data_pointer, 0, sizeof(scb->data_pointer)); |
scb | 4785 | drivers/scsi/aic7xxx.c | memset(scb->data_count, 0, sizeof(scb->data_count)); |
scb | 4791 | drivers/scsi/aic7xxx.c | :"S" (scb), "c" (SCB_DOWNLOAD_SIZE), "d" (SCBARRAY(base)) |
scb | 4794 | drivers/scsi/aic7xxx.c | aic7xxx_error(scb->cmd) = errcode; |
scb | 4796 | drivers/scsi/aic7xxx.c | aic7xxx_add_waiting_scb(base, scb, LIST_SECOND); |
scb | 4819 | drivers/scsi/aic7xxx.c | aic7xxx_reset_channel(p, channel, scb->position); |
scb | 4834 | drivers/scsi/aic7xxx.c | if (active_scbp->target_channel_lun != scb->target_channel_lun) |
scb | 4844 | drivers/scsi/aic7xxx.c | aic7xxx_error(scb->cmd) = errcode; |
scb | 4858 | drivers/scsi/aic7xxx.c | aic7xxx_reset_channel(p, channel, scb->position); |
scb | 4876 | drivers/scsi/aic7xxx.c | struct aic7xxx_scb *scb; |
scb | 4882 | drivers/scsi/aic7xxx.c | scb = &(p->scb_array[aic7xxx_position(cmd)]); |
scb | 4888 | drivers/scsi/aic7xxx.c | printk ("aic7xxx: (abort_reset) scb state 0x%x\n", scb->state); |
scb | 4891 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_ACTIVE) |
scb | 4893 | drivers/scsi/aic7xxx.c | if (scb->state & SCB_IMMED) |
scb | 4900 | drivers/scsi/aic7xxx.c | aic7xxx_done (p, scb); |
scb | 4907 | drivers/scsi/aic7xxx.c | scb_status = aic7xxx_abort_scb(p, scb, errcode); |
scb | 354 | drivers/scsi/wd7000.c | struct scb *next; /* for lists of scbs */ |
scb | 608 | drivers/scsi/wd7000.c | register Scb *scb, *p; |
scb | 644 | drivers/scsi/wd7000.c | scb = scbfree; freescbs -= needed; |
scb | 652 | drivers/scsi/wd7000.c | return scb; |
scb | 656 | drivers/scsi/wd7000.c | static inline void free_scb( Scb *scb ) |
scb | 663 | drivers/scsi/wd7000.c | memset(scb, 0, sizeof(Scb)); |
scb | 664 | drivers/scsi/wd7000.c | scb->next = scbfree; scbfree = scb; |
scb | 815 | drivers/scsi/wd7000.c | register Scb *scb; /* for SCSI commands */ |
scb | 871 | drivers/scsi/wd7000.c | scb = (struct scb *) scsi2int((unchar *)icmbs[icmb].scbptr); |
scb | 873 | drivers/scsi/wd7000.c | if (!(scb->op & ICB_OP_MASK)) { /* an SCB is done */ |
scb | 874 | drivers/scsi/wd7000.c | SCpnt = scb->SCpnt; |
scb | 876 | drivers/scsi/wd7000.c | host_error = scb->vue | (icmb_status << 8); |
scb | 877 | drivers/scsi/wd7000.c | scsi_error = scb->status; |
scb | 881 | drivers/scsi/wd7000.c | free_scb(scb); |
scb | 886 | drivers/scsi/wd7000.c | icb = (IcbAny *) scb; |
scb | 900 | drivers/scsi/wd7000.c | register Scb *scb; |
scb | 911 | drivers/scsi/wd7000.c | scb = alloc_scbs(1); |
scb | 912 | drivers/scsi/wd7000.c | scb->idlun = idlun; |
scb | 913 | drivers/scsi/wd7000.c | memcpy(scb->cdb, cdb, cdblen); |
scb | 914 | drivers/scsi/wd7000.c | scb->direc = 0x40; /* Disable direction check */ |
scb | 916 | drivers/scsi/wd7000.c | scb->SCpnt = SCpnt; /* so we can find stuff later */ |
scb | 917 | drivers/scsi/wd7000.c | SCpnt->host_scribble = (unchar *) scb; |
scb | 918 | drivers/scsi/wd7000.c | scb->host = host; |
scb | 931 | drivers/scsi/wd7000.c | sgb = scb->sgb; |
scb | 932 | drivers/scsi/wd7000.c | scb->op = 1; |
scb | 933 | drivers/scsi/wd7000.c | any2scsi(scb->dataptr, (int) sgb); |
scb | 934 | drivers/scsi/wd7000.c | any2scsi(scb->maxlen, SCpnt->use_sg * sizeof (Sgb) ); |
scb | 941 | drivers/scsi/wd7000.c | scb->op = 0; |
scb | 942 | drivers/scsi/wd7000.c | any2scsi(scb->dataptr, (int) SCpnt->request_buffer); |
scb | 943 | drivers/scsi/wd7000.c | any2scsi(scb->maxlen, SCpnt->request_bufflen); |
scb | 945 | drivers/scsi/wd7000.c | while (!mail_out(host, scb)) /* keep trying */; |
scb | 976 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |
scb | 1088 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |