| plan 9 kernel history: overview | file list | diff list |
1994/0503/pc/devvga.c (diff list | history)
| 1994/0422/sys/src/9/pc/devvga.c:79,84 – 1994/0503/sys/src/9/pc/devvga.c:79,85 (short | long | prev | next) | ||
| 1992/1119 | { char *name; | |
| 1993/1116 | void (*setpage)(int); /* routine to page though display memory */ | |
| 1994/0503 | void (*mvcursor)(Point); /* routine to move hardware cursor */ | |
| 1992/1119 | }; enum | |
| 1994/0422/sys/src/9/pc/devvga.c:95,113 – 1994/0503/sys/src/9/pc/devvga.c:96,117 | ||
| 1993/1116 | static void nopage(int), tsengpage(int), tridentpage(int), parapage(int); | |
| 1994/0311 | static void atipage(int), cirruspage(int), s3page(int); | |
| 1993/1116 | ||
| 1994/0503 | static void nomvcursor(Point); | |
| 1993/0106 | Vgacard vgachips[] = | |
| 1992/1119 | { | |
| 1993/0106 |
| |
| 1992/1124 |
| |
| 1992/1216 |
| |
| 1992/1119 |
| |
| 1993/0915 |
| |
| 1994/0311 |
| |
| 1992/1119 |
| |
| 1994/0503 | [Ati] { "ati", atipage, nomvcursor, }, [Pvga1a] { "pvga1a", parapage, nomvcursor, }, [Trident] { "trident", tridentpage, nomvcursor, }, [Tseng] { "tseng", tsengpage, nomvcursor, }, [Cirrus] { "cirrus", cirruspage, nomvcursor, }, [S3] { "s3", s3page, nomvcursor, }, [Generic] { "generic", nopage, nomvcursor, }, | |
| 1992/1119 | { 0, 0, }, }; Vgacard *vgacard; /* current vga card */ | |
| 1994/0503 | static int hwcursor; | |
| 1992/1119 | ||
| 1994/0415 | /* * work areas for bitblting screen characters, scrolling, and cursor redraw | |
| 1994/0422/sys/src/9/pc/devvga.c:174,180 – 1994/0503/sys/src/9/pc/devvga.c:178,185 | ||
| 1992/1119 | Qvgatype= 2, Qvgaport= 3, | |
| 1993/1116 | Qvgaportw= 4, | |
| 1994/0503 | Qvgactl= 5, Nvga= 5, | |
| 1992/1119 | }; | |
| 1992/0527 | Dirtab vgadir[]={ "vgasize", {Qvgasize}, 0, 0666, | |
| 1994/0422/sys/src/9/pc/devvga.c:181,186 – 1994/0503/sys/src/9/pc/devvga.c:186,192 | ||
| 1992/1119 | "vgatype", {Qvgatype}, 0, 0666, | |
| 1992/0528 | "vgaport", {Qvgaport}, 0, 0666, | |
| 1993/1116 | "vgaportw", {Qvgaportw}, 0, 0666, | |
| 1994/0503 | "vgactl", {Qvgactl}, 0, 0666, | |
| 1992/0527 | }; void | |
| 1994/0422/sys/src/9/pc/devvga.c:295,300 – 1994/0503/sys/src/9/pc/devvga.c:301,314 | ||
| 1992/1119 | return n; } error(Ebadarg); | |
| 1994/0503 | case Qvgactl: if(offset != 0 || n >= sizeof(cbuf)) error(Ebadarg); memmove(cbuf, buf, n); cbuf[n] = 0; if(strncmp(cbuf, "hwcursor", 8) == 0) hwcursor = 1; break; | |
| 1992/0527 | case Qvgasize: | |
| 1992/1119 | if(offset != 0 || n >= sizeof(cbuf)) | |
| 1992/0528 | error(Ebadarg); | |
| 1994/0422/sys/src/9/pc/devvga.c:675,681 – 1994/0503/sys/src/9/pc/devvga.c:689,695 | ||
| 1993/1116 | if(!rectclip(&r, gscreen.r) || tl<=0) return; | |
| 1994/0412 |
| |
| 1994/0503 | if(dolock && hwcursor == 0) | |
| 1994/0412 | cursorlock(r); | |
| 1994/0415 | lock(&loadlock); | |
| 1994/0412 | ||
| 1994/0422/sys/src/9/pc/devvga.c:758,764 – 1994/0503/sys/src/9/pc/devvga.c:772,778 | ||
| 1993/1116 | } | |
| 1994/0412 | ||
| 1994/0415 | unlock(&loadlock); | |
| 1994/0412 |
| |
| 1994/0503 | if(dolock && hwcursor == 0) | |
| 1994/0412 | cursorunlock(); | |
| 1993/1116 | } | |
| 1994/0422/sys/src/9/pc/devvga.c:831,837 – 1994/0503/sys/src/9/pc/devvga.c:845,851 | ||
| 1994/0412 | if(!rectclip(&r, gscreen.r) || tl<=0) | |
| 1993/1116 | return; | |
| 1994/0412 |
| |
| 1994/0503 | if(dolock && hwcursor == 0) | |
| 1994/0412 | cursorlock(r); | |
| 1994/0415 | lock(&loadlock); | |
| 1993/1116 | ||
| 1994/0422/sys/src/9/pc/devvga.c:914,920 – 1994/0503/sys/src/9/pc/devvga.c:928,934 | ||
| 1994/0412 | } | |
| 1994/0415 | unlock(&loadlock); | |
| 1994/0412 |
| |
| 1994/0503 | if(dolock && hwcursor == 0) | |
| 1994/0412 | cursorunlock(); | |
| 1993/1116 | } | |
| 1994/0422/sys/src/9/pc/devvga.c:1064,1069 – 1994/0503/sys/src/9/pc/devvga.c:1078,1092 | ||
| 1992/1119 | } | |
| 1994/0415 | /* | |
| 1994/0503 | * hardware cursor routines */ static void nomvcursor(Point p) { USED(p.x); } /* | |
| 1994/0415 | * character mode console */ | |
| 1992/1119 | static void | |
| 1994/0422/sys/src/9/pc/devvga.c:1321,1327 – 1994/0503/sys/src/9/pc/devvga.c:1344,1352 | ||
| 1994/0414 | if(dolock) lock(&cursor); | |
| 1994/0503 | if(hwcursor) (*vgacard->mvcursor)(mousexy()); else if(cursor.visible++ == 0){ | |
| 1994/0414 | cursor.r.min = mousexy(); cursor.r.max = add(cursor.r.min, Pt(16, 16)); cursor.r = raddp(cursor.r, cursor.offset); | |
| 1994/0422/sys/src/9/pc/devvga.c:1374,1379 – 1994/0503/sys/src/9/pc/devvga.c:1399,1406 | ||
| 1994/0414 | void cursoroff(int dolock) { | |
| 1994/0503 | if(hwcursor) return; | |
| 1994/0414 | if(cursor.disable) return; if(dolock) | |