aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSheng Yang <sheng@linux.intel.com>2009-02-10 00:57:06 -0500
committerAvi Kivity <avi@redhat.com>2009-03-24 05:03:09 -0400
commit79950e1073150909619b7c0f9a39a2fea83a42d8 (patch)
tree5dc96ee5d69029d61b90bc18d44cb42baaa925cd /include
parent34c33d163fe509da8414a736c6328855f8c164e5 (diff)
KVM: Use irq routing API for MSI
Merge MSI userspace interface with IRQ routing table. Notice the API have been changed, and using IRQ routing table would be the only interface kvm-userspace supported. Signed-off-by: Sheng Yang <sheng@linux.intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kvm.h9
-rw-r--r--include/linux/kvm_host.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 869462ca7625..2163b3dd36e7 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -410,8 +410,16 @@ struct kvm_irq_routing_irqchip {
410 __u32 pin; 410 __u32 pin;
411}; 411};
412 412
413struct kvm_irq_routing_msi {
414 __u32 address_lo;
415 __u32 address_hi;
416 __u32 data;
417 __u32 pad;
418};
419
413/* gsi routing entry types */ 420/* gsi routing entry types */
414#define KVM_IRQ_ROUTING_IRQCHIP 1 421#define KVM_IRQ_ROUTING_IRQCHIP 1
422#define KVM_IRQ_ROUTING_MSI 2
415 423
416struct kvm_irq_routing_entry { 424struct kvm_irq_routing_entry {
417 __u32 gsi; 425 __u32 gsi;
@@ -420,6 +428,7 @@ struct kvm_irq_routing_entry {
420 __u32 pad; 428 __u32 pad;
421 union { 429 union {
422 struct kvm_irq_routing_irqchip irqchip; 430 struct kvm_irq_routing_irqchip irqchip;
431 struct kvm_irq_routing_msi msi;
423 __u32 pad[8]; 432 __u32 pad[8];
424 } u; 433 } u;
425}; 434};
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index c03a0a9a8584..339eda3ca6ee 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -116,6 +116,7 @@ struct kvm_kernel_irq_routing_entry {
116 unsigned irqchip; 116 unsigned irqchip;
117 unsigned pin; 117 unsigned pin;
118 } irqchip; 118 } irqchip;
119 struct msi_msg msi;
119 }; 120 };
120 struct list_head link; 121 struct list_head link;
121}; 122};
@@ -327,7 +328,6 @@ struct kvm_assigned_dev_kernel {
327 int host_irq; 328 int host_irq;
328 bool host_irq_disabled; 329 bool host_irq_disabled;
329 int guest_irq; 330 int guest_irq;
330 struct msi_msg guest_msi;
331#define KVM_ASSIGNED_DEV_GUEST_INTX (1 << 0) 331#define KVM_ASSIGNED_DEV_GUEST_INTX (1 << 0)
332#define KVM_ASSIGNED_DEV_GUEST_MSI (1 << 1) 332#define KVM_ASSIGNED_DEV_GUEST_MSI (1 << 1)
333#define KVM_ASSIGNED_DEV_HOST_INTX (1 << 8) 333#define KVM_ASSIGNED_DEV_HOST_INTX (1 << 8)