2 #ifndef __KVM_X86_PAGE_TRACK_H
3 #define __KVM_X86_PAGE_TRACK_H
5 #include <linux/kvm_host.h>
7 #include <asm/kvm_page_track.h>
15 struct kvm_memory_slot *slot,
16 unsigned long npages);
21 struct kvm_memory_slot *slot, gfn_t gfn);
24 const struct kvm_memory_slot *slot, gfn_t gfn);
26 #ifdef CONFIG_KVM_EXTERNAL_WRITE_TRACKING
35 return !hlist_empty(&kvm->arch.track_notifier_head.track_notifier_list);
42 const u8 *
new,
int bytes) { }
44 struct kvm_memory_slot *slot) { }
51 const u8 *
new,
int bytes)
void kvm_mmu_track_write(struct kvm_vcpu *vcpu, gpa_t gpa, const u8 *new, int bytes)
static void kvm_page_track_cleanup(struct kvm *kvm)
static bool kvm_page_track_has_external_user(struct kvm *kvm)
int kvm_page_track_write_tracking_alloc(struct kvm_memory_slot *slot)
bool kvm_gfn_is_write_tracked(struct kvm *kvm, const struct kvm_memory_slot *slot, gfn_t gfn)
void kvm_page_track_free_memslot(struct kvm_memory_slot *slot)
static void __kvm_page_track_write(struct kvm *kvm, gpa_t gpa, const u8 *new, int bytes)
static int kvm_page_track_init(struct kvm *kvm)
static void kvm_page_track_write(struct kvm_vcpu *vcpu, gpa_t gpa, const u8 *new, int bytes)
void __kvm_write_track_add_gfn(struct kvm *kvm, struct kvm_memory_slot *slot, gfn_t gfn)
void __kvm_write_track_remove_gfn(struct kvm *kvm, struct kvm_memory_slot *slot, gfn_t gfn)
bool kvm_page_track_write_tracking_enabled(struct kvm *kvm)
static void kvm_page_track_delete_slot(struct kvm *kvm, struct kvm_memory_slot *slot)
int kvm_page_track_create_memslot(struct kvm *kvm, struct kvm_memory_slot *slot, unsigned long npages)