/* By Ron Minnich @ wiki.laptop.org */ /* No rights or license mentioned. */ #define _LARGEFILE64_SOURCE #include #include #include #include #include #include int main (int argc, char *argv[]) { unsigned char buf[8]; int fd_msr, i; unsigned long addr = 0; if (argc < 2) { printf("usage:rdmsr reg\n"); exit(1); } addr = strtoul(argv[1], NULL, 0); fd_msr = open("/dev/cpu/0/msr", O_RDONLY); lseek64(fd_msr, (off64_t)addr, SEEK_SET); read(fd_msr, buf, 8); printf("MSR register 0x%lx => ", addr); for (i = 7; i > 0; i--) printf("%2.2x:", buf[i]); printf("%2.2x\n", buf[i]); return(0); }