aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/kvm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/kvm.h')
-rw-r--r--include/uapi/linux/kvm.h36
1 files changed, 34 insertions, 2 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 74d0ff3dfd66..d4005192ad6e 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -579,9 +579,7 @@ struct kvm_ppc_smmu_info {
579#ifdef __KVM_HAVE_PIT 579#ifdef __KVM_HAVE_PIT
580#define KVM_CAP_REINJECT_CONTROL 24 580#define KVM_CAP_REINJECT_CONTROL 24
581#endif 581#endif
582#ifdef __KVM_HAVE_IOAPIC
583#define KVM_CAP_IRQ_ROUTING 25 582#define KVM_CAP_IRQ_ROUTING 25
584#endif
585#define KVM_CAP_IRQ_INJECT_STATUS 26 583#define KVM_CAP_IRQ_INJECT_STATUS 26
586#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT 584#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT
587#define KVM_CAP_DEVICE_DEASSIGNMENT 27 585#define KVM_CAP_DEVICE_DEASSIGNMENT 27
@@ -668,6 +666,9 @@ struct kvm_ppc_smmu_info {
668#define KVM_CAP_PPC_EPR 86 666#define KVM_CAP_PPC_EPR 86
669#define KVM_CAP_ARM_PSCI 87 667#define KVM_CAP_ARM_PSCI 87
670#define KVM_CAP_ARM_SET_DEVICE_ADDR 88 668#define KVM_CAP_ARM_SET_DEVICE_ADDR 88
669#define KVM_CAP_DEVICE_CTRL 89
670#define KVM_CAP_IRQ_MPIC 90
671#define KVM_CAP_PPC_RTAS 91
671 672
672#ifdef KVM_CAP_IRQ_ROUTING 673#ifdef KVM_CAP_IRQ_ROUTING
673 674
@@ -821,6 +822,27 @@ struct kvm_arm_device_addr {
821}; 822};
822 823
823/* 824/*
825 * Device control API, available with KVM_CAP_DEVICE_CTRL
826 */
827#define KVM_CREATE_DEVICE_TEST 1
828
829struct kvm_create_device {
830 __u32 type; /* in: KVM_DEV_TYPE_xxx */
831 __u32 fd; /* out: device handle */
832 __u32 flags; /* in: KVM_CREATE_DEVICE_xxx */
833};
834
835struct kvm_device_attr {
836 __u32 flags; /* no flags currently defined */
837 __u32 group; /* device-defined */
838 __u64 attr; /* group-defined */
839 __u64 addr; /* userspace address of attr data */
840};
841
842#define KVM_DEV_TYPE_FSL_MPIC_20 1
843#define KVM_DEV_TYPE_FSL_MPIC_42 2
844
845/*
824 * ioctls for VM fds 846 * ioctls for VM fds
825 */ 847 */
826#define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region) 848#define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region)
@@ -907,6 +929,16 @@ struct kvm_s390_ucas_mapping {
907#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd) 929#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd)
908/* Available with KVM_CAP_ARM_SET_DEVICE_ADDR */ 930/* Available with KVM_CAP_ARM_SET_DEVICE_ADDR */
909#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr) 931#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr)
932/* Available with KVM_CAP_PPC_RTAS */
933#define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args)
934
935/* ioctl for vm fd */
936#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
937
938/* ioctls for fds returned by KVM_CREATE_DEVICE */
939#define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
940#define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
941#define KVM_HAS_DEVICE_ATTR _IOW(KVMIO, 0xe3, struct kvm_device_attr)
910 942
911/* 943/*
912 * ioctls for vcpu fds 944 * ioctls for vcpu fds