0001
0002 #ifndef __XEN_PMU_H
0003 #define __XEN_PMU_H
0004
0005 #include <xen/interface/xenpmu.h>
0006
0007 extern bool is_xen_pmu;
0008
0009 irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
0010 #ifdef CONFIG_XEN_HAVE_VPMU
0011 void xen_pmu_init(int cpu);
0012 void xen_pmu_finish(int cpu);
0013 #else
0014 static inline void xen_pmu_init(int cpu) {}
0015 static inline void xen_pmu_finish(int cpu) {}
0016 #endif
0017 bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
0018 bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
0019 int pmu_apic_update(uint32_t reg);
0020 unsigned long long xen_read_pmc(int counter);
0021
0022 #endif