~kris/9p

9hist

7a0a7959e0151b3a59106f373290e85213c09350 — David du Colombier 36 years ago b92f511
Plan 9 from Bell Labs 1990-07-22
M gnot/main.c => gnot/main.c +1 -1
@@ 306,7 306,7 @@ confinit(void)
	conf.nmnthdr = 2*conf.nmntdev;
	conf.nstream = 64;
	conf.nqueue = 5 * conf.nstream;
	conf.nblock = 12 * conf.nstream;
	conf.nblock = 24 * conf.nstream;
	conf.nsrv = 32*mul;
	conf.nbitmap = 100*mul;
	conf.nbitbyte = 300*1024*mul;

M gnot/proc.c => gnot/proc.c +1 -0
@@ 172,6 172,7 @@ loop:
		p->nchild = 0;
		p->child = 0;
		p->exiting = 0;
		p->fpstate = FPinit;
		memset(p->seg, 0, sizeof p->seg);
		lock(&pidalloc);
		p->pid = ++pidalloc.pid;

M port/devbit.c => port/devbit.c +32 -0
@@ 755,6 755,38 @@ bitwrite(Chan *c, void *va, long n)
			p += 22;
			break;

		case 'p':
			/*
			 * point
			 *
			 *	'p'		1
			 *	id		2
			 *	pt		8
			 *	value		1
			 *	code		2
			 */
			if(m < 14)
				error(0, Ebadblt);
			v = GSHORT(p+1);
			dst = &bit.map[v];
			if(v<0 || v>=conf.nbitmap || dst->ldepth<0)
				error(0, Ebadbitmap);
			off = 0;
			if(v == 0)
				off = 1;
			pt1.x = GLONG(p+3);
			pt1.y = GLONG(p+7);
			t = p[11];
			v = GSHORT(p+12);
			if(off && !isoff){
				cursoroff(1);
				isoff = 1;
			}
			point(dst, pt1, t, v);
			m -= 14;
			p += 14;
			break;

		case 'r':
			/*
			 * read

M port/devdk.c => port/devdk.c +6 -3
@@ 456,6 456,7 @@ dkmuxconfig(Dk *dp, Block *bp)
	 */
	dp->restart = 1;
	n = getfields((char *)bp->rptr, fields, 4, ' ');
	strcpy(dp->name, "dk");
	switch(n){
	case 4:
		strncpy(dp->name, fields[3], sizeof(dp->name));


@@ 494,7 495,7 @@ dkmuxconfig(Dk *dp, Block *bp)
	/*
	 *  start a process to deal with it
	 */
	sprint(buf, "**csckproc%d**", dp->ncsc);
	sprint(buf, "csckproc%d", dp->ncsc);
	kproc(buf, dkcsckproc, dp);
	poperror();



@@ 503,7 504,7 @@ dkmuxconfig(Dk *dp, Block *bp)
	 */
	if(dktimeron == 0){
		dktimeron = 1;
		kproc("**dktimer**", dktimer, 0);
		kproc("dktimer", dktimer, 0);
	}
}



