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

1999/1012/port/devmouse.c (diff list | history)

1999/1005/sys/src/9/port/devmouse.c:27,321999/1012/sys/src/9/port/devmouse.c:27,33 (short | long | prev | next)
1993/1006    
	Ref; 
	QLock; 
	int	open; 
1999/1012    
	int	inopen; 
1995/1216    
	int	acceleration; 
	int	maxacc; 
1993/1006    
}; 
1999/1005/sys/src/9/port/devmouse.c:44,491999/1012/sys/src/9/port/devmouse.c:45,51
1993/1006    
	Qdir, 
1993/1009    
	Qcursor, 
1993/1006    
	Qmouse, 
1999/1012    
	Qmousein, 
1993/1006    
	Qmousectl, 
}; 
 
1999/1005/sys/src/9/port/devmouse.c:50,551999/1012/sys/src/9/port/devmouse.c:52,58
1998/0417    
static Dirtab mousedir[]={ 
1993/1009    
	"cursor",	{Qcursor},	0,			0666, 
1993/1006    
	"mouse",	{Qmouse},	0,			0666, 
1999/1012    
	"mousein",	{Qmousein},	0,			0220, 
1993/1006    
	"mousectl",	{Qmousectl},	0,			0220, 
}; 
 
1999/1005/sys/src/9/port/devmouse.c:127,1321999/1012/sys/src/9/port/devmouse.c:130,144
1993/1006    
		mouse.ref++; 
		unlock(&mouse); 
		break; 
1999/1012    
	case Qmousein: 
		lock(&mouse); 
		if(mouse.inopen){ 
			unlock(&mouse); 
			error(Einuse); 
		} 
		mouse.inopen = 1; 
		unlock(&mouse); 
		break; 
1993/1006    
	default: 
		incref(&mouse); 
	} 
1999/1005/sys/src/9/port/devmouse.c:151,1561999/1012/sys/src/9/port/devmouse.c:163,173
1993/1006    
		lock(&mouse); 
		if(c->qid.path == Qmouse) 
			mouse.open = 0; 
1999/1012    
		else if(c->qid.path == Qmousein){ 
			mouse.inopen = 0; 
			unlock(&mouse); 
			return; 
		} 
1993/1009    
		if(--mouse.ref == 0){ 
			cursoroff(1); 
			curs = arrow; 
1999/1005/sys/src/9/port/devmouse.c:259,2651999/1012/sys/src/9/port/devmouse.c:276,282
1993/1008    
	char *p; 
1993/1006    
	Point pt; 
1998/0417    
	char buf[64], *field[3]; 
	int nf; 
1999/1012    
	int nf, b; 
1993/1006    
 
1993/1009    
	p = va; 
1993/1006    
	switch(c->qid.path){ 
1999/1005/sys/src/9/port/devmouse.c:312,3171999/1012/sys/src/9/port/devmouse.c:329,350
1998/0417    
			mousectl(field, nf); 
1993/1006    
		return n; 
 
1999/1012    
	case Qmousein: 
		if(n > sizeof buf-1) 
			n = sizeof buf -1; 
		memmove(buf, va, n); 
		buf[n] = 0; 
		p = 0; 
		pt.x = strtol(buf+1, &p, 0); 
		if(p == 0) 
			error(Eshort); 
		pt.y = strtol(p, &p, 0); 
		if(p == 0) 
			error(Eshort); 
		b = strtol(p, &p, 0); 
		mousetrack(b, pt.x, pt.y); 
		return n; 
		 
1993/1006    
	case Qmouse: 
1993/1008    
		if(n > sizeof buf-1) 
			n = sizeof buf -1; 


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