Signed-off-by: Sheng Yang <sh...@linux.intel.com>
---
 libkvm/libkvm.c |   25 +++++++++++++++++++++++++
 libkvm/libkvm.h |    7 +++++++
 2 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c
index b4433bd..ef0066a 100644
--- a/libkvm/libkvm.c
+++ b/libkvm/libkvm.c
@@ -1342,3 +1342,28 @@ int kvm_get_irq_route_gsi(kvm_context_t kvm)
                kvm->max_used_gsi : KVM_IOAPIC_NUM_PINS;
 }
 
+#ifdef KVM_CAP_DEVICE_MSIX
+int kvm_set_msix_nr(kvm_context_t kvm,
+                    struct kvm_assigned_msix_nr *msix_nr)
+{
+        int ret;
+
+        ret = ioctl(kvm->vm_fd, KVM_SET_MSIX_NR, msix_nr);
+        if (ret < 0)
+                return -errno;
+
+        return ret;
+}
+
+int kvm_set_msix_entry(kvm_context_t kvm,
+                       struct kvm_assigned_msix_entry *entry)
+{
+        int ret;
+
+        ret = ioctl(kvm->vm_fd, KVM_SET_MSIX_ENTRY, entry);
+        if (ret < 0)
+                return -errno;
+
+        return ret;
+}
+#endif
diff --git a/libkvm/libkvm.h b/libkvm/libkvm.h
index 3c09be1..e2f6787 100644
--- a/libkvm/libkvm.h
+++ b/libkvm/libkvm.h
@@ -828,4 +828,11 @@ int kvm_commit_irq_routes(kvm_context_t kvm);
  * \param kvm Pointer to the current kvm_context
  */
 int kvm_get_irq_route_gsi(kvm_context_t kvm);
+
+#ifdef KVM_CAP_DEVICE_MSIX
+int kvm_set_msix_nr(kvm_context_t kvm,
+                    struct kvm_assigned_msix_nr *msix_nr);
+int kvm_set_msix_entry(kvm_context_t kvm,
+                       struct kvm_assigned_msix_entry *entry);
+#endif
 #endif
-- 
1.5.4.5

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to