ref: 7192dd8d0b98e7ccddb00dea5be7e4e342e29025
dir: /msr.c/
#include <u.h> #include <libc.h> static void usage(void) { fprint(2, "%s REGISTER\n", argv0); exits("usage"); } void main(int argc, char **argv) { uvlong x, off; int f; ARGBEGIN{ }ARGEND if(argc < 1) usage(); if((f = open("/dev/msr", OREAD)) < 0) sysfatal("%r"); off = strtoull(argv[0], nil, 0); if(pread(f, &x, 8, off) != 8) sysfatal("%r"); close(f); print("%#llux\n", x); exits(nil); }