cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

msr.c (679B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <math.h>
      3#include <unistd.h>
      4#include <stdio.h>
      5#include <stdlib.h>
      6#include <sys/types.h>
      7#include <sys/stat.h>
      8#include <fcntl.h>
      9#include <sys/timeb.h>
     10#include <sched.h>
     11#include <errno.h>
     12
     13
     14int main(int argc, char **argv) {
     15	int cpu, fd;
     16	long long msr;
     17	char msr_file_name[64];
     18
     19	if (argc != 2)
     20		return 1;
     21
     22	errno = 0;
     23	cpu = strtol(argv[1], (char **) NULL, 10);
     24
     25	if (errno)
     26		return 1;
     27
     28	sprintf(msr_file_name, "/dev/cpu/%d/msr", cpu);
     29	fd = open(msr_file_name, O_RDONLY);
     30
     31	if (fd == -1) {
     32		perror("Failed to open");
     33		return 1;
     34	}
     35
     36	pread(fd, &msr,  sizeof(msr), 0x199);
     37
     38	printf("msr 0x199: 0x%llx\n", msr);
     39	return 0;
     40}