M pc/dat.h => pc/dat.h +0 -1
@@ 76,7 76,6 @@ struct Conf
ulong base0; /* base of bank 0 */
ulong base1; /* base of bank 1 */
ulong copymode; /* 0 is copy on write, 1 is copy on reference */
- ulong arp; /* Arp table size */
ulong nfloppy; /* number of floppy drives */
ulong nhard; /* number of hard drives */
ulong ldepth; /* screen depth */
M pc/devvga.c => pc/devvga.c +4 -1
@@ 652,10 652,13 @@ atipage(int page)
outb(extreg, 0xb2);
outb(extreg+1, v);
}
+/*
+ * The following assumes that the new mode registers have been selected.
+ */
static void
tridentpage(int page)
{
- srout(0x0e, (srin(0xe)&0xf0) | page^0x02);
+ srout(0x0e, (srin(0x0e)&0xf0) | page^0x02);
}
static void
tsengpage(int page)
M pc/main.c => pc/main.c +0 -1
@@ 290,7 290,6 @@ confinit(void)
conf.nswap = conf.nproc*80;
conf.nimage = 50;
conf.copymode = 0; /* copy on write */
- conf.arp = 32;
conf.nfloppy = 2;
conf.nhard = 2;
}
M port/devarp.c => port/devarp.c +10 -5
@@ 66,6 66,11 @@ Dirtab arptab[]={
};
#define Narptab (sizeof(arptab)/sizeof(Dirtab))
+enum
+{
+ Narp= 64, /* size of arp cache */
+};
+
/*
* create a 2-level directory
*/
@@ 97,10 102,10 @@ arpreset(void)
{
Arpcache *ap, *ep;
- arp = xalloc(sizeof(Arpcache) * conf.arp);
+ arp = xalloc(sizeof(Arpcache) * Narp);
arphash = (Arpcache **)xalloc(sizeof(Arpcache *) * Arphashsize);
- ep = &arp[conf.arp];
+ ep = &arp[Narp];
for(ap = arp; ap < ep; ap++) {
ap->frwd = ap+1;
ap->prev = ap-1;
@@ 110,7 115,7 @@ arpreset(void)
arp[0].prev = 0;
arplruhead = arp;
- ap = &arp[conf.arp-1];
+ ap = &arp[Narp-1];
ap->frwd = 0;
arplrutail = ap;
newqinfo(&arpinfo);
@@ 211,7 216,7 @@ arpread(Chan *c, void *a, long n, ulong offset)
switch((int)(c->qid.path&~CHDIR)){
case arpdataqid:
bytes = c->offset;
- while(bytes < conf.arp*ARP_ENTRYLEN && n) {
+ while(bytes < Narp*ARP_ENTRYLEN && n) {
ap = &arp[bytes/ARP_ENTRYLEN];
part = bytes%ARP_ENTRYLEN;
@@ 388,7 393,7 @@ arpflush(void)
{
Arpcache *ap, *ep;
- ep = &arp[conf.arp];
+ ep = &arp[Narp];
for(ap = arp; ap < ep; ap++)
ap->status = ARP_FREE;
}
M port/devboot.c => port/devboot.c +1 -0
@@ 114,6 114,7 @@ bootwrite(Chan *c, void *buf, long n, ulong offset)
case Qboot:
pc = *(ulong*)buf;
splhi();
+ icflush(0, 64*1024);
gotopc(pc);
}
error(Ebadarg);
M power/conf.h => power/conf.h +0 -4
@@ 10,10 10,6 @@ Conftab conftab[] = {
{"base0", &conf.base0 },
{"base1", &conf.base1 },
{"copymode", &conf.copymode },
- {"ipif", &conf.ipif },
- {"ip", &conf.ip },
- {"arp", &conf.arp },
- {"frag", &conf.frag },
{"debugger", &conf.debugger },
{ 0, 0 },
};
M power/dat.h => power/dat.h +0 -4
@@ 46,10 46,6 @@ struct Conf
ulong base0; /* base of bank 0 */
ulong base1; /* base of bank 1 */
ulong copymode; /* 0 is copy on write, 1 is copy on reference */
- ulong ipif; /* Ip protocol interfaces */
- ulong ip; /* Ip conversations per interface */
- ulong arp; /* Arp table size */
- ulong frag; /* Ip fragment assemble queue size */
ulong debugger; /* use processor 1 as a kernel debugger */
};
M power/l.s => power/l.s +2 -7
@@ 181,18 181,13 @@ TEXT getcallerpc(SB), $0
MOVW 0(SP), R1
RET
-TEXT gotopc(SB), $8
+TEXT gotopc(SB), $-4
- MOVW R1, 0(FP) /* save arguments for later */
- MOVW $(64*1024), R7
- MOVW R7, 8(SP)
- JAL icflush(SB)
- MOVW 0(FP), R7
MOVW _argc(SB), R4
MOVW _argv(SB), R5
MOVW _env(SB), R6
MOVW R0, 4(SP)
- JMP (R7)
+ JMP (R1)
TEXT puttlb(SB), $4
M power/main.c => power/main.c +3 -6
@@ 519,6 519,8 @@ confinit(void)
conf.npage1 = 0;
conf.base1 = 0;
+ conf.nproc = 128 + 3*i;
+
ktop = PGROUND((ulong)end);
ktop = PADDR(ktop);
conf.npage0 -= ktop/BY2PG;
@@ 537,14 539,9 @@ confinit(void)
/*
* set minimal default values
*/
- conf.nmach = 2;
- conf.nproc = 100;
+ conf.nmach = 1;
conf.nswap = 262144;
conf.nimage = 200;
- conf.ipif = 8;
- conf.ip = 64;
- conf.arp = 32;
- conf.frag = 32;
confread();
M ss/dat.h => ss/dat.h +0 -4
@@ 85,10 85,6 @@ struct Conf
ulong nswap; /* number of swap blocks */
ulong upages; /* number of user pages */
int copymode; /* 0 is copy on write, 1 is copy on reference */
- ulong ipif; /* Ip protocol interfaces */
- ulong ip; /* Ip conversations per interface */
- ulong arp; /* Arp table size */
- ulong frag; /* Ip fragment assemble queue size */
};
M ss/main.c => ss/main.c +0 -4
@@ 477,10 477,6 @@ confinit(void)
conf.nswap = 16*MB/BY2PG;
conf.nimage = 50;
conf.copymode = 0; /* copy on write */
- conf.ipif = 8;
- conf.ip = 64;
- conf.arp = 32;
- conf.frag = 32;
if(cpuserver)
conf.nproc = 500;
}