summaryrefslogtreecommitdiffstats
path: root/test/sevstep.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-10-05 15:05:19 +0200
committerLouis Burda <quent.burda@gmail.com>2022-10-05 15:05:19 +0200
commit58d8565f015f9e06e1e51a0fe4654b966b2c27c0 (patch)
treee862ba1491cb114be46e98022ce8feaf98f8eca2 /test/sevstep.c
parent8b1535789509812763de132f877b596d01861714 (diff)
downloadcachepc-58d8565f015f9e06e1e51a0fe4654b966b2c27c0.tar.gz
cachepc-58d8565f015f9e06e1e51a0fe4654b966b2c27c0.zip
Refactor sevstep kernel patch into repository
Diffstat (limited to 'test/sevstep.c')
-rw-r--r--test/sevstep.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/sevstep.c b/test/sevstep.c
new file mode 100644
index 0000000..3ca7f03
--- /dev/null
+++ b/test/sevstep.c
@@ -0,0 +1,32 @@
+#include "sevstep/uapi.h"
+
+#include <linux/kvm.h>
+#include <sys/ioctl.h>
+
+#include <err.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+int
+main(int argc, const char **argv)
+{
+ track_all_pages_t tracking;
+ int ret, fd;
+
+ fd = open("/proc/cachepc");
+ if (!fd) err(1, "open");
+
+ tracking.track_mode = KVM_PAGE_TRACK_ACCESS;
+ ret = ioctl(fd, KVM_USPT_TRACK_ALL, &tracking);
+ if (ret == -1) err(1, "ioctl TRACK_ALL ACCESS");
+
+
+ tracking.track_mode = KVM_PAGE_TRACK_RESET_ACCESSED;
+ ret = ioctl(fd, KVM_USPT_TRACK_ALL, &tracking);
+ if (ret == -1) err(1, "ioctl TRACK_ALL RESET_ACCESSED");
+
+ ret = ioctl(fd, KVM_USPT_UNTRACK_ALL, &tracking);
+ if (ret == -1) err(1, "ioctl UNTRACK_ALL");
+
+ close(fd);
+}