summaryrefslogtreecommitdiffstats
path: root/cachepc/events.h
diff options
context:
space:
mode:
Diffstat (limited to 'cachepc/events.h')
-rw-r--r--cachepc/events.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/cachepc/events.h b/cachepc/events.h
new file mode 100644
index 0000000..646723e
--- /dev/null
+++ b/cachepc/events.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "uapi.h"
+
+#include <linux/kvm.h>
+#include <linux/kvm_host.h>
+#include <linux/types.h>
+
+extern uint64_t cachepc_last_event_sent;
+extern uint64_t cachepc_last_event_acked;
+extern rwlock_t cachepc_event_lock;
+
+extern struct cpc_track_event cachepc_event;
+extern bool cachepc_event_avail;
+
+extern bool cachepc_events_init;
+
+void cachepc_events_reset(void);
+
+int cachepc_send_tracking_event(uint64_t inst_fault_gfn, uint32_t inst_fault_err,
+ uint64_t data_fault_gfn, uint32_t data_fault_err);
+bool cachepc_event_is_done(uint64_t id);
+
+int cachepc_handle_poll_event_ioctl(struct cpc_track_event *userpace_mem);
+int cachepc_handle_ack_event_ioctl(uint64_t eventid);