expose the acpi configuration of platform devices like the 8042 kbd. Reference: /n/atom/patch/applied2013/nixarchcfg Date: Mon Oct 7 22:58:44 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/dat.h Mon Oct 7 22:58:13 2013 +++ /sys/src/nix/k10/dat.h Mon Oct 7 22:58:13 2013 @@ -221,7 +221,7 @@ uint copymode; /* 0 is copy on write, 1 is copy on reference */ - uchar nolegacyprobe; /* acpi tells us */ + uchar nolegacyprobe; /* acpi tells us. all negated in case acpi unavailable */ uchar noi8042kbd; uchar novga; uchar nomsi; --- /sys/src/nix/k10/devarch.c Mon Oct 7 22:58:13 2013 +++ /sys/src/nix/k10/devarch.c Mon Oct 7 22:58:13 2013 @@ -376,10 +376,33 @@ return readstr(off, a, n, buf); } +static long +archcfgread(Chan*, void *a, long n, vlong off) +{ + char buf[512], *p, *e; + + p = buf; + e = buf+sizeof buf; + + /* builtin devices may be missing. */ + p = seprint(p, e, "legacy %d\n", !sys->nolegacyprobe); + p = seprint(p, e, "i8042kbd %d\n", !sys->noi8042kbd); + p = seprint(p, e, "vga %d\n", !sys->novga); + p = seprint(p, e, "msi %d\n", !sys->nomsi); + p = seprint(p, e, "cmos %d\n", !sys->nocmos); + + p = seprint(p, e, "monitor %d\n", sys->monitor); + + USED(p); + + return readstr(off, a, n, buf); +} + void archinit(void) { addarchfile("cputype", 0444, cputyperead, nil); + addarchfile("archcfg", 0444, archcfgread, nil); } void --- /sys/src/nix/k10/arch.c Mon Oct 7 22:58:13 2013 +++ /sys/src/nix/k10/arch.c Mon Oct 7 22:58:13 2013 @@ -60,11 +60,11 @@ { uvlong t; - cycles(&t); - p->pcycles += t; - fpuprocsave(p); mmuflushtlb(m->pml4->pa); + + cycles(&t); + p->pcycles += t; } static void