History

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.

Will Deacon committed 12 years ago

Commit d60eacb1 parent 184564e3 files · +55 −33Browse files

Showing the changes to include/uapi/linux (1 of 3 files). Show all

Unified · Split

include/uapi/linux/kvm.h+16−6
@@ -943,15 +943,25 @@ struct kvm_device_attr { · 942 unmodified lines
943943 __u64 addr; /* userspace address of attr data */
944944 };
945945
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
950946 #define KVM_DEV_VFIO_GROUP 1
951947 #define KVM_DEV_VFIO_GROUP_ADD 1
952948 #define KVM_DEV_VFIO_GROUP_DEL 2
953−#define KVM_DEV_TYPE_ARM_VGIC_V2 5
954−#define KVM_DEV_TYPE_FLIC 6
949+
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+};
955965
956966 /*
957967 * ioctls for VM fds