| plan 9 kernel history: overview | file list | diff list |
1992/0505/pc/devether.c (diff list | history)
| 1992/0503/sys/src/9/pc/devether.c:83,94 – 1992/0505/sys/src/9/pc/devether.c:83,93 (short | long | prev | next) | ||
| 1992/0424 | uchar ba[6]; /* broadcast address */ | |
| 1992/0403 | ||
| 1992/0424 | Rendez rr; /* rendezvous for a receive buffer */ | |
| 1992/0403 | ||
| 1992/0424 | Rendez tr; /* rendezvous for a transmit buffer */ | |
| 1992/0505 | QLock tlock; /* semaphore on th */ | |
| 1992/0424 | ushort th; /* first transmit buffer belonging to host */ ushort ti; /* first transmit buffer belonging to interface */ | |
| 1992/0503/sys/src/9/pc/devether.c:333,338 – 1992/0505/sys/src/9/pc/devether.c:332,338 | ||
| 1992/0410 | tp->prom = 0; tp->inuse = 0; netdisown(&tp->ctlr->net, tp - tp->ctlr->type); | |
| 1992/0505 | tp->ctlr = 0; | |
| 1992/0410 | qunlock(tp); | |
| 1992/0403 | } | |
| 1992/0503/sys/src/9/pc/devether.c:456,462 – 1992/0505/sys/src/9/pc/devether.c:456,462 | ||
| 1992/0403 | } | |
| 1992/0404 | cp->kproc = 1; | |
| 1992/0403 | for(;;){ | |
| 1992/0424 |
| |
| 1992/0505 | sleep(&cp->rr, isinput, cp); | |
| 1992/0424 | ||
| 1992/0406 | /* * process any internal loopback packets | |
| 1992/0503/sys/src/9/pc/devether.c:477,485 – 1992/0505/sys/src/9/pc/devether.c:477,482 | ||
| 1992/0424 | rb->owner = Interface; | |
| 1992/0502 | cp->rh = NEXT(cp->rh, cp->nrb); | |
| 1992/0424 | } | |
| 1992/0410 | ||
| 1992/0424 |
| |
| 1992/0410 | ||
| 1992/0503/sys/src/9/pc/devether.c:629,634 – 1992/0505/sys/src/9/pc/devether.c:626,643 | ||
| 1992/0424 | setvec(Ethervec, hw->intr); } | |
| 1992/0403 | ||
| 1992/0505 | static void dp8390rinit(Ctlr *cp) { Hw *hw = cp->hw; OUT(hw, w.cr, 0x21); /* Page0|RD2|STP */ OUT(hw, w.bnry, hw->pstart); OUT(hw, w.cr, 0x61); /* Page1|RD2|STP */ OUT(hw, curr, hw->pstart+1); OUT(hw, w.cr, 0x22); /* Page0|RD2|STA */ } | |
| 1992/0424 | /* * we leave the chip idling on internal loopback * and pointing to Page0. | |
| 1992/0503/sys/src/9/pc/devether.c:705,711 – 1992/0505/sys/src/9/pc/devether.c:714,726 | ||
| 1992/0424 | break; cp->inpackets++; p = &((Ring*)hw->ram)[next]; | |
| 1992/0501 |
| |
| 1992/0505 | len = ((p->len1<<8)|p->len0)-4; if(p->next < hw->pstart || p->next >= hw->pstop || len < 60){ print("%d: #%2.2ux #%2.2ux #%2.2ux #%2.2ux\n", next, p->status, p->next, p->len0, p->len1); dp8390rinit(cp); return; } | |
| 1992/0424 | rb = &cp->rb[cp->ri]; if(rb->owner == Interface){ | |