~kris/9p

9hist

da8f42cbad2a0c93c8340dd4cf4a86a78d885fe8 — David du Colombier 34 years ago e668225
Plan 9 from Bell Labs 1992-06-07
5 files changed, 16 insertions(+), 11 deletions(-)

M port/devsrv.c
M port/pgrp.c
M port/sysfile.c
M port/sysproc.c
M power/main.c
M port/devsrv.c => port/devsrv.c +0 -1
@@ 218,7 218,6 @@ srvwrite(Chan *c, void *va, long n, ulong offset)
	i = c->qid.path;
	if(srv[i].chan != c)	/* already been written to */
		error(Egreg);
	close(c);
	srv[i].chan = c1;
	unlock(&srvlk);
	poperror();

M port/pgrp.c => port/pgrp.c +2 -0
@@ 177,12 177,14 @@ dupfgrp(Fgrp *f)

	new = newfgrp();

	lock(f);
	new->maxfd = f->maxfd;
	for(i = 0; i <= f->maxfd; i++)
		if(c = f->fd[i]){
			incref(c);
			new->fd[i] = c;
		}
	unlock(f);

	return new;
}

M port/sysfile.c => port/sysfile.c +6 -4
@@ 178,6 178,8 @@ fdclose(int fd, int flag)
			f->maxfd = i;

	unlock(f);
	if(c == 0)
		panic("fdclose");
	close(c);
}



@@ 390,7 392,7 @@ bindmount(ulong *arg, int ismount)
	ulong flag;
	long ret;
	char *p;
	int t;
	int t, fd;
	struct{
		Chan	*chan;
		char	*spec;


@@ 398,10 400,11 @@ bindmount(ulong *arg, int ismount)
	}bogus;

	flag = arg[2];
	fd = arg[0];
	if(flag>MMASK || (flag&MORDER)==(MBEFORE|MAFTER))
		error(Ebadarg);
	if(ismount){
		bogus.chan = fdtochan(arg[0], 2, 0);
		bogus.chan = fdtochan(fd, 2, 0);
		validaddr(arg[3], 1, 0);
		if(vmemchr((char*)arg[3], '\0', NAMELEN) == 0)
			error(Ebadarg);


@@ 436,8 439,7 @@ bindmount(ulong *arg, int ismount)
	poperror();
	close(c0);
	if(ismount)
		fdclose(arg[0], 0);

		fdclose(fd, 0);
	return ret;
}


M port/sysproc.c => port/sysproc.c +7 -6
@@ 85,8 85,12 @@ rfork(ulong flag)
				envcpy(p->egrp, oeg);
			closeegrp(oeg);
		}
		if(flag & RFFDG)
			error(Ebadarg);
		if(flag & RFFDG) {
			ofg = p->fgrp;
			p->fgrp = dupfgrp(ofg);
			closefgrp(ofg);
		}
		else
		if(flag & RFCFDG) {
			ofg = p->fgrp;
			p->fgrp = newfgrp();


@@ 136,7 140,6 @@ rfork(ulong flag)
		if(flag & RFFDG)
			p->fgrp = dupfgrp(parent->fgrp);
		else
		if(flag & RFCFDG)
			p->fgrp = newfgrp();
	}
	else {


@@ 150,8 153,7 @@ rfork(ulong flag)
			p->pgrp = newpgrp();
			pgrpcpy(p->pgrp, parent->pgrp);
		}
		else
		if(flag & RFCNAMEG) {
		else {
			p->pgrp = newpgrp();
			*p->pgrp->crypt = *parent->pgrp->crypt;
		}


@@ 168,7 170,6 @@ rfork(ulong flag)
			envcpy(p->egrp, parent->egrp);
		}
		else
		if(flag & RFCENVG)
			p->egrp = newegrp();
	}
	else {

M power/main.c => power/main.c +1 -0
@@ 61,6 61,7 @@ main(void)
	streaminit();
	swapinit();
	pageinit();
print("userinit\n");
	userinit();
	launchinit();
	schedinit();