27 строки
944 B
C
27 строки
944 B
C
|
#ifndef __KVM_X86_PMU_H
|
||
|
#define __KVM_X86_PMU_H
|
||
|
|
||
|
#define vcpu_to_pmu(vcpu) (&(vcpu)->arch.pmu)
|
||
|
#define pmu_to_vcpu(pmu) (container_of((pmu), struct kvm_vcpu, arch.pmu))
|
||
|
#define pmc_to_pmu(pmc) (&(pmc)->vcpu->arch.pmu)
|
||
|
|
||
|
struct kvm_event_hw_type_mapping {
|
||
|
u8 eventsel;
|
||
|
u8 unit_mask;
|
||
|
unsigned event_type;
|
||
|
};
|
||
|
|
||
|
void kvm_pmu_deliver_pmi(struct kvm_vcpu *vcpu);
|
||
|
void kvm_pmu_handle_event(struct kvm_vcpu *vcpu);
|
||
|
int kvm_pmu_rdpmc(struct kvm_vcpu *vcpu, unsigned pmc, u64 *data);
|
||
|
int kvm_pmu_is_valid_msr_idx(struct kvm_vcpu *vcpu, unsigned idx);
|
||
|
bool kvm_pmu_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr);
|
||
|
int kvm_pmu_get_msr(struct kvm_vcpu *vcpu, u32 msr, u64 *data);
|
||
|
int kvm_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info);
|
||
|
void kvm_pmu_refresh(struct kvm_vcpu *vcpu);
|
||
|
void kvm_pmu_reset(struct kvm_vcpu *vcpu);
|
||
|
void kvm_pmu_init(struct kvm_vcpu *vcpu);
|
||
|
void kvm_pmu_destroy(struct kvm_vcpu *vcpu);
|
||
|
|
||
|
#endif /* __KVM_X86_PMU_H */
|