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

1993/1013/port/devproc.c (diff list | history)

1993/1013/sys/src/9/port/devproc.c:16,211993/1018/sys/src/9/port/devproc.c:16,22 (short | long | prev | next)
1993/0818    
	Qkregs, 
1990/0227    
	Qmem, 
	Qnote, 
1993/1018    
	Qnoteid, 
1990/1110    
	Qnotepg, 
1993/0818    
	Qns, 
1993/0828    
	Qproc, 
1993/1013/sys/src/9/port/devproc.c:34,391993/1018/sys/src/9/port/devproc.c:35,41
1993/0818    
	"kregs",	{Qkregs},	sizeof(Ureg),		0000, 
1991/1109    
	"mem",		{Qmem},		0,			0000, 
	"note",		{Qnote},	0,			0000, 
1993/1018    
	"noteid",	{Qnoteid},	0,			0666, 
1991/1112    
	"notepg",	{Qnotepg},	0,			0000, 
1993/0818    
	"ns",		{Qns},		0,			0400, 
1993/0828    
	"proc",		{Qproc},	0,			0400, 
1993/1013/sys/src/9/port/devproc.c:188,1931993/1018/sys/src/9/port/devproc.c:190,196
1993/0818    
 
1990/0227    
	case Qctl: 
	case Qnote: 
1993/1018    
	case Qnoteid: 
1991/1110    
	case Qmem: 
1991/1112    
	case Qstatus: 
1993/0309    
	case Qwait: 
1993/1013/sys/src/9/port/devproc.c:470,4751993/1018/sys/src/9/port/devproc.c:473,480
1993/0501    
		} 
		a += ptpath(mw->cm->to->path, a, n); 
		return a - (char*)va; 
1993/1018    
	case Qnoteid: 
		return readnum(offset, va, n, p->noteid, NUMSIZE); 
1990/0227    
	} 
1990/11211    
	error(Egreg); 
1992/0520    
	return 0;		/* not reached */ 
1993/1013/sys/src/9/port/devproc.c:516,5221993/1018/sys/src/9/port/devproc.c:521,528
1990/0227    
long 
1991/0411    
procwrite(Chan *c, void *va, long n, ulong offset) 
1990/0227    
{ 
	Proc *p; 
1993/1018    
	int id; 
	Proc *p, *t, *et; 
1990/0227    
	char buf[ERRLEN]; 
 
1990/11211    
	if(c->qid.path & CHDIR) 
1993/1013/sys/src/9/port/devproc.c:578,5841993/1018/sys/src/9/port/devproc.c:584,607
1990/0227    
		if(!postnote(p, 0, buf, NUser)) 
1992/0527    
			error("note not posted"); 
1990/0227    
		break; 
1991/1110    
                 
1993/1018    
	case Qnoteid: 
		id = atoi((char*)va); 
		if(id == p->pid) { 
			p->noteid = id; 
			break; 
		} 
		t = proctab(0); 
		for(et = t+conf.nproc; t < et; t++) { 
			if(id == t->noteid) { 
				if(strcmp(p->user, t->user) != 0) 
					error(Eperm); 
				p->noteid = id; 
				break; 
			} 
		} 
		if(p->noteid != id) 
			error(Ebadarg); 
		break; 
1990/0227    
	default: 
		pprint("unknown qid in procwrite\n"); 
1990/11211    
		error(Egreg); 


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