diff options
author | Sheng Yang <sheng@linux.intel.com> | 2009-02-25 04:22:26 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-06-10 04:48:23 -0400 |
commit | c1e01514296e8a4a43ff0c88dcff635cb90feb5f (patch) | |
tree | 299a54da71c4900fc3b71840e2c6eec98b35f8b4 /include/linux/kvm.h | |
parent | bfd349d073b2838a6a031f057d25e266619b7093 (diff) |
KVM: Ioctls for init MSI-X entry
Introduce KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY two ioctls.
This two ioctls are used by userspace to specific guest device MSI-X entry
number and correlate MSI-X entry with GSI during the initialization stage.
MSI-X should be well initialzed before enabling.
Don't support change MSI-X entry number for now.
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include/linux/kvm.h')
-rw-r--r-- | include/linux/kvm.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 8cc137911b34..78cdee8c6355 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
@@ -487,6 +487,10 @@ struct kvm_irq_routing { | |||
487 | #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71) | 487 | #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71) |
488 | #define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \ | 488 | #define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \ |
489 | struct kvm_assigned_pci_dev) | 489 | struct kvm_assigned_pci_dev) |
490 | #define KVM_ASSIGN_SET_MSIX_NR \ | ||
491 | _IOW(KVMIO, 0x73, struct kvm_assigned_msix_nr) | ||
492 | #define KVM_ASSIGN_SET_MSIX_ENTRY \ | ||
493 | _IOW(KVMIO, 0x74, struct kvm_assigned_msix_entry) | ||
490 | 494 | ||
491 | /* | 495 | /* |
492 | * ioctls for vcpu fds | 496 | * ioctls for vcpu fds |
@@ -607,4 +611,18 @@ struct kvm_assigned_irq { | |||
607 | #define KVM_DEV_IRQ_ASSIGN_MSI_ACTION KVM_DEV_IRQ_ASSIGN_ENABLE_MSI | 611 | #define KVM_DEV_IRQ_ASSIGN_MSI_ACTION KVM_DEV_IRQ_ASSIGN_ENABLE_MSI |
608 | #define KVM_DEV_IRQ_ASSIGN_ENABLE_MSI (1 << 0) | 612 | #define KVM_DEV_IRQ_ASSIGN_ENABLE_MSI (1 << 0) |
609 | 613 | ||
614 | struct kvm_assigned_msix_nr { | ||
615 | __u32 assigned_dev_id; | ||
616 | __u16 entry_nr; | ||
617 | __u16 padding; | ||
618 | }; | ||
619 | |||
620 | #define KVM_MAX_MSIX_PER_DEV 512 | ||
621 | struct kvm_assigned_msix_entry { | ||
622 | __u32 assigned_dev_id; | ||
623 | __u32 gsi; | ||
624 | __u16 entry; /* The index of entry in the MSI-X table */ | ||
625 | __u16 padding[3]; | ||
626 | }; | ||
627 | |||
610 | #endif | 628 | #endif |