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

1997/0327/port/devroot.c (diff list | history)

1996/0223/sys/src/9/port/devroot.c:72,1011997/0327/sys/src/9/port/devroot.c:72,90 (short | long | prev | next)
1993/0724    
	nroot++; 
1991/0615    
} 
 
1990/0227    
void 
1997/0327    
static void 
1990/0227    
rootreset(void) 
{ 
1993/0724    
	addrootfile("boot", bootcode, bootlen);	/* always have a boot file */ 
1990/0227    
} 
 
void 
rootinit(void) 
{ 
} 
                 
Chan* 
1997/0327    
static Chan* 
1990/0227    
rootattach(char *spec) 
{ 
	return devattach('/', spec); 
} 
 
Chan* 
rootclone(Chan *c, Chan *nc) 
{ 
	return devclone(c, nc); 
} 
                 
int	  
1997/0327    
static int	  
1990/0227    
rootwalk(Chan *c, char *name) 
{ 
1991/1206    
	if(strcmp(name, "..") == 0) { 
1996/0223/sys/src/9/port/devroot.c:107,1191997/0327/sys/src/9/port/devroot.c:96,108
1993/0724    
	return devwalk(c, name, rootdir, nroot, devgen); 
1990/0227    
} 
 
void	  
1997/0327    
static void	  
1990/0227    
rootstat(Chan *c, char *dp) 
{ 
1993/0724    
	devstat(c, dp, rootdir, nroot, devgen); 
1990/0227    
} 
 
Chan* 
1997/0327    
static Chan* 
1990/0227    
rootopen(Chan *c, int omode) 
{ 
1993/0501    
	switch(c->qid.path & ~CHDIR) { 
1996/0223/sys/src/9/port/devroot.c:131,1461997/0327/sys/src/9/port/devroot.c:120,129
1993/0724    
	return devopen(c, omode, rootdir, nroot, devgen); 
1990/0227    
} 
 
void	  
1995/0804    
rootcreate(Chan*, char*, int, ulong) 
1990/0227    
{ 
1990/11211    
	error(Eperm); 
1990/0227    
} 
                 
/* 
 * sysremove() knows this is a nop 
 */ 
void	  
1997/0327    
static void	  
1990/0227    
rootclose(Chan *c) 
{ 
1993/1031    
	switch(c->qid.path) { 
1996/0223/sys/src/9/port/devroot.c:153,1651997/0327/sys/src/9/port/devroot.c:136,148
1993/1031    
	} 
1990/0227    
} 
 
1993/0501    
int 
1997/0327    
static int 
1995/0804    
rdrdy(void*) 
1993/0501    
{ 
	return reclist.q != 0; 
} 
 
1990/0227    
long	  
1997/0327    
static long	  
1991/0411    
rootread(Chan *c, void *buf, long n, ulong offset) 
1990/0227    
{ 
1993/0724    
	ulong t; 
1996/0223/sys/src/9/port/devroot.c:209,2211997/0327/sys/src/9/port/devroot.c:192,198
1993/0724    
	return n; 
1990/0227    
} 
 
1995/0108    
Block* 
rootbread(Chan *c, long n, ulong offset) 
{ 
	return devbread(c, n, offset); 
} 
                 
1990/0227    
long	  
1997/0327    
static long	  
1995/0804    
rootwrite(Chan *c, void *buf, long n, ulong) 
1990/0227    
{ 
1993/0501    
	char tmp[256]; 
1996/0223/sys/src/9/port/devroot.c:235,2571997/0327/sys/src/9/port/devroot.c:212,234
1993/0501    
	return 0; 
1995/0108    
} 
 
long 
rootbwrite(Chan *c, Block *bp, ulong offset) 
{ 
	return devbwrite(c, bp, offset); 
1990/0227    
} 
                 
void	  
1995/0804    
rootremove(Chan*) 
1990/0227    
{ 
1990/11211    
	error(Eperm); 
1990/0227    
} 
                 
void	  
1995/0804    
rootwstat(Chan*, char*) 
1990/0227    
{ 
1990/11211    
	error(Eperm); 
1993/0501    
} 
1997/0327    
Dev rootdevtab = { 
	rootreset, 
	devinit, 
	rootattach, 
	devclone, 
	rootwalk, 
	rootstat, 
	rootopen, 
	devcreate, 
	rootclose, 
	rootread, 
	devbread, 
	rootwrite, 
	devbwrite, 
	devremove, 
	devwstat, 
}; 
1993/0501    
 
void 
rootrecover(Path *p, char *mntname) 


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