From bc28498260f41663c2bc337c133e79c60cf8fcbc Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 6 Nov 1999 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1999-11-06 --- pc/vga.c | 6 +++--- port/devdraw.c | 6 +++--- port/devsdp.c | 19 +++++++++++++++---- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/pc/vga.c b/pc/vga.c index 7732e446227d88e9760b0e25a166585fe6cabdd2..d7b72dc290227ed281c84da391ca2ca0f6580a6c 100644 --- a/pc/vga.c +++ b/pc/vga.c @@ -97,7 +97,7 @@ vgascreenputc(VGAscr* scr, char* buf, Rectangle *flushr) pos = 4-(pos%4); r = Rect(curpos.x, curpos.y, curpos.x+pos*w, curpos.y+h); memimagedraw(scr->gscreen, r, back, back->r.min, nil, ZP); - bbox(flushr, r); + combinerect(flushr, r); curpos.x += pos*w; break; @@ -107,7 +107,7 @@ vgascreenputc(VGAscr* scr, char* buf, Rectangle *flushr) xp--; r = Rect(*xp, curpos.y, curpos.x, curpos.y+h); memimagedraw(scr->gscreen, r, back, back->r.min, nil, ZP); - bbox(flushr, r); + combinerect(flushr, r); curpos.x = *xp; break; @@ -122,7 +122,7 @@ vgascreenputc(VGAscr* scr, char* buf, Rectangle *flushr) r = Rect(curpos.x, curpos.y, curpos.x+w, curpos.y+h); memimagedraw(scr->gscreen, r, back, back->r.min, nil, back->r.min); memimagestring(scr->gscreen, curpos, conscol, scr->memdefont, buf); - bbox(flushr, r); + combinerect(flushr, r); curpos.x += w; } // drawdebug = 0; diff --git a/port/devdraw.c b/port/devdraw.c index 9dc022356d50074c51ce3688c7412405e1d16b2e..57da6d6d8b1c94e98f8eadca10f8fa3179e18909 100644 --- a/port/devdraw.c +++ b/port/devdraw.c @@ -287,7 +287,7 @@ drawrefresh(Memimage *l, Rectangle r, void *v) d = x->dimage; for(ref=c->refresh; ref; ref=ref->next) if(ref->dimage == d){ - bbox(&ref->r, r); + combinerect(&ref->r, r); return; } ref = malloc(sizeof(Refresh)); @@ -314,7 +314,7 @@ addflush(Rectangle r) return; } nbb = flushrect; - bbox(&nbb, r); + combinerect(&nbb, r); ar = Dx(r)*Dy(r); abb = Dx(flushrect)*Dy(flushrect); anbb = Dx(nbb)*Dy(nbb); @@ -349,7 +349,7 @@ dstflush(int dstid, Memimage *dst, Rectangle r) Memlayer *l; if(dstid == 0){ - bbox(&flushrect, r); + combinerect(&flushrect, r); return; } l = dst->layer; diff --git a/port/devsdp.c b/port/devsdp.c index 9de273658f170c500b3c4e2666aca4841b16e450..65959f564f5a19e7c737a2ae9a47783a391f6107 100644 --- a/port/devsdp.c +++ b/port/devsdp.c @@ -1185,7 +1185,7 @@ print("dup sequence number: %ld (%ld %ld)\n", seq, c->in.seqwrap, seqdiff); if(0) print("coniput seq=%ulx\n", seq); if(c->in.auth != 0) { if(!(*c->in.auth)(&c->in, b->rp-4, BLEN(b)+4)) { -print("bad auth %d\n", BLEN(b)+4); +print("bad auth %ld\n", BLEN(b)+4); c->lstats.inBadAuth++; freeb(b); return nil; @@ -1686,9 +1686,17 @@ static Block * readdata(Conv *c, int n) { Block *b; + int nn; for(;;) { - b = convreadblock(c, n); + + // some slack for tunneling overhead + nn = n + 100; + + // make sure size is big enough for control messages + if(nn < 1000) + nn = 1000; + b = convreadblock(c, nn); if(b == nil) return nil; qlock(c); @@ -1699,8 +1707,11 @@ readdata(Conv *c, int n) b = conviput(c, b, 0); poperror(); qunlock(c); - if(b != nil) + if(b != nil) { + if(BLEN(b) > n) + b->wp = b->rp + n; return b; + } } } @@ -1726,7 +1737,7 @@ writedata(Conv *c, Block *b) c->lstats.outDataPackets++; c->lstats.outDataBytes += n; - if(c->out.comp != nil && 0) { + if(0 && c->out.comp != nil) { // must generate same value as convoput seq = (c->out.seq + 1) & (SeqMax-1);