summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/devvga.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-04-02 20:08:15 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-04-02 20:08:15 +0200
commita6d852d0a63c3804fa651fdb8abbf6893f898afd (patch)
tree355644f70ea810fe668e6611a8ad7e8b8e250cde /sys/src/9/pc/devvga.c
parent6a1841dce54b372f0c08e4e0a3019c4d305918f7 (diff)
devvga: include hwgc in vgactl file
Diffstat (limited to 'sys/src/9/pc/devvga.c')
-rw-r--r--sys/src/9/pc/devvga.c46
1 files changed, 19 insertions, 27 deletions
diff --git a/sys/src/9/pc/devvga.c b/sys/src/9/pc/devvga.c
index 2ed322cb4..7bf3937a5 100644
--- a/sys/src/9/pc/devvga.c
+++ b/sys/src/9/pc/devvga.c
@@ -159,8 +159,7 @@ checkport(int start, int end)
static long
vgaread(Chan* c, void* a, long n, vlong off)
{
- int len;
- char *p, *s;
+ char *p, *s, *e;
VGAscr *scr;
ulong offset = off;
char chbuf[30];
@@ -181,41 +180,34 @@ vgaread(Chan* c, void* a, long n, vlong off)
case Qvgactl:
scr = &vgascreen[0];
- p = smalloc(READSTR);
+ s = smalloc(READSTR);
if(waserror()){
- free(p);
+ free(s);
nexterror();
}
-
- len = 0;
-
- if(scr->dev)
- s = scr->dev->name;
- else
- s = "cga";
- len += snprint(p+len, READSTR-len, "type %s\n", s);
-
- if(scr->gscreen) {
- len += snprint(p+len, READSTR-len, "size %dx%dx%d %s\n",
+ p = s, e = s+READSTR;
+ p = seprint(p, e, "type %s\n",
+ scr->dev != nil ? scr->dev->name : "cga");
+ if(scr->gscreen != nil) {
+ p = seprint(p, e, "size %dx%dx%d %s\n",
scr->gscreen->r.max.x, scr->gscreen->r.max.y,
scr->gscreen->depth, chantostr(chbuf, scr->gscreen->chan));
-
if(Dx(scr->gscreen->r) != Dx(physgscreenr)
|| Dy(scr->gscreen->r) != Dy(physgscreenr))
- len += snprint(p+len, READSTR-len, "actualsize %dx%d\n",
+ p = seprint(p, e, "actualsize %dx%d\n",
physgscreenr.max.x, physgscreenr.max.y);
}
-
- len += snprint(p+len, READSTR-len, "hwaccel %s\n", hwaccel ? "on" : "off");
- len += snprint(p+len, READSTR-len, "hwblank %s\n", hwblank ? "on" : "off");
- len += snprint(p+len, READSTR-len, "panning %s\n", panning ? "on" : "off");
- len += snprint(p+len, READSTR-len, "addr p %#p v %#p size %#ux\n", scr->paddr, scr->vaddr, scr->apsize);
- len += snprint(p+len, READSTR-len, "softscreen %s\n", scr->softscreen ? "on" : "off");
- USED(len);
-
- n = readstr(offset, a, n, p);
+ p = seprint(p, e, "hwgc %s\n",
+ scr->cur != nil ? scr->cur->name : "off");
+ p = seprint(p, e, "hwaccel %s\n", hwaccel ? "on" : "off");
+ p = seprint(p, e, "hwblank %s\n", hwblank ? "on" : "off");
+ p = seprint(p, e, "panning %s\n", panning ? "on" : "off");
+ p = seprint(p, e, "addr p %#p v %#p size %#ux\n",
+ scr->paddr, scr->vaddr, scr->apsize);
+ p = seprint(p, e, "softscreen %s\n", scr->softscreen ? "on" : "off");
+ n = readstr(offset, a, p - s, s);
poperror();
- free(p);
+ free(s);
return n;