plan 9 kernel history: overview | file list | diff list

2001/0510/port/devenv.c (diff list | history)

2001/0510/sys/src/9/port/devenv.c:12,242001/0527/sys/src/9/port/devenv.c:12,24 (short | long | prev | next)
1990/0227    
}; 
 
1997/0327    
static int 
1995/0804    
envgen(Chan *c, Dirtab*, int, int s, Dir *dp) 
2001/0527    
envgen(Chan *c, char*, Dirtab*, int, int s, Dir *dp) 
1990/0227    
{ 
1991/0705    
	Egrp *eg; 
1992/0623    
	Evalue *e; 
1990/0227    
 
1999/1230    
	if(s == DEVDOTDOT){ 
		devdir(c, c->qid, "#e", 0, eve, 0775, dp); 
2001/0527    
		devdir(c, c->qid, "#e", 0, eve, DMDIR|0775, dp); 
1999/1230    
		return 1; 
	} 
 
2001/0510/sys/src/9/port/devenv.c:33,392001/0527/sys/src/9/port/devenv.c:33,41
1992/0623    
		return -1; 
1990/0227    
	} 
1992/0623    
 
1999/0122    
	devdir(c, e->qid, e->name, e->len, eve, 0666, dp); 
2001/0527    
	/* make sure name string continues to exist after we release lock */ 
	kstrcpy(up->genbuf, e->name, sizeof up->genbuf); 
	devdir(c, e->qid, up->genbuf, e->len, eve, 0666, dp); 
1992/0623    
	qunlock(eg); 
	return 1; 
1990/0227    
} 
2001/0510/sys/src/9/port/devenv.c:54,872001/0527/sys/src/9/port/devenv.c:56,73
1990/0227    
	return devattach('e', spec); 
} 
 
1997/0327    
static int 
1990/0227    
envwalk(Chan *c, char *name) 
2001/0527    
static Walkqid* 
envwalk(Chan *c, Chan *nc, char **name, int nname) 
1990/0227    
{ 
2001/0510    
	Evalue *e; 
	Egrp *eg; 
	int rv; 
                 
	if(c->qid.path == CHDIR && name[0] != '.'){ 
		rv = 0; 
		eg = up->egrp; 
		qlock(eg); 
		for(e = eg->entries; e; e = e->link) 
			if(strcmp(e->name, name) == 0){ 
				rv = 1; 
				c->qid = e->qid; 
			} 
		qunlock(eg); 
		return rv; 
	} else 
		return devwalk(c, name, 0, 0, envgen); 
2001/0527    
	return devwalk(c, nc, name, nname, 0, 0, envgen); 
1990/0227    
} 
 
1997/0327    
static void 
1990/0227    
envstat(Chan *c, char *db) 
2001/0527    
static int 
envstat(Chan *c, uchar *db, int n) 
1990/0227    
{ 
1999/0122    
	if(c->qid.path & CHDIR) 
2001/0527    
	if(c->qid.type & QTDIR) 
1999/0122    
		c->qid.vers = up->egrp->vers; 
1990/0227    
	devstat(c, db, 0, 0, envgen); 
2001/0527    
	return devstat(c, db, n, 0, 0, envgen); 
1990/0227    
} 
 
1997/0327    
static Chan* 
2001/0510/sys/src/9/port/devenv.c:91,972001/0527/sys/src/9/port/devenv.c:77,83
1992/0623    
	Evalue *e; 
1998/0512    
 
1993/0501    
	eg = up->egrp; 
1992/0625    
	if(c->qid.path & CHDIR) { 
2001/0527    
	if(c->qid.type & QTDIR) { 
1991/1018    
		if(omode != OREAD) 
1990/11211    
			error(Eperm); 
1992/0623    
	} 
2001/0510/sys/src/9/port/devenv.c:122,1282001/0527/sys/src/9/port/devenv.c:108,114
1991/0705    
	Egrp *eg; 
1992/0623    
	Evalue *e; 
1990/0227    
 
1990/11211    
	if(c->qid.path != CHDIR) 
2001/0527    
	if(c->qid.type != QTDIR) 
1990/11211    
		error(Eperm); 
1992/0623    
 
1991/1018    
	omode = openmode(omode); 
2001/0510/sys/src/9/port/devenv.c:162,1682001/0527/sys/src/9/port/devenv.c:148,154
1991/0705    
	Egrp *eg; 
1992/0623    
	Evalue *e, **l; 
1990/0227    
 
1990/11211    
	if(c->qid.path & CHDIR) 
2001/0527    
	if(c->qid.type & QTDIR) 
1990/11211    
		error(Eperm); 
1992/0623    
 
1993/0501    
	eg = up->egrp; 
2001/0510/sys/src/9/port/devenv.c:207,2132001/0527/sys/src/9/port/devenv.c:193,199
1992/0623    
	Evalue *e; 
1998/0319    
	ulong offset = off; 
1990/0227    
 
1990/11211    
	if(c->qid.path & CHDIR) 
2001/0527    
	if(c->qid.type & QTDIR) 
1990/0227    
		return devdirread(c, a, n, 0, 0, envgen); 
1992/0623    
 
1993/0501    
	eg = up->egrp; 
2001/0510/sys/src/9/port/devenv.c:275,2812001/0527/sys/src/9/port/devenv.c:261,266
1997/0327    
	devreset, 
	devinit, 
	envattach, 
	devclone, 
	envwalk, 
	envstat, 
	envopen, 
2001/0510/sys/src/9/port/devenv.c:336,3422001/0527/sys/src/9/port/devenv.c:321,327
1991/0927    
ksetenv(char *ename, char *eval) 
{ 
	Chan *c; 
	char buf[2*NAMELEN]; 
2001/0527    
	char buf[2*KNAMELEN]; 
1991/0927    
 
	sprint(buf, "#e/%s", ename); 
	c = namec(buf, Acreate, OWRITE, 0600); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)