M pc/devfloppy.c => pc/devfloppy.c +1 -1
@@ 863,7 863,7 @@ floppyrecal(Drive *dp)
* if the controller or a specific drive is in a confused state,
* reset it and get back to a kown state
*/
-void
+static void
floppyrevive(void)
{
Drive *dp;
M pc/devi82365.c => pc/devi82365.c +2 -2
@@ 1265,7 1265,7 @@ memspace(Slot *pp, int asize, int lsize, int host)
}
}
-void
+static void
tentry(Slot *pp, int ttype)
{
uchar c, i, feature;
@@ 1338,7 1338,7 @@ tentry(Slot *pp, int ttype)
pp->configed++;
}
-void
+static void
tvers1(Slot *pp, int ttype)
{
uchar c, major, minor;
M pc/main.c => pc/main.c +4 -0
@@ 128,6 128,10 @@ init0(void)
strcat(tstr, " %s");
ksetterm(tstr);
ksetenv("cputype", "386");
+ if(cpuserver)
+ ksetenv("service", "cpu");
+ else
+ ksetenv("service", "terminal");
for(i = 0; i < nconf; i++)
if(confname[i])
ksetenv(confname[i], confval[i]);
M port/devcons.c => port/devcons.c +1 -1
@@ 931,7 931,7 @@ genrandom(void*)
}
}
-void
+static void
randominit(void)
{
rb.ep = rb.buf + sizeof(rb.buf);
M port/portfns.h => port/portfns.h +1 -1
@@ 14,7 14,6 @@ void authreply(Session*, ulong, Fcall*);
ulong authrequest(Session*, Fcall*);
long authwrite(Chan*, char*, int);
Page* auxpage(void);
-Block* bpad(Block*, int);
void buzz(int, int);
void cachedel(Image*, ulong);
void cachepage(Page*, Image*);
@@ 163,6 162,7 @@ int notify(Ureg*);
int nrand(int);
int okaddr(ulong, ulong, int);
int openmode(ulong);
+Block* padblock(Block*, int);
void pageinit(void);
void panic(char*, ...);
void pexit(char*, int);
M port/qio.c => port/qio.c +27 -13
@@ 170,25 170,39 @@ allocb(int size)
ulong bpadoverhead;
/*
- * pad a block to the front
+ * pad a block to the front (or the back if size is negative)
*/
Block*
-bpad(Block *bp, int size)
+padblock(Block *bp, int size)
{
int n;
Block *nbp;
- if(bp->rp - bp->base > size)
- return bp;
-
- n = bp->wp - bp->rp;
- bpadoverhead += n;
- nbp = allocb(size+n);
- nbp->rp += size;
- nbp->wp = nbp->rp;
- memmove(nbp->wp, bp->rp, n);
- nbp->wp += n;
- freeb(bp);
+ if(size >= 0){
+ if(bp->rp - bp->base >= size)
+ return bp;
+
+ n = bp->wp - bp->rp;
+ bpadoverhead += n;
+ nbp = allocb(size+n);
+ nbp->rp += size;
+ nbp->wp = nbp->rp;
+ memmove(nbp->wp, bp->rp, n);
+ nbp->wp += n;
+ freeb(bp);
+ } else {
+ size = -size;
+
+ if(bp->lim - bp->wp >= size)
+ return bp;
+
+ n = bp->wp - bp->rp;
+ bpadoverhead += n;
+ nbp = allocb(size+n);
+ memmove(nbp->wp, bp->rp, n);
+ nbp->wp += n;
+ freeb(bp);
+ }
return nbp;
}