/* * Need to lock drawlock for ourselves. */ void swenable(VGAscr *v) { swenabled = 1; if(canqlock(&drawlock)){ swcursordraw(); qunlock(&drawlock); } }
void cursoron(void) { qlock(&drawlock); lock(&cursor); swcursorhide(); swcursordraw(mousexy()); unlock(&cursor); qunlock(&drawlock); }
int cursoron(int dolock) { int retry; if (dolock) lock(&cursor); if (canqlock(&drawlock)) { retry = 0; swcursorhide(); swcursordraw(); qunlock(&drawlock); } else retry = 1; if (dolock) unlock(&cursor); return retry; }
void swcursorclock(void) { int x; if(!swenabled) return; if(swvisible && eqpt(swpt, swvispt) && swvers==swvisvers) return; x = splhi(); if(swenabled) if(!swvisible || !eqpt(swpt, swvispt) || swvers!=swvisvers) if(canqlock(&drawlock)){ swcursorhide(); swcursordraw(); qunlock(&drawlock); } splx(x); }