@@ 592,8 593,10 @@ dkattach(char *spec)
	Dk *dp;

	/*
	 *  find a multiplexor with the same name
	 *  find a multiplexor with the same name (default dk)
	 */
	if(*spec == 0)
		spec = "dk";
	for(dp = dk; dp < &dk[Ndk]; dp++){
		qlock(dp);
		if(dp->wq && strcmp(spec, dp->name)==0) {

M port/devlance.c => port/devlance.c +1 -1
@@ 589,7 589,7 @@ lanceattach(char *spec)
	Chan *c;

	if(l.kstarted == 0){
		kproc("**lancekproc**", lancekproc, 0);
		kproc("lancekproc", lancekproc, 0);
		l.kstarted = 1;
		lancestart();
	}

M port/proc.c => port/proc.c +9 -3
@@ 171,6 171,7 @@ loop:
		p->nchild = 0;
		p->child = 0;
		p->exiting = 0;
		p->fpstate = FPinit;
		memset(p->pidonmach, 0, sizeof p->pidonmach);
		memset(p->seg, 0, sizeof p->seg);
		lock(&pidalloc);


@@ 577,6 578,7 @@ kproc(char *name, void (*func)(void *), void *arg)
	int lastvar;	/* used to compute stack address */
	User *up;
	KMap *k;
	static Pgrp *kpgrp;

	/*
	 * Kernel stack


@@ 614,12 616,16 @@ kproc(char *name, void (*func)(void *), void *arg)
		p->mach = m;
		m->proc = p;
		spllo();
		strncpy(p->text, name, sizeof p->text);
		(*func)(arg);
		pexit(0, 1);
	}
	p->pgrp = u->p->pgrp;
	incref(p->pgrp);
	if(kpgrp == 0){
		kpgrp = newpgrp();
		strcpy(kpgrp->user, "bootes");
	}
	p->pgrp = kpgrp;
	incref(kpgrp);
	sprint(p->text, "%s.%.6s", name, u->p->pgrp->user);
	p->nchild = 0;
	p->parent = 0;
	memset(p->time, 0, sizeof(p->time));

M port/sturp.c => port/sturp.c +1 -1
@@ 162,7 162,7 @@ urpopen(Queue *q, Stream *s)
	 */
	if(up->kstarted == 0){
		up->kstarted = 1;
		sprint(name, "**urp%d**", up - urp);
		sprint(name, "urp%d", up - urp);
		kproc(name, urpkproc, up);
	}
}

M power/boot.c => power/boot.c +2 -2
@@ 159,12 159,12 @@ boot(int ask)
	 */
	fd = open("#nnonet/2/data", 2);
	if(fd < 0) {
		prerror("opening #n/2/data");
		prerror("opening #nnonet/2/data");
		return;
	}
	cfd = open("#nnonet/2/ctl", 2);
	if(cfd < 0){
		prerror("opening #n/2/ctl");
		prerror("opening #nnonet/2/ctl");
		return;
	}
	if(write(cfd, scmd, strlen(scmd))<0){

M power/boot.h => power/boot.h +189 -189
@@ 1,7 1,7 @@
ulong bootcode[]={
	0x000000407,
	0x0000041f0,
	0x0000005d0,
	0x0000005d8,
	0x0000010d0,
	0x000000000,
	0x000001020,


@@ 209,17 209,17 @@ ulong bootcode[]={
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c1836c,
	0x023c18376,
	0x00c00078c,
	0x0afa10004,
	0x0a3c09656,
	0x023c29656,
	0x0a3c0965e,
	0x023c2965e,
	0x0afa20004,
	0x023c28656,
	0x023c2865e,
	0x00c000870,
	0x0afa20008,
	0x08fc38052,
	0x023c28656,
	0x023c2865e,
	0x0afa30004,
	0x0afa20008,
	0x0afa10024,


@@ 229,11 229,11 @@ ulong bootcode[]={
	0x000000027,
	0x01026000c,
	0x000000027,
	0x023c18373,
	0x023c1837d,
	0x0afa10004,
	0x00c00078c,
	0x0afa60008,
	0x023c1837b,
	0x023c18385,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,


@@ 241,7 241,7 @@ ulong bootcode[]={
	0x000400008,
	0x023bd0028,
	0x08fc38052,
	0x023c28656,
	0x023c2865e,
	0x0afa30004,
	0x0afa20008,
	0x020021000,


@@ 249,71 249,71 @@ ulong bootcode[]={
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c18385,
	0x023c1838f,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c28656,
	0x023c2865e,
	0x0afa20004,
	0x023c29656,
	0x023c2965e,
	0x0afa20008,
	0x0afa10024,
	0x00c000c0d,
	0x0afa1000c,
	0x014200019,
	0x000000027,
	0x023c1838e,
	0x023c18398,
	0x0afa10004,
	0x08fa20024,
	0x000000027,
	0x0afa20008,
	0x083c28656,
	0x083c2865e,
	0x000000027,
	0x0afa2000c,
	0x083c28657,
	0x083c2865f,
	0x000000027,
	0x0afa20010,
	0x083c28658,
	0x083c28660,
	0x000000027,
	0x0afa20014,
	0x083c28659,
	0x083c28661,
	0x00c00078c,
	0x0afa20018,
	0x023c183b1,
	0x023c183bb,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x083c29656,
	0x083c2965e,
	0x020030001,
	0x010430008,
	0x000000027,
	0x023c183bc,
	0x023c183c6,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c183c5,
	0x023c183cf,
	0x00c00078c,
	0x0afa10004,
	0x020010002,
	0x0a3c19656,
	0x0a3c1965e,
	0x020020076,
	0x0a3c29662,
	0x023c29656,
	0x0a3c2966a,
	0x023c2965e,
	0x0afa20004,
	0x023c28656,
	0x023c2865e,
	0x00c000870,
	0x0afa20008,
	0x08fc38052,
	0x023c28656,
	0x023c2865e,
	0x0afa30004,
	0x0afa20008,
	0x0afa10024,


@@ 323,7 323,7 @@ ulong bootcode[]={
	0x000000027,
	0x010230008,
	0x000000027,
	0x023c183d0,
	0x023c183da,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,


@@ 331,7 331,7 @@ ulong bootcode[]={
	0x000400008,
	0x023bd0028,
	0x08fc38052,
	0x023c28656,
	0x023c2865e,
	0x0afa30004,
	0x0afa20008,
	0x020021000,


@@ 339,68 339,68 @@ ulong bootcode[]={
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c183de,
	0x023c183e8,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c28656,
	0x023c2865e,
	0x0afa20004,
	0x023c29656,
	0x023c2965e,
	0x0afa20008,
	0x00c000c0d,
	0x0afa1000c,
	0x014200008,
	0x000000027,
	0x023c183eb,
	0x023c183f5,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x083c29656,
	0x083c2965e,
	0x020030003,
	0x010430008,
	0x000000027,
	0x023c183fa,
	0x023c18404,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x087c2965a,
	0x087c29662,
	0x000000027,
	0x01040000d,
	0x000000027,
	0x023c18407,
	0x023c18411,
	0x0afa10004,
	0x087c2965a,
	0x087c29662,
	0x00c00078c,
	0x0afa20008,
	0x023c18411,
	0x023c1841b,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c1841e,
	0x023c18428,
	0x00c00078c,
	0x0afa10004,
	0x023c18656,
	0x023c1865e,
	0x0afa10004,
	0x023c18426,
	0x023c18430,
	0x0afa10008,
	0x08fa2001c,
	0x000000027,
	0x08c430008,
	0x00c0007d6,
	0x0afa3000c,
	0x023c28656,
	0x023c2865e,
	0x0afa20004,
	0x020020001,
	0x0afa20008,


@@ 409,26 409,26 @@ ulong bootcode[]={
	0x0afa2000c,
	0x004210004,
	0x0afa10020,
	0x023c1842c,
	0x023c18436,
	0x00c0006ac,
	0x0afa10004,
	0x023c18656,
	0x023c1865e,
	0x0afa10004,
	0x023c18433,
	0x023c1843d,
	0x0afa10008,
	0x08fc28052,
	0x00c0007d6,
	0x0afa2000c,
	0x023c28656,
	0x023c2865e,
	0x00c000858,
	0x0afa20004,
	0x0afa10018,
	0x023c38656,
	0x023c3865e,
	0x00c000858,
	0x0afa30004,
	0x0afa10014,
	0x08fa30020,
	0x023c28656,
	0x023c2865e,
	0x0afa30004,
	0x0afa20008,
	0x08fa30014,


@@ 438,13 438,13 @@ ulong bootcode[]={
	0x000000027,
	0x010230004,
	0x000000027,
	0x023c18436,
	0x023c18440,
	0x00c0006ac,
	0x0afa10004,
	0x08fa20020,
	0x00c000ebd,
	0x0afa20004,
	0x023c2843c,
	0x023c28446,
	0x0afa20004,
	0x020020001,
	0x0afa20008,


@@ 453,26 453,26 @@ ulong bootcode[]={
	0x0afa2000c,
	0x004210004,
	0x0afa10020,
	0x023c18444,
	0x023c1844e,
	0x00c0006ac,
	0x0afa10004,
	0x023c18656,
	0x023c1865e,
	0x0afa10004,
	0x023c1844b,
	0x023c18455,
	0x0afa10008,
	0x08fc28052,
	0x00c0007d6,
	0x0afa2000c,
	0x023c28656,
	0x023c2865e,
	0x00c000858,
	0x0afa20004,
	0x0afa10018,
	0x023c38656,
	0x023c3865e,
	0x00c000858,
	0x0afa30004,
	0x0afa10014,
	0x08fa30020,
	0x023c28656,
	0x023c2865e,
	0x0afa30004,
	0x0afa20008,
	0x08fa30014,


@@ 482,41 482,41 @@ ulong bootcode[]={
	0x000000027,
	0x010230004,
	0x000000027,
	0x023c1844e,
	0x023c18458,
	0x00c0006ac,
	0x0afa10004,
	0x08fa20020,
	0x00c000ebd,
	0x0afa20004,
	0x023c18454,
	0x023c1845e,
	0x00c00078c,
	0x0afa10004,
	0x023c2845d,
	0x023c28467,
	0x0afa20004,
	0x023c2845f,
	0x023c28469,
	0x0afa20008,
	0x00c000eb8,
	0x0afa0000c,
	0x004210004,
	0x000000027,
	0x023c18461,
	0x023c1846b,
	0x00c0006ac,
	0x0afa10004,
	0x08fc38052,
	0x023c28466,
	0x023c28470,
	0x0afa30004,
	0x0afa20008,
	0x020020006,
	0x0afa2000c,
	0x023c28468,
	0x023c28472,
	0x00c000ed1,
	0x0afa20010,
	0x004210004,
	0x000000027,
	0x023c18469,
	0x023c18473,
	0x00c0006ac,
	0x0afa10004,
	0x023c1846f,
	0x023c18479,
	0x00c00078c,
	0x0afa10004,
	0x08fc28052,


@@ 526,28 526,28 @@ ulong bootcode[]={
	0x000000027,
	0x010400010,
	0x000000027,
	0x023c18478,
	0x023c18482,
	0x0afa10004,
	0x023c18483,
	0x023c1848d,
	0x0afa10008,
	0x023c18488,
	0x023c18492,
	0x0afa1000c,
	0x00c000864,
	0x0afa00010,
	0x023c1849b,
	0x023c184a5,
	0x00c0006ac,
	0x0afa10004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c1848b,
	0x023c18495,
	0x0afa10004,
	0x023c18496,
	0x023c184a0,
	0x0afa10008,
	0x00c000864,
	0x0afa0000c,
	0x023c1849b,
	0x023c184a5,
	0x00c0006ac,
	0x0afa10004,
	0x08fa20000,


@@ 628,14 628,14 @@ ulong bootcode[]={
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c2834d,
	0x023c28352,
	0x0afa20004,
	0x020020002,
	0x00c000ed6,
	0x0afa20008,
	0x004210008,
	0x0afc18016,
	0x023c1835b,
	0x023c18360,
	0x00c000699,
	0x0afa10004,
	0x08fa20000,


@@ 672,7 672,7 @@ ulong bootcode[]={
	0x0afa10008,
	0x020010002,
	0x0afa10004,
	0x023c184a6,
	0x023c184b0,
	0x0afa10008,
	0x08fa20058,
	0x023a10014,


@@ 691,7 691,7 @@ ulong bootcode[]={
	0x0afa10008,
	0x020010002,
	0x0afa10004,
	0x023c184b4,
	0x023c184be,
	0x0afa10008,
	0x08fa20058,
	0x023a10014,


@@ 707,20 707,20 @@ ulong bootcode[]={
	0x023bdfff0,
	0x0afbf0000,
	0x08fa30014,
	0x023c284c2,
	0x023c284cc,
	0x0afa30004,
	0x00c0007ef,
	0x0afa20008,
	0x010200024,
	0x000000027,
	0x08fa30014,
	0x023c284c4,
	0x023c284ce,
	0x0afa30004,
	0x00c0007ef,
	0x0afa20008,
	0x01020001d,
	0x000000027,
	0x023c5857e,
	0x023c58586,
	0x08ca30000,
	0x000000027,
	0x010600014,


@@ 748,12 748,12 @@ ulong bootcode[]={
	0x023bd0010,
	0x000400008,
	0x000000825,
	0x023c5857e,
	0x023c58586,
	0x08ca30000,
	0x000000027,
	0x01060000e,
	0x000000027,
	0x023c184c9,
	0x023c184d3,
	0x0afa10004,
	0x0afa5000c,
	0x08ca30000,


@@ 772,7 772,7 @@ ulong bootcode[]={
	0x000000825,
	0x023bdffec,
	0x0afbf0000,
	0x023c184cd,
	0x023c184d7,
	0x0afa10004,
	0x08fa20018,
	0x000000027,


@@ 793,7 793,7 @@ ulong bootcode[]={
	0x000000027,
	0x004210006,
	0x0afa10010,
	0x023c184d6,
	0x023c184e0,
	0x00c0006ac,
	0x0afa10004,
	0x08fa50010,


@@ 824,7 824,7 @@ ulong bootcode[]={
	0x000002025,
	0x028810021,
	0x010200011,
	0x023c585d2,
	0x023c585da,
	0x000040880,
	0x000250821,
	0x08c210000,


@@ 849,7 849,7 @@ ulong bootcode[]={
	0x000001825,
	0x028610021,
	0x01020000d,
	0x023c485d2,
	0x023c485da,
	0x000030880,
	0x000240821,
	0x08c210000,


@@ 881,7 881,7 @@ ulong bootcode[]={
	0x023bd0008,
	0x023bdfff0,
	0x0afbf0000,
	0x023c585d2,
	0x023c585da,
	0x020030020,
	0x004600010,
	0x000000027,


@@ 897,7 897,7 @@ ulong bootcode[]={
	0x00080f809,
	0x0ac200000,
	0x08fa3000c,
	0x023c585d2,
	0x023c585da,
	0x008000774,
	0x02463ffff,
	0x08fa20014,


@@ 2790,7 2790,7 @@ ulong bootcode[]={
	0x023bd0004,
	0x023bdfffc,
	0x08fc7808e,
	0x023c684fe,
	0x023c68506,
	0x083a2000b,
	0x000000027,
	0x03041007f,


@@ 2933,7 2933,7 @@ ulong bootcode[]={
	0x0afa8000c,
	0x0afab0024,
	0x0afab0010,
	0x023c184fe,
	0x023c18506,
	0x030a2007f,
	0x000220821,
	0x080220000,


@@ 4435,116 4435,118 @@ ulong bootcode[]={
	0x064617461,
	0x0006f7065,
	0x06e696e67,
	0x020236e2f,
	0x0322f6461,
	0x074610023,
	0x06e6e6f6e,
	0x065742f32,
	0x02f63746c,
	0x0006f7065,
	0x06e696e67,
	0x020236e2f,
	0x020236e6e,
	0x06f6e6574,
	0x02f322f64,
	0x061746100,
	0x0236e6e6f,
	0x06e65742f,
	0x0322f6374,
	0x06c006e6f,
	0x0702e2e2e,
	0x0006e203d,
	0x02025640a,
	0x000777269,
	0x07465206e,
	0x06f700072,
	0x065616420,
	0x06e6f7000,
	0x06e203d20,
	0x025643b20,
	0x062756620,
	0x03d20252e,
	0x032782025,
	0x02e327820,
	0x06c006f70,
	0x0656e696e,
	0x06720236e,
	0x06e6f6e65,
	0x0742f322f,
	0x063746c00,
	0x06e6f702e,
	0x02e2e006e,
	0x0203d2025,
	0x0640a0077,
	0x072697465,
	0x0206e6f70,
	0x000726561,
	0x064206e6f,
	0x070006e20,
	0x03d202564,
	0x03b206275,
	0x066203d20,
	0x0252e3278,
	0x020252e32,
	0x0780a0066,
	0x06f726d61,
	0x074206e6f,
	0x070006e6f,
	0x07420526e,
	0x06f700073,
	0x065737369,
	0x06f6e2e2e,
	0x02e007772,
	0x069746520,
	0x073657373,
	0x0696f6e00,
	0x072656164,
	0x020736573,
	0x073696f6e,
	0x07820252e,
	0x032782025,
	0x02e32780a,
	0x000666f72,
	0x06d617420,
	0x073657373,
	0x0696f6e00,
	0x06e6f7000,
	0x06e6f7420,
	0x052736573,
	0x0526e6f70,
	0x000736573,
	0x073696f6e,
	0x000657272,
	0x06f722025,
	0x0643b0072,
	0x0656d6f74,
	0x065206572,
	0x0726f7200,
	0x0706f7374,
	0x02e2e2e00,
	0x023732f25,
	0x073006372,
	0x065617465,
	0x000256400,
	0x077726974,
	0x065002373,
	0x02f626f6f,
	0x074006372,
	0x065617465,
	0x000256400,
	0x077726974,
	0x065006d6f,
	0x0756e742e,
	0x02e2e002f,
	0x0002f0062,
	0x0696e6400,
	0x02f00006d,
	0x06f756e74,
	0x000737563,
	0x063657373,
	0x00a002f6d,
	0x06970732f,
	0x0696e6974,
	0x000696e69,
	0x074002d6d,
	0x0002f6d69,
	0x070732f69,
	0x06e697400,
	0x0696e6974,
	0x0002f6d69,
	0x070732f69,
	0x065207365,
	0x07373696f,
	0x06e007265,
	0x061642073,
	0x065737369,
	0x06f6e0066,
	0x06f726d61,
	0x074207365,
	0x07373696f,
	0x06e006e6f,
	0x074205273,
	0x065737369,
	0x06f6e0065,
	0x072726f72,
	0x02025643b,
	0x00072656d,
	0x06f746520,
	0x06572726f,
	0x07200706f,
	0x073742e2e,
	0x02e002373,
	0x02f257300,
	0x063726561,
	0x074650025,
	0x064007772,
	0x069746500,
	0x023732f62,
	0x06f6f7400,
	0x063726561,
	0x074650025,
	0x064007772,
	0x069746500,
	0x06d6f756e,
	0x0742e2e2e,
	0x0002f002f,
	0x00062696e,
	0x064002f00,
	0x0006d6f75,
	0x06e740073,
	0x075636365,
	0x073730a00,
	0x02f6d6970,
	0x0732f696e,
	0x069740069,
	0x06e697400,
	0x0626f6f74,
	0x03a202573,
	0x03a202573,
	0x00a00626f,
	0x02d6d002f,
	0x06d697073,
	0x02f696e69,
	0x07400696e,
	0x06974002f,
	0x06d697073,
	0x02f696e69,
	0x07400626f,
	0x06f743a20,
	0x025733a20,
	0x025730a00,
	0x03f006865,
	0x06c700025,
	0x0730a0025,
	0x0735b2573,
	0x05d3a2000,
	0x063616e27,
	0x074207265,
	0x061642023,
	0x0632f636f,
	0x06e733b20,
	0x0706c6561,
	0x073652072,
	0x065626f6f,
	0x074000000,
	0x0626f6f74,
	0x03a202573,
	0x03a202573,
	0x00a003f00,
	0x068656c70,
	0x00025730a,
	0x00025735b,
	0x025735d3a,
	0x020006361,
	0x06e277420,
	0x072656164,
	0x02023632f,
	0x0636f6e73,
	0x03b20706c,
	0x065617365,
	0x020726562,
	0x06f6f7400,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 4599,8 4601,6 @@ ulong bootcode[]={
	0x000000000,
	0x000000000,
	0x000000000,
	0x000047e0,
	0x0,
	0x000047e0,
	0x000047e8,
	0x0,
};

M power/devhs.c => power/devhs.c +1 -1
@@ 260,7 260,7 @@ hsvmestopen(Queue *q, Stream *s)
	char name[32];

	hp = &hsvme[s->dev];
	sprint(name, "**hsvme%d**", s->dev);
	sprint(name, "hsvme%d", s->dev);
	q->ptr = q->other->ptr = hp;
	hp->rq = q;
	kproc(name, hsvmekproc, hp);

M power/errno.h => power/errno.h +1 -1
@@ 36,7 36,7 @@ enum{
	Etoosmall,	/* read or write too small */
	Ehungup,	/* write to hungup stream */
	Ebadnet,	/* illegal network address */
	Enoifc,		/* no free interface slots */
	Enoifc,		/* bad interface or no free interface slots */
	Enodev,		/* no free devices */
	Ebadctl,	/* bad process or stream control request */
	Enonote,	/* note overflow */

M power/trap.c => power/trap.c +9 -3
@@ 126,20 126,26 @@ trap(Ureg *ur)
		break;

	case CCPU:
		if(u->p->fpstate == FPinit) {
		if(u && u->p && u->p->fpstate == FPinit) {
			restfpregs(&initfp);
			u->p->fpstate = FPactive;
			ur->status |= CU1;
			break;
		}
		if(u->p->fpstate == FPinactive) {
		if(u && u->p && u->p->fpstate == FPinactive) {
			restfpregs(&u->fpsave);
			u->p->fpstate = FPactive;
			ur->status |= CU1;
			break;
		}
		goto Default;

	default:
		if(u && u->p && u->p->fpstate == FPactive){
			savefpregs(&u->fpsave);
			u->p->fpstate = FPinactive;
			ur->status &= ~CU1;
		}
	Default:
		/*
		 * This isn't good enough; can still deadlock because we may hold print's locks


@@ 433,7 439,7 @@ syscall(Ureg *aur)
	 * guarantee anything about registers,
	 */
	if(u->p->fpstate == FPactive) {
		u->p->fpstate = FPinit;		/* BUG */
		u->p->fpstate = FPinit;
		ur->status &= ~CU1;
	}
	spllo();