diff options
| author | Will Deacon <will.deacon@arm.com> | 2014-09-02 05:27:33 -0400 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-09-17 07:10:08 -0400 |
| commit | d60eacb07053142bfb9b41582074a89a790a9d46 (patch) | |
| tree | de5bddd60b8cf78dbe0c7eabbe4d46ae656713a7 /include/uapi/linux | |
| parent | 184564efae4d775225c8fe3b762a56956fb1f827 (diff) | |
KVM: device: add simple registration mechanism for kvm_device_ops
kvm_ioctl_create_device currently has knowledge of all the device types
and their associated ops. This is fairly inflexible when adding support
for new in-kernel device emulations, so move what we currently have out
into a table, which can support dynamic registration of ops by new
drivers for virtual hardware.
Cc: Alex Williamson <Alex.Williamson@redhat.com>
Cc: Alex Graf <agraf@suse.de>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/kvm.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 0695a1e3e332..60768822b140 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
| @@ -943,15 +943,25 @@ struct kvm_device_attr { | |||
| 943 | __u64 addr; /* userspace address of attr data */ | 943 | __u64 addr; /* userspace address of attr data */ |
| 944 | }; | 944 | }; |
| 945 | 945 | ||
| 946 | #define KVM_DEV_TYPE_FSL_MPIC_20 1 | ||
| 947 | #define KVM_DEV_TYPE_FSL_MPIC_42 2 | ||
| 948 | #define KVM_DEV_TYPE_XICS 3 | ||
| 949 | #define KVM_DEV_TYPE_VFIO 4 | ||
| 950 | #define KVM_DEV_VFIO_GROUP 1 | 946 | #define KVM_DEV_VFIO_GROUP 1 |
| 951 | #define KVM_DEV_VFIO_GROUP_ADD 1 | 947 | #define KVM_DEV_VFIO_GROUP_ADD 1 |
| 952 | #define KVM_DEV_VFIO_GROUP_DEL 2 | 948 | #define KVM_DEV_VFIO_GROUP_DEL 2 |
| 953 | #define KVM_DEV_TYPE_ARM_VGIC_V2 5 | 949 | |
| 954 | #define KVM_DEV_TYPE_FLIC 6 | 950 | enum kvm_device_type { |
| 951 | KVM_DEV_TYPE_FSL_MPIC_20 = 1, | ||
| 952 | #define KVM_DEV_TYPE_FSL_MPIC_20 KVM_DEV_TYPE_FSL_MPIC_20 | ||
| 953 | KVM_DEV_TYPE_FSL_MPIC_42, | ||
| 954 | #define KVM_DEV_TYPE_FSL_MPIC_42 KVM_DEV_TYPE_FSL_MPIC_42 | ||
| 955 | KVM_DEV_TYPE_XICS, | ||
| 956 | #define KVM_DEV_TYPE_XICS KVM_DEV_TYPE_XICS | ||
| 957 | KVM_DEV_TYPE_VFIO, | ||
| 958 | #define KVM_DEV_TYPE_VFIO KVM_DEV_TYPE_VFIO | ||
| 959 | KVM_DEV_TYPE_ARM_VGIC_V2, | ||
| 960 | #define KVM_DEV_TYPE_ARM_VGIC_V2 KVM_DEV_TYPE_ARM_VGIC_V2 | ||
| 961 | KVM_DEV_TYPE_FLIC, | ||
| 962 | #define KVM_DEV_TYPE_FLIC KVM_DEV_TYPE_FLIC | ||
| 963 | KVM_DEV_TYPE_MAX, | ||
| 964 | }; | ||
| 955 | 965 | ||
| 956 | /* | 966 | /* |
| 957 | * ioctls for VM fds | 967 | * ioctls for VM fds |
