~kris/9p

9hist

f4322fa8bc0a34b2fb3f63c84ab1ad4fb1647c4e — David du Colombier 33 years ago dff8b73
Plan 9 from Bell Labs 1993-02-25
7 files changed, 14 insertions(+), 14 deletions(-)

M gnot/screen.h
M pc/screen.h
M pc/trap.c
M port/devbit.c
M power/trap.c
M ss/screen.h
M ss/trap.c
M gnot/screen.h => gnot/screen.h +2 -1
@@ 9,7 9,8 @@ struct Mouseinfo{
	int	dy;
	int	track;		/* update cursor on screen */
	Mouse;
	int	changed;	/* mouse structure changed since last read */
	ulong	counter;	/* increments every update */
	ulong	lastcounter;	/* value when /dev/mouse read */
	Rendez	r;
	int	newbuttons;	/* interrupt time access only */
	int	clock;		/* check mouse.track on RTE */

M pc/screen.h => pc/screen.h +2 -1
@@ 9,7 9,8 @@ struct Mouseinfo{
	int	dy;
	int	track;		/* update cursor on screen */
	Mouse;
	int	changed;	/* mouse structure changed since last read */
	ulong	counter;	/* increments every update */
	ulong	lastcounter;	/* value when /dev/mouse read */
	Rendez	r;
	int	newbuttons;	/* interrupt time access only */
	int	clock;		/* check mouse.track on RTE */

M pc/trap.c => pc/trap.c +1 -1
@@ 242,9 242,9 @@ trap(Ureg *ur)
	 */
	c = v&~0x7;
	if(c==Int0vec || c==Int1vec){
		outb(Int0ctl, EOI);
		if(c == Int1vec)
			outb(Int1ctl, EOI);
		outb(Int0ctl, EOI);
	}

	if(v>=256 || (h = halloc.ivec[v]) == 0){

M port/devbit.c => port/devbit.c +4 -9
@@ 524,21 524,16 @@ bitread(Chan *c, void *va, long n, ulong offset)
		 */
		if(n < 14)
			error(Ebadblt);
	    Again:
		while(mouse.changed == 0)
		while(mousechanged(0) == 0)
			sleep(&mouse.r, mousechanged, 0);
		lock(&cursor);
		if(mouse.changed == 0){
			unlock(&cursor);
			goto Again;
		}
		p = va;
		p[0] = 'm';
		p[1] = mouse.buttons;
		BPLONG(p+2, mouse.xy.x);
		BPLONG(p+6, mouse.xy.y);
		BPLONG(p+10, TK2MS(MACHP(0)->ticks));
		mouse.changed = 0;
		mouse.lastcounter = mouse.counter;
		unlock(&cursor);
		return 14;
	}


@@ 2081,7 2076,7 @@ mouseupdate(int dolock)
	mouse.clock = 0;
	mouse.track = 0;
	mouse.buttons = mouse.newbuttons;
	mouse.changed = 1;
	mouse.counter++;

	if(dolock){
		unlock(&cursor);


@@ 2167,7 2162,7 @@ int
mousechanged(void *m)
{
	USED(m);
	return mouse.changed;
	return mouse.lastcounter != mouse.counter;
}

/*

M power/trap.c => power/trap.c +2 -1
@@ 423,7 423,8 @@ notify(Ureg *ur)
	sp -= 3*BY2WD;
	*(ulong*)(sp+2*BY2WD) = sp+3*BY2WD;	/* arg 2 is string */
	u->svr1 = ur->r1;			/* save away r1 */
	ur->r1 = (ulong)u->ureg;		/* arg 1 is ureg* */
	ur->r1 = (ulong)u->ureg;		/* arg 1 (R1) is ureg* */
	*(ulong*)(sp+1*BY2WD) = (ulong)u->ureg;	/* arg 1 0(FP) is ureg* */
	*(ulong*)(sp+0*BY2WD) = 0;		/* arg 0 is pc */
	ur->usp = sp;
	ur->pc = (ulong)u->notify;

M ss/screen.h => ss/screen.h +2 -1
@@ 9,7 9,8 @@ struct Mouseinfo{
	int	dy;
	int	track;		/* update cursor on screen */
	Mouse;
	int	changed;	/* mouse structure changed since last read */
	ulong	counter;	/* increments every update */
	ulong	lastcounter;	/* value when /dev/mouse read */
	Rendez	r;
	int	newbuttons;	/* interrupt time access only */
	int	clock;		/* check mouse.track on RTE */

M ss/trap.c => ss/trap.c +1 -0
@@ 454,6 454,7 @@ notify(Ureg *ur)
		*(ulong*)(sp+1*BY2WD) = (ulong)u->ureg;	/* arg 1 is ureg* (compat) */
		u->svr7 = ur->r7;			/* save away r7 */
		ur->r7 = (ulong)u->ureg;		/* arg 1 is ureg* */
		*(ulong*)(sp+1*BY2WD) = (ulong)u->ureg;	/* arg 1 0(FP) is ureg* */
		*(ulong*)(sp+0*BY2WD) = 0;		/* arg 0 is pc */
		ur->usp = sp;
		ur->pc = (ulong)u->notify;