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

1999/0629/port/dev.c (diff list | history)

1999/0122/sys/src/9/port/dev.c:71,801999/0629/sys/src/9/port/dev.c:71,79 (short | long | prev | next)
Drop Paths in favor of Cnames.
rsc Fri Mar 4 12:44:25 2005
1990/0227    
	c = newchan(); 
1990/11211    
	c->qid = (Qid){CHDIR, 0}; 
1990/0227    
	c->type = devno(tc, 0); 
1993/0501    
	if(tc != 'M') { 
		sprint(buf, "#%C%s", tc, spec); 
		c->path = ptenter(&syspt, 0, buf); 
	} 
1999/0629    
	sprint(buf, "#%C%s", tc, spec==nil? "" : spec); 
	free(c->name); 
	c->name = newcname(buf); 
1990/0227    
	return c; 
} 
 
1999/0122/sys/src/9/port/dev.c:101,1081999/0629/sys/src/9/port/dev.c:100,107
1990/0303    
	nc->mchan = c->mchan; 
	nc->mqid = c->mqid; 
1993/1013    
	nc->mcp = c->mcp; 
1993/0501    
	nc->path = c->path; 
	incref(nc->path); 
1999/0629    
	if(c->name) 
		incref(c->name); 
1990/0227    
	return nc; 
} 
 
1999/0122/sys/src/9/port/dev.c:111,1171999/0629/sys/src/9/port/dev.c:110,115
1990/0227    
{ 
	long i; 
	Dir dir; 
1993/0501    
	Path *op; 
1990/0227    
 
	isdir(c); 
	if(name[0]=='.' && name[1]==0) 
1999/0122/sys/src/9/port/dev.c:126,1341999/0629/sys/src/9/port/dev.c:124,129
1990/0227    
		case 1: 
			if(strcmp(name, dir.name) == 0){ 
				c->qid = dir.qid; 
1993/0501    
				op = c->path; 
				c->path = ptenter(&syspt, op, name); 
				decref(op); 
1990/0227    
				return 1; 
			} 
			continue; 
1999/0122/sys/src/9/port/dev.c:142,1531999/0629/sys/src/9/port/dev.c:137,155
1990/0227    
{ 
	int i; 
	Dir dir; 
1999/0629    
	char *p, *elem; 
1990/0227    
 
1993/0330    
	for(i=0;; i++) 
1990/0227    
		switch((*gen)(c, tab, ntab, i, &dir)){ 
		case -1: 
1990/11211    
			if(c->qid.path & CHDIR){ 
1993/0525    
				devdir(c, c->qid, c->path->elem, i*DIRLEN, eve, CHDIR|0555, &dir); 
1999/0629    
				if(c->name == nil) 
					elem = "???"; 
				else 
					for(elem=p=c->name->s; *p; p++) 
						if(*p = '/') 
							elem = p+1; 
				devdir(c, c->qid, elem, i*DIRLEN, eve, CHDIR|0555, &dir); 
1990/0227    
				convD2M(&dir, db); 
				return; 
			} 


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