From 49234d55eedb0bffbfd4cea48eb79d98a7e59633 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 12 Aug 1995 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1995-08-12 --- pc/clock.c | 3 +-- pc/devvga.c | 16 ++++++++-------- pc/vgaark2000pv.c | 8 ++++---- port/devmouse.c | 5 ++++- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/pc/clock.c b/pc/clock.c index 1f5a9f150ad744baa7dbb37acc9b4c2984b2451f..95c66e5078906f964de973115085f18116b519a3 100644 --- a/pc/clock.c +++ b/pc/clock.c @@ -43,6 +43,7 @@ clock(Ureg *ur, void *arg) checkalarms(); hardclock(); uartclock(); + mouseclock(); if(up && up->state == Running){ if(anyready()) @@ -52,8 +53,6 @@ clock(Ureg *ur, void *arg) if((ur->cs&0xffff) == UESEL) (*(ulong*)(USTKTOP-BY2WD)) += TK2MS(1); } - - mouseclock(); } #define STEPPING(x) ((x)&0xf) diff --git a/pc/devvga.c b/pc/devvga.c index e6d96f3a65b031222ebee4226c6ab649623030c1..ddc32236cc6299a973b42c60a609803cf18b2f1c 100644 --- a/pc/devvga.c +++ b/pc/devvga.c @@ -734,7 +734,7 @@ screenload(Rectangle r, uchar *data, int tl, int l, int dolock) if(dolock && hwgc == 0) cursorlock(r); - lock(&palettelock); + ilock(&palettelock); q = byteaddr(&gscreen, r.min); mx = 7>>gscreen.ldepth; @@ -814,7 +814,7 @@ screenload(Rectangle r, uchar *data, int tl, int l, int dolock) data += l; } - unlock(&palettelock); + iunlock(&palettelock); if(dolock && hwgc == 0) cursorunlock(); } @@ -891,7 +891,7 @@ screenunload(Rectangle r, uchar *data, int tl, int l, int dolock) if(dolock && hwgc == 0) cursorlock(r); - lock(&palettelock); + ilock(&palettelock); q = byteaddr(&gscreen, r.min); mx = 7>>gscreen.ldepth; @@ -971,7 +971,7 @@ screenunload(Rectangle r, uchar *data, int tl, int l, int dolock) data += l; } - unlock(&palettelock); + iunlock(&palettelock); if(dolock && hwgc == 0) cursorunlock(); } @@ -1165,11 +1165,11 @@ getcolor(ulong p, ulong *pr, ulong *pg, ulong *pb) } p &= x; p ^= x; - lock(&palettelock); + ilock(&palettelock); *pr = colormap[p][Pred]; *pg = colormap[p][Pgreen]; *pb = colormap[p][Pblue]; - unlock(&palettelock); + iunlock(&palettelock); } int @@ -1187,7 +1187,7 @@ setcolor(ulong p, ulong r, ulong g, ulong b) } p &= x; p ^= x; - lock(&palettelock); + ilock(&palettelock); colormap[p][Pred] = r; colormap[p][Pgreen] = g; colormap[p][Pblue] = b; @@ -1195,7 +1195,7 @@ setcolor(ulong p, ulong r, ulong g, ulong b) vgao(Pdata, r>>(32-6)); vgao(Pdata, g>>(32-6)); vgao(Pdata, b>>(32-6)); - unlock(&palettelock); + iunlock(&palettelock); return ~0; } diff --git a/pc/vgaark2000pv.c b/pc/vgaark2000pv.c index be4e139799098dea717bedfc439e64f22450e81c..682f61a37cf5ee8fd5874d94b9dada04a0cfebde 100644 --- a/pc/vgaark2000pv.c +++ b/pc/vgaark2000pv.c @@ -154,16 +154,16 @@ move(Point p) */ if((x = p.x+hotpoint.x) < 0){ xo = -x; - x = 0; + x = 1; } else - xo = 0; + xo = 1; if((y = p.y+hotpoint.y) < 0){ yo = -y; - y = 0; + y = 1; } else - yo = 0; + yo = 1; /* * Load the new values. diff --git a/port/devmouse.c b/port/devmouse.c index 4ac7d72c556239c98095bb0e9d966efaf292000c..ddda7bcec6c5be48d37a65ac60c972a9000a3da6 100644 --- a/port/devmouse.c +++ b/port/devmouse.c @@ -212,7 +212,10 @@ mouseread(Chan *c, void *va, long n, ulong offset) case Qmouse: while(mousechanged(0) == 0) sleep(&mouse.r, mousechanged, 0); - lock(&cursor); + + while(!canlock(&cursor)) + tsleep(&up->sleep, return0, 0, TK2MS(1)); + sprint(buf, "m%11d %11d %11d %11d", mouse.xy.x, mouse.xy.y, mouseswap ? map[mouse.buttons&7] : mouse.buttons,