summaryrefslogtreecommitdiffstats
path: root/cachepc/event.h
blob: 646723e41edb77cf5904d6320696a8723efed960 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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);