|
@@ -101,9 +101,13 @@ struct kvm_userspace_memory_region {
|
|
__u64 userspace_addr; /* start of the userspace allocated memory */
|
|
__u64 userspace_addr; /* start of the userspace allocated memory */
|
|
};
|
|
};
|
|
|
|
|
|
-/* for kvm_memory_region::flags */
|
|
|
|
-#define KVM_MEM_LOG_DIRTY_PAGES 1UL
|
|
|
|
-#define KVM_MEMSLOT_INVALID (1UL << 1)
|
|
|
|
|
|
+/*
|
|
|
|
+ * The bit 0 ~ bit 15 of kvm_memory_region::flags are visible for userspace,
|
|
|
|
+ * other bits are reserved for kvm internal use which are defined in
|
|
|
|
+ * include/linux/kvm_host.h.
|
|
|
|
+ */
|
|
|
|
+#define KVM_MEM_LOG_DIRTY_PAGES (1UL << 0)
|
|
|
|
+#define KVM_MEM_READONLY (1UL << 1)
|
|
|
|
|
|
/* for KVM_IRQ_LINE */
|
|
/* for KVM_IRQ_LINE */
|
|
struct kvm_irq_level {
|
|
struct kvm_irq_level {
|
|
@@ -618,6 +622,10 @@ struct kvm_ppc_smmu_info {
|
|
#define KVM_CAP_PPC_GET_SMMU_INFO 78
|
|
#define KVM_CAP_PPC_GET_SMMU_INFO 78
|
|
#define KVM_CAP_S390_COW 79
|
|
#define KVM_CAP_S390_COW 79
|
|
#define KVM_CAP_PPC_ALLOC_HTAB 80
|
|
#define KVM_CAP_PPC_ALLOC_HTAB 80
|
|
|
|
+#ifdef __KVM_HAVE_READONLY_MEM
|
|
|
|
+#define KVM_CAP_READONLY_MEM 81
|
|
|
|
+#endif
|
|
|
|
+#define KVM_CAP_IRQFD_RESAMPLE 82
|
|
|
|
|
|
#ifdef KVM_CAP_IRQ_ROUTING
|
|
#ifdef KVM_CAP_IRQ_ROUTING
|
|
|
|
|
|
@@ -683,12 +691,21 @@ struct kvm_xen_hvm_config {
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
|
|
#define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
|
|
|
|
+/*
|
|
|
|
+ * Available with KVM_CAP_IRQFD_RESAMPLE
|
|
|
|
+ *
|
|
|
|
+ * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
|
|
|
|
+ * the irqfd to operate in resampling mode for level triggered interrupt
|
|
|
|
+ * emlation. See Documentation/virtual/kvm/api.txt.
|
|
|
|
+ */
|
|
|
|
+#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
|
|
|
|
|
|
struct kvm_irqfd {
|
|
struct kvm_irqfd {
|
|
__u32 fd;
|
|
__u32 fd;
|
|
__u32 gsi;
|
|
__u32 gsi;
|
|
__u32 flags;
|
|
__u32 flags;
|
|
- __u8 pad[20];
|
|
|
|
|
|
+ __u32 resamplefd;
|
|
|
|
+ __u8 pad[16];
|
|
};
|
|
};
|
|
|
|
|
|
struct kvm_clock_data {
|
|
struct kvm_clock_data {
|