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 | 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 | 746 | drivers/net/apricot.c | lp->scb.command = 0; |
scb | 747 | drivers/net/apricot.c | lp->scb.cmd = (struct i596_cmd *) I596_NULL; |
scb | 748 | drivers/net/apricot.c | lp->scb.rfd = (struct i596_rfd *)I596_NULL; |
scb | 778 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 781 | 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 | 784 | drivers/net/apricot.c | status = lp->scb.status; |
scb | 879 | drivers/net/apricot.c | lp->scb.cmd = lp->cmd_head; |
scb | 900 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 903 | 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 | 906 | drivers/net/apricot.c | lp->scb.command = ack_cmd; |
scb | 931 | drivers/net/apricot.c | dev->name, lp->scb.status); |
scb | 933 | drivers/net/apricot.c | lp->scb.command = CUC_ABORT|RX_ABORT; |
scb | 938 | drivers/net/apricot.c | while (lp->scb.status, lp->scb.command) |
scb | 942 | drivers/net/apricot.c | dev->name, lp->scb.status, lp->scb.command); |
scb | 219 | drivers/net/ni52.c | volatile struct scb_struct *scb; /* volatile is important */ |
scb | 320 | drivers/net/ni52.c | p->scb = (struct scb_struct *) (dev->mem_start); |
scb | 328 | drivers/net/ni52.c | p->iscp->scb_offset = make16(p->scb); |
scb | 341 | drivers/net/ni52.c | memset((char *)p->scb,0,sizeof(struct scb_struct)); |
scb | 482 | drivers/net/ni52.c | ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct)); |
scb | 494 | drivers/net/ni52.c | p->scb->cbl_offset = make16(cfg_cmd); |
scb | 496 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 520 | drivers/net/ni52.c | p->scb->cbl_offset = make16(ias_cmd); |
scb | 522 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 544 | drivers/net/ni52.c | p->scb->cbl_offset = make16(tdr_cmd); |
scb | 546 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 561 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 581 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 645 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->nop_cmds[0]); |
scb | 646 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 648 | drivers/net/ni52.c | while(p->scb->cmd); |
scb | 705 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 741 | drivers/net/ni52.c | while((stat=p->scb->status & STAT_MASK)) |
scb | 743 | drivers/net/ni52.c | p->scb->cmd = stat; |
scb | 747 | drivers/net/ni52.c | printk("ni52-%04x/%04x-",(int) stat,(int) p->scb->status); /* debug */ |
scb | 760 | 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 | printk("%s: rnr: %04x/%04x.\n",dev->name,(int) stat,(int) p->scb->status); |
scb | 773 | drivers/net/ni52.c | while(p->scb->cmd) |
scb | 784 | drivers/net/ni52.c | if((l = p->scb->ovrn_errs - old_ovr)) |
scb | 916 | drivers/net/ni52.c | while(p->scb->cmd); /* wait for the last cmd */ |
scb | 917 | drivers/net/ni52.c | p->scb->cmd = RUC_ABORT; |
scb | 919 | drivers/net/ni52.c | while(p->scb->cmd); /* wait for accept cmd. */ |
scb | 983 | drivers/net/ni52.c | p->scb->rfa_offset = make16(p->rfd_first); |
scb | 984 | drivers/net/ni52.c | p->scb->cmd = RUC_START; |
scb | 986 | drivers/net/ni52.c | while(p->scb->cmd); /* wait for accept cmd. (no timeout!!) */ |
scb | 990 | drivers/net/ni52.c | p->scb->cmd = p->scb->status & STAT_MASK; |
scb | 1014 | drivers/net/ni52.c | printk("%s: xmitter timed out, try to restart! stat: %04x\n",dev->name,p->scb->status); |
scb | 1043 | drivers/net/ni52.c | p->scb->cbl_offset = make16(p->xmit_cmds[0]); |
scb | 1044 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 1048 | drivers/net/ni52.c | while(p->scb->cmd) |
scb | 1097 | drivers/net/ni52.c | printk("ni52: errs, crc %d, align %d, resource %d, ovrn %d.\n",(int) p->scb->crc_errs,(int) p->scb->aln_errs,(int) p->scb->rsc_errs,(int) p->scb->ovrn_errs); |
scb | 1113 | drivers/net/ni52.c | p->scb->cmd = CUC_SUSPEND; |
scb | 1115 | drivers/net/ni52.c | while(p->scb->cmd); |
scb | 1116 | drivers/net/ni52.c | p->scb->cmd = RUC_SUSPEND; |
scb | 1118 | drivers/net/ni52.c | while(p->scb->cmd); |
scb | 1137 | drivers/net/ni52.c | p->scb->cbl_offset = make16(cfg_cmd); |
scb | 1139 | drivers/net/ni52.c | p->scb->cmd = CUC_START; /* cmd.-unit start */ |
scb | 1141 | drivers/net/ni52.c | while(p->scb->cmd); |
scb | 1143 | drivers/net/ni52.c | p->scb->cbl_offset = p->nop_cmds[0]->cmd_link = make16(p->nop_cmds[0]); |
scb | 1144 | drivers/net/ni52.c | p->scb->cmd = CUC_START; |
scb | 1146 | drivers/net/ni52.c | while(p->scb->cmd); |
scb | 1147 | drivers/net/ni52.c | p->scb->cmd = RUC_RESUME; |
scb | 1149 | drivers/net/ni52.c | while(p->scb->cmd); |
scb | 337 | drivers/scsi/aha274x.c | void aha274x_getscb(int base, struct aha274x_scb *scb) |
scb | 348 | drivers/scsi/aha274x.c | :"D" (scb), "c" (sizeof(*scb)), "d" (O_SCBARRAY(base)) |
scb | 589 | drivers/scsi/aha274x.c | struct aha274x_scb scb; |
scb | 624 | drivers/scsi/aha274x.c | aha274x_getscb(base, &scb); |
scb | 629 | drivers/scsi/aha274x.c | cmd->result = scb.target_status | |
scb | 639 | drivers/scsi/aha274x.c | scb.residual_SG_segment_count); |
scb | 641 | drivers/scsi/aha274x.c | actual -= ((scb.residual_data_count[2] << 16) | |
scb | 642 | drivers/scsi/aha274x.c | (scb.residual_data_count[1] << 8) | |
scb | 643 | drivers/scsi/aha274x.c | (scb.residual_data_count[0])); |
scb | 650 | drivers/scsi/aha274x.c | cmd->result = scb.target_status | |
scb | 1061 | drivers/scsi/aha274x.c | struct aha274x_scb *scb) |
scb | 1066 | drivers/scsi/aha274x.c | memset(scb, 0, sizeof(*scb)); |
scb | 1071 | drivers/scsi/aha274x.c | scb->target_channel_lun = ((cmd->target << 4) & 0xf0) | |
scb | 1103 | drivers/scsi/aha274x.c | scb->SCSI_cmd_length = cmd->cmd_len; |
scb | 1104 | drivers/scsi/aha274x.c | memcpy(scb->SCSI_cmd_pointer, &addr, sizeof(scb->SCSI_cmd_pointer)); |
scb | 1112 | drivers/scsi/aha274x.c | scb->SG_segment_count = cmd->use_sg; |
scb | 1113 | drivers/scsi/aha274x.c | memcpy(scb->SG_list_pointer, |
scb | 1115 | drivers/scsi/aha274x.c | sizeof(scb->SG_list_pointer)); |
scb | 1117 | drivers/scsi/aha274x.c | scb->SG_segment_count = 0; |
scb | 1118 | drivers/scsi/aha274x.c | memcpy(scb->data_pointer, |
scb | 1120 | drivers/scsi/aha274x.c | sizeof(scb->data_pointer)); |
scb | 1121 | drivers/scsi/aha274x.c | memcpy(scb->data_count, |
scb | 1123 | drivers/scsi/aha274x.c | sizeof(scb->data_count)); |
scb | 1128 | drivers/scsi/aha274x.c | void aha274x_putscb(int base, struct aha274x_scb *scb) |
scb | 1142 | drivers/scsi/aha274x.c | :"S" (scb), "c" (sizeof(*scb)), "d" (O_SCBARRAY(base)) |
scb | 1153 | drivers/scsi/aha274x.c | struct aha274x_scb scb; |
scb | 1169 | drivers/scsi/aha274x.c | aha274x_buildscb(p, cmd, &scb); |
scb | 1215 | drivers/scsi/aha274x.c | aha274x_putscb(p->base, &scb); |
scb | 1267 | drivers/scsi/aha274x.c | int i, scb, found, queued; |
scb | 1276 | drivers/scsi/aha274x.c | for (scb = 0; scb < AHA274X_MAXSCB; scb++) |
scb | 1277 | drivers/scsi/aha274x.c | if (p->SCB_array[scb] == cmd) |
scb | 1280 | drivers/scsi/aha274x.c | if (scb == AHA274X_MAXSCB) |
scb | 1295 | drivers/scsi/aha274x.c | if (scbsave[i] == scb) { |
scb | 1315 | drivers/scsi/aha274x.c | if (inb(O_SCBPTR(p->base)) != scb) { |
scb | 1349 | drivers/scsi/aha274x.c | p->SCB_array[scb] = NULL; |
scb | 343 | drivers/scsi/wd7000.c | struct scb *next; /* for lists of scbs */ |
scb | 597 | drivers/scsi/wd7000.c | register Scb *scb, *p; |
scb | 633 | drivers/scsi/wd7000.c | scb = scbfree; freescbs -= needed; |
scb | 641 | drivers/scsi/wd7000.c | return scb; |
scb | 645 | drivers/scsi/wd7000.c | static inline void free_scb( Scb *scb ) |
scb | 652 | drivers/scsi/wd7000.c | memset(scb, 0, sizeof(Scb)); |
scb | 653 | drivers/scsi/wd7000.c | scb->next = scbfree; scbfree = scb; |
scb | 804 | drivers/scsi/wd7000.c | register Scb *scb; /* for SCSI commands */ |
scb | 860 | drivers/scsi/wd7000.c | scb = (struct scb *) scsi2int((unchar *)icmbs[icmb].scbptr); |
scb | 862 | drivers/scsi/wd7000.c | if (!(scb->op & ICB_OP_MASK)) { /* an SCB is done */ |
scb | 863 | drivers/scsi/wd7000.c | SCpnt = scb->SCpnt; |
scb | 865 | drivers/scsi/wd7000.c | host_error = scb->vue | (icmb_status << 8); |
scb | 866 | drivers/scsi/wd7000.c | scsi_error = scb->status; |
scb | 870 | drivers/scsi/wd7000.c | free_scb(scb); |
scb | 875 | drivers/scsi/wd7000.c | icb = (IcbAny *) scb; |
scb | 889 | drivers/scsi/wd7000.c | register Scb *scb; |
scb | 900 | drivers/scsi/wd7000.c | scb = alloc_scbs(1); |
scb | 901 | drivers/scsi/wd7000.c | scb->idlun = idlun; |
scb | 902 | drivers/scsi/wd7000.c | memcpy(scb->cdb, cdb, cdblen); |
scb | 903 | drivers/scsi/wd7000.c | scb->direc = 0x40; /* Disable direction check */ |
scb | 905 | drivers/scsi/wd7000.c | scb->SCpnt = SCpnt; /* so we can find stuff later */ |
scb | 906 | drivers/scsi/wd7000.c | SCpnt->host_scribble = (unchar *) scb; |
scb | 907 | drivers/scsi/wd7000.c | scb->host = host; |
scb | 920 | drivers/scsi/wd7000.c | sgb = scb->sgb; |
scb | 921 | drivers/scsi/wd7000.c | scb->op = 1; |
scb | 922 | drivers/scsi/wd7000.c | any2scsi(scb->dataptr, (int) sgb); |
scb | 923 | drivers/scsi/wd7000.c | any2scsi(scb->maxlen, SCpnt->use_sg * sizeof (Sgb) ); |
scb | 930 | drivers/scsi/wd7000.c | scb->op = 0; |
scb | 931 | drivers/scsi/wd7000.c | any2scsi(scb->dataptr, (int) SCpnt->request_buffer); |
scb | 932 | drivers/scsi/wd7000.c | any2scsi(scb->maxlen, SCpnt->request_bufflen); |
scb | 934 | drivers/scsi/wd7000.c | while (!mail_out(host, scb)) /* keep trying */; |
scb | 965 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |
scb | 1076 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |