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
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 1946#define KVM_DEV_VFIO_GROUP 1
951#define KVM_DEV_VFIO_GROUP_ADD 1947#define KVM_DEV_VFIO_GROUP_ADD 1
952#define KVM_DEV_VFIO_GROUP_DEL 2948#define KVM_DEV_VFIO_GROUP_DEL 2
953#define KVM_DEV_TYPE_ARM_VGIC_V2 5949
954#define KVM_DEV_TYPE_FLIC 6950enum 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 fds967 * ioctls for VM fds