]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - include/linux/kvm_host.h
kvm: introduce manual dirty log reprotect
[thirdparty/kernel/stable.git] / include / linux / kvm_host.h
index c926698040e0dad67df08b34012f9bfb6a111d7a..e065aeaae29e80232f24b73fce387aafca8e3380 100644 (file)
@@ -449,6 +449,7 @@ struct kvm {
 #endif
        long tlbs_dirty;
        struct list_head devices;
+       bool manual_dirty_log_protect;
        struct dentry *debugfs_dentry;
        struct kvm_stat_data **debugfs_stat_data;
        struct srcu_struct srcu;
@@ -753,7 +754,9 @@ int kvm_get_dirty_log(struct kvm *kvm,
                        struct kvm_dirty_log *log, int *is_dirty);
 
 int kvm_get_dirty_log_protect(struct kvm *kvm,
-                       struct kvm_dirty_log *log, bool *is_dirty);
+                             struct kvm_dirty_log *log, bool *flush);
+int kvm_clear_dirty_log_protect(struct kvm *kvm,
+                               struct kvm_clear_dirty_log *log, bool *flush);
 
 void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm,
                                        struct kvm_memory_slot *slot,
@@ -762,9 +765,13 @@ void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm,
 
 int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
                                struct kvm_dirty_log *log);
+int kvm_vm_ioctl_clear_dirty_log(struct kvm *kvm,
+                                 struct kvm_clear_dirty_log *log);
 
 int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_level,
                        bool line_status);
+int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
+                           struct kvm_enable_cap *cap);
 long kvm_arch_vm_ioctl(struct file *filp,
                       unsigned int ioctl, unsigned long arg);