1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#include "qemu/log.h"
20#include "cpu.h"
21#include "qemu/main-loop.h"
22#include "exec/exec-all.h"
23
24bool riscv_pmu_ctr_monitor_instructions(CPURISCVState *env,
25 uint32_t target_ctr);
26bool riscv_pmu_ctr_monitor_cycles(CPURISCVState *env,
27 uint32_t target_ctr);
28void riscv_pmu_timer_cb(void *priv);
29int riscv_pmu_init(RISCVCPU *cpu, int num_counters);
30int riscv_pmu_update_event_map(CPURISCVState *env, uint64_t value,
31 uint32_t ctr_idx);
32int riscv_pmu_incr_ctr(RISCVCPU *cpu, enum riscv_pmu_event_idx event_idx);
33void riscv_pmu_generate_fdt_node(void *fdt, int num_counters, char *pmu_name);
34int riscv_pmu_setup_timer(CPURISCVState *env, uint64_t value,
35 uint32_t ctr_idx);
36