From c23700a257bb12dd28650c071305eab6d31cc31c Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 8 Aug 1998 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1998-08-08 --- ip/ethermedium.c | 1 - ip/tcp.c | 5 ++++- port/devcons.c | 48 ++++-------------------------------------------- 3 files changed, 8 insertions(+), 46 deletions(-) diff --git a/ip/ethermedium.c b/ip/ethermedium.c index 068a041f15567e991350a63bdc41f0eb5ee27fdf..32b8b4944075e1eac92db36ff395ed3e5738591d 100644 --- a/ip/ethermedium.c +++ b/ip/ethermedium.c @@ -286,7 +286,6 @@ etherread(void *a) else ipiput(er->f, ifc->lifc->local, bp); runlock(ifc); locked = 0; USED(locked); - } } diff --git a/ip/tcp.c b/ip/tcp.c index d01d3be21b51252b59c4910d4a53bfa4a598711d..ee2ec943ef9704fceeaf742847230009650c5b47 100644 --- a/ip/tcp.c +++ b/ip/tcp.c @@ -1794,6 +1794,7 @@ void addreseq(Tcpctl *tcb, Tcp *seg, Block *bp, ushort length) { Reseq *rp, *rp1; + int i; rp = malloc(sizeof(Reseq)); if(rp == nil){ @@ -1813,7 +1814,9 @@ addreseq(Tcpctl *tcb, Tcp *seg, Block *bp, ushort length) return; } - for(;;) { + for(i = 0;; i++) { + if(i > 100) + print("very long tcp resequence queue\n"); if(rp1->next == nil || seq_lt(seg->seq, rp1->next->seg.seq)) { rp->next = rp1->next; rp1->next = rp; diff --git a/port/devcons.c b/port/devcons.c index 22d7170a110cfd5224ef8863eab61cf14bffcc6b..0667fabb3e94003b64e4726880bd225ddf18dae5 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -32,10 +32,6 @@ char sysname[NAMELEN]; static ulong randomread(void*, ulong); static void randominit(void); static void seedrand(void); -static long qtimer(long, vlong); - -int qtimerentry = -1; -vlong µoffset; void printinit(void) @@ -212,6 +208,7 @@ echo(Rune r, char *buf, int n) { static int ctrlt, pid; extern ulong etext; + int x; /* * ^p hack @@ -243,7 +240,9 @@ echo(Rune r, char *buf, int n) consdebug(); return; case 'p': + x = spllo(); procdump(); + splx(x); return; case 'q': scheddump(); @@ -361,7 +360,6 @@ enum{ Qsysname, Qsysstat, Qtime, - Qtimer, Quser, }; @@ -390,8 +388,7 @@ static Dirtab consdir[]={ "sysname", {Qsysname}, 0, 0664, "sysstat", {Qsysstat}, 0, 0666, "time", {Qtime}, NUMSIZE, 0664, - "timer", {Qtimer}, 0, 0444, - "user", {Quser}, NAMELEN, 0666, + "user", {Quser}, NAMELEN, 0666, }; ulong boottime; /* seconds since epoch at boot */ @@ -450,13 +447,6 @@ static void consinit(void) { randominit(); - - if (qtimerentry < 0) { - while (consdir[++qtimerentry].qid.path != Qtimer) - ; - µoffset = (vlong)1000000*rtctime() - - (vlong)1000*TK2MS(MACHP(0)->ticks); - } } static Chan* @@ -474,9 +464,6 @@ conswalk(Chan *c, char *name) static void consstat(Chan *c, char *dp) { - if (c->qid.path == Qtimer) - consdir[qtimerentry].length = µoffset + - (vlong)1000*TK2MS(MACHP(0)->ticks); devstat(c, dp, consdir, nelem(consdir), devgen); } @@ -532,8 +519,6 @@ consread(Chan *c, void *buf, long n, vlong off) return n; switch(c->qid.path & ~CHDIR){ case Qdir: - consdir[qtimerentry].length = µoffset + - (vlong)1000*TK2MS(MACHP(0)->ticks); return devdirread(c, buf, n, consdir, nelem(consdir), devgen); case Qcons: @@ -621,9 +606,6 @@ consread(Chan *c, void *buf, long n, vlong off) case Qtime: return readnum((ulong)offset, buf, n, rtctime(), 12); - case Qtimer: - return qtimer(n, offset); - case Qclock: k = offset; if(k >= 2*NUMSIZE) @@ -881,10 +863,6 @@ conswrite(Chan *c, void *va, long n, vlong off) sysname[n-1] = 0; break; - case Qtimer: - error(Eperm); - break; - default: print("conswrite: %d\n", c->qid.path); error(Egreg); @@ -1075,21 +1053,3 @@ randomread(void *xp, ulong n) return n; } - -static long -qtimer(long n, vlong offset) -{ - /* block until time ≥ offset; - * add n to offset - * return increment to offset (i.e., n) - */ - vlong time, rathole; - - for (;;) { - rathole = µoffset/1000; - time = offset/1000 - (rathole + TK2MS(MACHP(0)->ticks)); - if (time <= 0) break; - tsleep(&up->sleep, return0, 0, (long)time); - } - return n; -}