diff options
author | Sheng Yang <sheng@linux.intel.com> | 2009-02-10 00:57:06 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-03-24 05:03:09 -0400 |
commit | 79950e1073150909619b7c0f9a39a2fea83a42d8 (patch) | |
tree | 5dc96ee5d69029d61b90bc18d44cb42baaa925cd /include | |
parent | 34c33d163fe509da8414a736c6328855f8c164e5 (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.h | 9 | ||||
-rw-r--r-- | include/linux/kvm_host.h | 2 |
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 | ||
413 | struct 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 | ||
416 | struct kvm_irq_routing_entry { | 424 | struct 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) |