| plan 9 kernel history: overview | file list | diff list |
1995/0713/pc/devether.c (diff list | history)
| 1995/0711/sys/src/9/pc/devether.c:103,117 – 1995/0713/sys/src/9/pc/devether.c:103,138 (short | long | prev | next) | ||
| 1993/1120 | void | |
| 1994/0702 | etherrloop(Ether *ctlr, Etherpkt *pkt, long len, int tome) | |
| 1993/1120 | { | |
| 1995/0713 | Block *bp; | |
| 1993/1120 | ushort type; | |
| 1995/0713 | int i; | |
| 1993/1120 | Netfile *f, **fp, **ep; type = (pkt->type[0]<<8)|pkt->type[1]; ep = &ctlr->f[Ntypes]; for(fp = ctlr->f; fp < ep; fp++){ | |
| 1994/0702 |
| |
| 1995/0711 |
| |
| 1995/0713 | if((f = *fp) && ((tome && f->type==type) || f->type < 0)){ if(f->type > -2){ if(qproduce(f->in, pkt->d, len) < 0) ctlr->soverflows++; } else { if(qwindow(f->in) <= 0) continue; if(len > 60) len = 60; bp = iallocb(len); if(bp == 0) continue; memmove(bp->wp, pkt->d, len); i = TK2MS(m->ticks); bp->wp[60] = i>>24; bp->wp[61] = i>>16; bp->wp[62] = i>>8; bp->wp[63] = i; bp->wp += 64; qpass(f->in, bp); } } | |
| 1993/1120 | } } | |