~kris/9p

9hist

c407d684036694b10ba922a6f6d5abca41e66400 — David du Colombier 32 years ago 7bcad35
Plan 9 from Bell Labs 1994-05-05
4 files changed, 33 insertions(+), 10 deletions(-)

M carrera/l.s
M pc/devhard.c
M pc/main.c
M port/qio.c
M carrera/l.s => carrera/l.s +2 -3
@@ 344,7 344,6 @@ utlbcom:
	TLBWR
	ERET
utlindex:
	MOVW	R0,(R0)
	TLBWI
	ERET



@@ 443,7 442,7 @@ TEXT	saveregs(SB), $-4
	MOVW	R2, 0x98(SP)
	/* save R5, R6 as 64 bits */
	ADDU	$(UREGSIZE-16), SP, R1
	MOVW	$~7, R2	/* don't let him use R28 */
	MOVW	$~7, R2			/* don't let him use R28 */
	AND		R2, R1
	STD		(5, 0,(1))
	STD		(6, 8,(1))


@@ 536,7 535,7 @@ TEXT	restregs(SB), $-4
	MOVW	R1, HI
	/* restore 64-bit R5, R6 */
	ADDU	$(UREGSIZE-16), SP, R1
	MOVW	$~7, R2	/* don't let him use R28 */
	MOVW	$~7, R2			/* don't let him use R28 */
	AND		R2, R1
	LD		(0,(1), 5)
	LD		(8,(1), 6)

M pc/devhard.c => pc/devhard.c +3 -0
@@ 1036,6 1036,9 @@ hardintr(Ureg *ur, void *arg)
		break;
	case Cinitparam:
	case Csetbuf:
	case Cidle:
	case Cstandby:
	case Cpowerdown:
		cp->lastcmd = cp->cmd;
		cp->cmd = 0;
		wakeup(&cp->r);

M pc/main.c => pc/main.c +25 -4
@@ 286,9 286,10 @@ getconf(char *name)
void
confinit(void)
{
	long x, i, j, n;
	long x, y, i, j, n;
	int pcnt;
	ulong ktop;
	long *lp;
	char *cp;
	char *line[MAXCONF];



@@ 345,10 346,30 @@ confinit(void)
			mmap[i] = 'x';
			/*
			 *  zero memory to set ECC but skip over the kernel
			 *  do a quick memory test also
			 */
			if(i != 1)
				for(j = 0; j < MB/BY2PG; j += BY2PG)
					memset(mapaddr(KZERO|(i*MB+j)), 0, BY2PG);
			if(i != 1){
				for(j = 0; j < MB/BY2PG; j += BY2PG){
					lp = mapaddr(KZERO|(i*MB+j));
					for(n = 0; n < BY2PG/BY2WD; n++)
						lp[n] = x + n;
				}
				for(j = 0; j < MB/BY2PG; j += BY2PG){
					lp = mapaddr(KZERO|(i*MB+j));
					for(n = 0; n < BY2PG/(2*BY2WD); n++){
						y = lp[n];
						lp[n] = ~lp[n^((BY2PG/BY2WD)-1)];
						lp[n^((BY2PG/BY2WD)-1)] = ~y;
					}
				}
				for(j = 0; j < MB/BY2PG; j += BY2PG){
					lp = mapaddr(KZERO|(i*MB+j));
					for(n = 0; n < BY2PG/BY2WD; n++)
						if(lp[n] != ~(x + (n^((BY2PG/BY2WD)-1))))
							mmap[i] = ' ';
					memset(lp, 0, BY2PG);
				}
			}
		}
		x += 0x3141526;
	}

M port/qio.c => port/qio.c +3 -3
@@ 80,12 80,12 @@ iallocb(int size)

	size = sizeof(Block) + size + (BY2V-1);
	if(ialloc.bytes > conf.ialloc){
iprint("whoops %d/%d\n", ialloc.bytes, conf.ialloc);
		iprint("ialloc limit exceeded %d/%d\n", ialloc.bytes, conf.ialloc);
		return 0;
	}
	b = mallocz(size, 0);
	if(b == 0){
iprint("malloc %d/%d\n", ialloc.bytes, conf.ialloc);
		iprint("iallocb: no memory %d/%d\n", ialloc.bytes, conf.ialloc);
		return 0;
	}
	memset(b, 0, sizeof(Block));


@@ 108,7 108,7 @@ iprint("malloc %d/%d\n", ialloc.bytes, conf.ialloc);
void
freeb(Block *b)
{
	if(b->intr){
	if(b->intr) {
		ilock(&ialloc);
		ialloc.bytes -= b->lim - b->base;
		iunlock(&ialloc);