From 40dcfe9b658d75b94294d0e382d1511cde811f9e Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 8 Jul 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-07-08 --- pc/devincon.c | 10 +++++----- port/alloc.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pc/devincon.c b/pc/devincon.c index adc19857bb940556a61aad6a498d808cbd69dfd7..2024e26647a8667156baa1702c72692361c24997 100644 --- a/pc/devincon.c +++ b/pc/devincon.c @@ -968,15 +968,15 @@ nextin(Incon *ip, unsigned int c) int next; bp = ip->inb[ip->wi]; - bp->base[0] = ip->chan; - bp->base[1] = ip->chan>>8; - bp->base[2] = c; + bp->rptr[0] = ip->chan; + bp->rptr[1] = ip->chan>>8; + bp->rptr[2] = c; if(incondebug) showpkt("<-", ip->chan, c, bp, 3); next = (ip->wi+1)%Nin; if(next == ip->ri){ - bp->wptr = bp->base+3; + bp->wptr = bp->rptr+3; return bp; } ip->wi = next; @@ -1052,7 +1052,7 @@ rdpackets(Incon *ip) } } bp->wptr = p; - if(bp->wptr != bp->base+3) + if(bp->wptr != bp->rptr+3) nextin(ip, 0); if(first != ip->wi)/**/ diff --git a/port/alloc.c b/port/alloc.c index 49e28f2e7ee26f16d0ffad94e382016848d4514a..7eda037b3d89b16f8c95ba669d551cadfdd20d12 100644 --- a/port/alloc.c +++ b/port/alloc.c @@ -132,25 +132,29 @@ void* xspanalloc(ulong size, int align, ulong span) { int i, j; - ulong a, p; + ulong a, p, sinc; ulong ptr[Spanlist]; + sinc = span/8; span = ~(span-1); for(i = 0; i < Spanlist; i++) { p = (ulong)xalloc(size+align); if(p == 0) - panic("xspanalloc: size %d align %d span %d", size, align, span); + panic("xspanalloc: size %d align %d span %lux", size, align, span); a = p+align; a &= ~(align-1); if((a&span) == ((a+size)&span)) { for(j = 0; j < i; j++) - xfree((void*)ptr[j]); + if(ptr[j]) + xfree((void*)ptr[j]); return (void*)a; } - ptr[i] = p; + xfree((void*)p); + ptr[i] = (ulong)xalloc(sinc); } + USED(sinc); panic("xspanalloc: spanlist"); return 0; }