~kris/9p

9hist

540850800c7417167e74320d4f7319acc7ef114e — David du Colombier 36 years ago e55fcb9
Plan 9 from Bell Labs 1990-05-13
7 files changed, 19 insertions(+), 8 deletions(-)

M gnot/devpipe.c
M gnot/trap.c
M port/chan.c
M port/devmnt.c
M port/devpipe.c
M port/stream.c
M port/sysfile.c
M gnot/devpipe.c => gnot/devpipe.c +3 -1
@@ 129,7 129,9 @@ pipewrite(Chan *c, void *va, long n)
		postnote(u->p, 1, "sys: write on closed pipe", NExit);
		error(0, Egreg);
	}
	return streamwrite(c, va, n, 0);
	n = streamwrite(c, va, n, 0);
	poperror();
	return n;
}

void

M gnot/trap.c => gnot/trap.c +5 -3
@@ 5,6 5,7 @@
#include	"fns.h"
#include	"ureg.h"
#include	"io.h"
#include	"errno.h"

void	notify(Ureg*);
void	noted(Ureg**);


@@ 241,6 242,7 @@ syscall(Ureg *aur)
	ulong sp;
	ulong r0;
	Ureg *ur;
	char *msg;

	u->p->insyscall = 1;
	ur = aur;


@@ 263,8 265,8 @@ syscall(Ureg *aur)
	u->nerrlab = 0;
	ret = -1;
	if(!waserror()){
		if(r1 >= sizeof systab/BY2WD){
			pprint("bad sys call number %d pc %lux\n", r1, ((Ureg*)UREGADDR)->pc);
		if(r0 >= sizeof systab/BY2WD){
			pprint("bad sys call number %d pc %lux\n", r0, ((Ureg*)UREGADDR)->pc);
			msg = "bad sys call";
	    Bad:
			postnote(u->p, 1, msg, NDebug);


@@ 277,7 279,7 @@ syscall(Ureg *aur)
		}
		if(sp<(USTKTOP-BY2PG) || sp>(USTKTOP-4*BY2WD))
			validaddr(ur->sp, 4*BY2WD, 0);
		ret = (*systab[r1])((ulong*)(sp+2*BY2WD));
		ret = (*systab[r0])((ulong*)(sp+2*BY2WD));
	}
	u->nerrlab = 0;
	u->p->insyscall = 0;

M port/chan.c => port/chan.c +3 -1
@@ 490,8 490,10 @@ namec(char *name, int amode, int omode, ulong perm)

	switch(amode){
	case Aaccess:
		if((nc=walk(c, elem, mntok)) == 0)
		if((nc=walk(c, elem, mntok)) == 0){
			print("%d pc %lux\n", u->nerrlab, u->errlab[u->nerrlab-1].pc);
			error(0, Enonexist);
		}
		c = nc;
		break;


M port/devmnt.c => port/devmnt.c +2 -2
@@ 255,10 255,10 @@ mntclone(Chan *c, Chan *nc)
	nc->mnt = c->mnt;
	nc->mchan = c->mchan;
	nc->mqid = c->qid;
	if(new)
		poperror();
	mhfree(mh);
	poperror();
	if(new)
		poperror();
	incref(m);
	return nc;
}

M port/devpipe.c => port/devpipe.c +3 -1
@@ 129,7 129,9 @@ pipewrite(Chan *c, void *va, long n)
		postnote(u->p, 1, "sys: write on closed pipe", NExit);
		error(0, Egreg);
	}
	return streamwrite(c, va, n, 0);
	n = streamwrite(c, va, n, 0);
	poperror();
	return n;
}

void

M port/stream.c => port/stream.c +2 -0
@@ 192,6 192,8 @@ freeb(Block *bp)
	Bclass *bcp;
	int tries;

	if((bp->flags&S_CLASS) >= Nclass)
		panic("freeb class");
	bcp = &bclass[bp->flags & S_CLASS];
	lock(bcp);
	bp->rptr = bp->wptr = 0;

M port/sysfile.c => port/sysfile.c +1 -0
@@ 283,6 283,7 @@ sysstat(ulong *arg)
	validaddr(arg[0], 1, 0);
	c = namec((char*)arg[0], Aaccess, 0, 0);
	if(waserror()){
print("stat error\n");
		close(c);
		nexterror();
	}