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

1991/0425/port/devcons.c (diff list | history)

1991/0421/sys/src/9/port/devcons.c:320,3251991/0425/sys/src/9/port/devcons.c:320,326 (short | long | prev | next)
1990/0227    
	Qtime, 
	Quser, 
1990/11161    
	Qvmereset, 
1991/0425    
	Qsysstat, 
1990/0227    
}; 
 
Dirtab consdir[]={ 
1991/0421/sys/src/9/port/devcons.c:334,3391991/0425/sys/src/9/port/devcons.c:335,341
1990/11211    
	"time",		{Qtime},	12,	0600, 
	"user",		{Quser},	0,	0600, 
	"vmereset",	{Qvmereset},	0,	0600, 
1991/0425    
	"sysstat",	{Qsysstat},	0,	0600, 
1990/0227    
}; 
 
#define	NCONS	(sizeof consdir/sizeof(Dirtab)) 
1991/0421/sys/src/9/port/devcons.c:443,4551991/0425/sys/src/9/port/devcons.c:445,458
1990/0227    
long 
1991/0411    
consread(Chan *c, void *buf, long n, ulong offset) 
1990/0227    
{ 
	int ch, i, j, k; 
1991/0425    
	int ch, i, j, k, id; 
1990/0227    
	ulong l; 
	uchar *out; 
	char *cbuf = buf; 
	char *user; 
	int userlen; 
	char tmp[6*NUMSIZE]; 
1991/0425    
	char tmp[6*NUMSIZE], xbuf[512]; 
	Mach *mp; 
1990/0227    
 
	if(n <= 0) 
		return n; 
1991/0421/sys/src/9/port/devcons.c:532,5371991/0425/sys/src/9/port/devcons.c:535,552
1990/0720    
	case Qlog: 
1991/0411    
		return readlog(offset, buf, n); 
1990/0720    
 
1991/0425    
	case Qsysstat: 
		j = 0; 
		for(id = 0; id < 32; id++) { 
			if(active.machs & (1<<id)) { 
				mp = MACHP(id); 
				j += sprint(&xbuf[j], "%d %d %d %d %d %d %d %d\n", 
					id, mp->cs, mp->intr, mp->syscall, mp->pfault, 
					    mp->tlbfault, mp->tlbpurge, mp->spinlock); 
			} 
		} 
 
		return readstr(offset, buf, n, xbuf); 
1990/0227    
	case Qnull: 
		return 0; 
 
1991/0421/sys/src/9/port/devcons.c:547,5531991/0425/sys/src/9/port/devcons.c:562,570
1990/0227    
	char cbuf[64]; 
	char buf[256]; 
	long l, m; 
1991/0425    
	int id; 
1990/0227    
	char *a = va; 
1991/0425    
	Mach *mp; 
1990/0227    
 
1990/11211    
	switch(c->qid.path){ 
1990/0227    
	case Qcons: 
1991/0421/sys/src/9/port/devcons.c:601,6071991/0425/sys/src/9/port/devcons.c:618,638
1990/11211    
			error(Eperm); 
1990/11161    
		vmereset(); 
		break; 
1991/0425    
	case Qsysstat: 
		for(id = 0; id < 32; id++) { 
			if(active.machs & (1<<id)) { 
				mp = MACHP(id); 
				mp->cs = 0; 
				mp->intr = 0; 
				mp->syscall = 0; 
				mp->pfault = 0; 
				mp->tlbfault = 0; 
				mp->tlbpurge = 0; 
				mp->spinlock = 0; 
			} 
		} 
1990/11161    
 
1991/0425    
		break; 
1990/0227    
	default: 
1990/11211    
		error(Egreg); 
1990/0227    
	} 


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