| plan 9 kernel history: overview | file list | diff list |
1999/1005/pc/devvga.c (diff list | history)
| 1999/0714/sys/src/9/pc/devvga.c:15,30 – 1999/1005/sys/src/9/pc/devvga.c:15,24 (short | long | prev | next) | ||
| 1995/0406 | ||
| 1997/1101 | enum { Qdir, | |
| 1994/0624 | }; | |
| 1997/1101 | static Dirtab vgadir[] = { | |
| 1992/1119 | }; | |
| 1992/0527 | ||
| 1999/0714/sys/src/9/pc/devvga.c:87,96 – 1999/1005/sys/src/9/pc/devvga.c:81,88 | ||
| 1997/0327 | static long | |
| 1998/0319 | vgaread(Chan* c, void* a, long n, vlong off) | |
| 1992/0527 | { | |
| 1997/1101 |
| |
| 1999/1005 | int len; | |
| 1997/1101 | char *p, *s; | |
| 1993/1116 |
| |
| 1994/0603 |
| |
| 1997/1101 | VGAscr *scr; | |
| 1998/0319 | ulong offset = off; | |
| 1992/0528 | ||
| 1999/0714/sys/src/9/pc/devvga.c:115,121 – 1999/1005/sys/src/9/pc/devvga.c:107,113 | ||
| 1997/1101 | if(scr->gscreen) len += snprint(p+len, READSTR-len, "size: %dx%dx%d\n", scr->gscreen->r.max.x, scr->gscreen->r.max.y, | |
| 1999/1005 | scr->gscreen->depth); | |
| 1997/1101 | if(scr->cur) s = scr->cur->name; else | |
| 1999/0714/sys/src/9/pc/devvga.c:129,161 – 1999/1005/sys/src/9/pc/devvga.c:121,126 | ||
| 1997/1101 | return n; | |
| 1994/0624 |
| |
| 1999/0714 |
| |
| 1997/1101 |
| |
| 1992/0528 |
| |
| 1997/1101 | ||
| 1994/0624 |
| |
| 1997/1101 |
| |
| 1993/1116 |
| |
| 1999/0714 |
| |
| 1993/1116 |
| |
| 1997/1101 |
| |
| 1993/1116 |
| |
| 1997/1101 | ||
| 1994/0624 |
| |
| 1997/1101 |
| |
| 1994/0603 |
| |
| 1999/0714 |
| |
| 1994/0603 |
| |
| 1997/1101 |
| |
| 1994/0603 |
| |
| 1997/1101 |
| |
| 1999/0714/sys/src/9/pc/devvga.c:168,180 – 1999/1005/sys/src/9/pc/devvga.c:133,147 | ||
| 1997/1101 | vgactl(char* a) | |
| 1994/0624 | { | |
| 1997/1101 | int align, i, n, size, x, y, z; | |
| 1999/1005 | char *chanstr, *field[6], *p; ulong chan; | |
| 1997/1101 | VGAscr *scr; extern VGAdev *vgadev[]; extern VGAcur *vgacur[]; | |
| 1999/1005 | Rectangle r; | |
| 1994/0624 | ||
| 1997/1101 |
| |
| 1995/0406 |
| |
| 1999/1005 | n = parsefields(a, field, nelem(field), " "); if(n < 1) | |
| 1994/0624 | error(Ebadarg); | |
| 1997/1101 | scr = &vgascreen[0]; | |
| 1999/0714/sys/src/9/pc/devvga.c:181,186 – 1999/1005/sys/src/9/pc/devvga.c:148,158 | ||
| 1997/1101 | if(strcmp(field[0], "hwgc") == 0){ | |
| 1995/0406 | if(n < 2) error(Ebadarg); | |
| 1999/1005 | /* BUG: drawinit should become a different message rather than piggybacking */ if(scr && scr->dev && scr->dev->drawinit) scr->dev->drawinit(scr); | |
| 1994/0624 | if(strcmp(field[1], "off") == 0){ | |
| 1997/1101 | lock(&cursor); if(scr->cur){ | |
| 1999/0714/sys/src/9/pc/devvga.c:221,227 – 1999/1005/sys/src/9/pc/devvga.c:193,199 | ||
| 1994/0624 | } } else if(strcmp(field[0], "size") == 0){ | |
| 1995/0406 |
| |
| 1999/1005 | if(n < 3) | |
| 1995/0406 | error(Ebadarg); | |
| 1997/1101 | x = strtoul(field[1], &p, 0); | |
| 1995/0206 | if(x == 0 || x > 2048) | |
| 1999/0714/sys/src/9/pc/devvga.c:235,257 – 1999/1005/sys/src/9/pc/devvga.c:207,273 | ||
| 1997/1101 | if(*p) p++; | |
| 1994/0624 | ||
| 1997/1101 |
| |
| 1995/0206 |
| |
| 1997/1101 |
| |
| 1999/1005 | z = strtoul(p, &p, 0); | |
| 1997/1101 | ||
| 1995/0206 |
| |
| 1995/0207 |
| |
| 1994/0624 |
| |
| 1995/0206 |
| |
| 1999/1005 | chanstr = field[2]; if((chan = strtochan(chanstr)) == 0) error("bad channel"); | |
| 1994/0624 | ||
| 1999/1005 | if(chantodepth(chan) != z) error("depth, channel do not match"); | |
| 1995/0206 | cursoroff(1); | |
| 1997/1101 |
| |
| 1999/1005 | deletescreenimage(); if(screensize(x, y, z, chan)) | |
| 1997/1101 | error(Egreg); vgascreenwin(scr); | |
| 1994/0624 | cursoron(1); return; } | |
| 1999/1005 | else if(strcmp(field[0], "actualsize") == 0){ if(scr->gscreen == nil) error("set the screen size first"); if(n < 2) error(Ebadarg); x = strtoul(field[1], &p, 0); if(x == 0 || x > 2048) error(Ebadarg); if(*p) p++; y = strtoul(p, nil, 0); if(y == 0 || y > 2048) error(Ebadarg); if(x > scr->gscreen->r.max.x || y > scr->gscreen->r.max.y) error("physical screen bigger than virtual"); r = Rect(0,0,x,y); if(!eqrect(r, scr->gscreen->r)){ if(scr->cur == nil || scr->cur->doespanning == 0) error("virtual screen not supported"); } physgscreenr = r; return; } else if(strcmp(field[0], "palettedepth") == 0){ if(n < 2) error(Ebadarg); x = strtoul(field[1], &p, 0); if(x != 8 && x != 6) error(Ebadarg); scr->palettedepth = x; return; } else if(strcmp(field[0], "drawinit") == 0){ if(scr && scr->dev && scr->dev->drawinit) scr->dev->drawinit(scr); return; } | |
| 1995/0406 | else if(strcmp(field[0], "linear") == 0){ if(n < 2) error(Ebadarg); | |
| 1999/0714/sys/src/9/pc/devvga.c:265,270 – 1999/1005/sys/src/9/pc/devvga.c:281,304 | ||
| 1995/0406 | error("not enough free address space"); return; } | |
| 1999/1005 | /* else if(strcmp(field[0], "memset") == 0){ if(n < 4) error(Ebadarg); memset((void*)strtoul(field[1], 0, 0), atoi(field[2]), atoi(field[3])); return; } */ else if(strcmp(field[0], "blank") == 0){ if(n < 2) error(Ebadarg); drawblankscreen(atoi(field[1])); return; } else if(strcmp(field[0], "hwacceloff") == 0){ scr->fill = nil; scr->scroll = nil; return; } | |
| 1995/0406 | ||
| 1994/0624 | error(Ebadarg); } | |
| 1999/0714/sys/src/9/pc/devvga.c:272,281 – 1999/1005/sys/src/9/pc/devvga.c:306,312 | ||
| 1997/0327 | static long | |
| 1998/0319 | vgawrite(Chan* c, void* a, long n, vlong off) | |
| 1992/0527 | { | |
| 1994/0624 |
| |
| 1997/1101 | char *p; | |
| 1993/1116 |
| |
| 1994/0603 |
| |
| 1998/0319 | ulong offset = off; | |
| 1992/0528 | ||
| 1997/1101 | switch(c->qid.path & ~CHDIR){ | |
| 1999/0714/sys/src/9/pc/devvga.c:297,329 – 1999/1005/sys/src/9/pc/devvga.c:328,333 | ||
| 1997/1101 | poperror(); free(p); | |
| 1992/0603 | return n; | |
| 1997/1101 | ||
| 1994/0624 |
| |
| 1997/1101 |
| |
| 1999/0714 |
| |
| 1997/1101 |
| |
| 1992/0604 |
| |
| 1997/1101 | ||
| 1994/0624 |
| |
| 1993/1116 |
| |
| 1999/0714 |
| |
| 1993/1116 |
| |
| 1997/1101 |
| |
| 1993/1116 |
| |
| 1997/1101 | ||
| 1994/0624 |
| |
| 1997/1101 |
| |
| 1994/0603 |
| |
| 1999/0714 |
| |
| 1994/0603 |
| |
| 1997/1101 |
| |
| 1994/0603 |
| |
| 1997/1101 | default: error(Egreg); | |