aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kvm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/kvm.h')
-rw-r--r--include/linux/kvm.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 6c322a90b92f..09f2b3aa2da7 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -449,6 +449,30 @@ struct kvm_ppc_pvinfo {
449 __u8 pad[108]; 449 __u8 pad[108];
450}; 450};
451 451
452/* for KVM_PPC_GET_SMMU_INFO */
453#define KVM_PPC_PAGE_SIZES_MAX_SZ 8
454
455struct kvm_ppc_one_page_size {
456 __u32 page_shift; /* Page shift (or 0) */
457 __u32 pte_enc; /* Encoding in the HPTE (>>12) */
458};
459
460struct kvm_ppc_one_seg_page_size {
461 __u32 page_shift; /* Base page shift of segment (or 0) */
462 __u32 slb_enc; /* SLB encoding for BookS */
463 struct kvm_ppc_one_page_size enc[KVM_PPC_PAGE_SIZES_MAX_SZ];
464};
465
466#define KVM_PPC_PAGE_SIZES_REAL 0x00000001
467#define KVM_PPC_1T_SEGMENTS 0x00000002
468
469struct kvm_ppc_smmu_info {
470 __u64 flags;
471 __u32 slb_size;
472 __u32 pad;
473 struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
474};
475
452#define KVMIO 0xAE 476#define KVMIO 0xAE
453 477
454/* machine type bits, to be used as argument to KVM_CREATE_VM */ 478/* machine type bits, to be used as argument to KVM_CREATE_VM */
@@ -589,6 +613,10 @@ struct kvm_ppc_pvinfo {
589#define KVM_CAP_S390_UCONTROL 73 613#define KVM_CAP_S390_UCONTROL 73
590#define KVM_CAP_SYNC_REGS 74 614#define KVM_CAP_SYNC_REGS 74
591#define KVM_CAP_PCI_2_3 75 615#define KVM_CAP_PCI_2_3 75
616#define KVM_CAP_KVMCLOCK_CTRL 76
617#define KVM_CAP_SIGNAL_MSI 77
618#define KVM_CAP_PPC_GET_SMMU_INFO 78
619#define KVM_CAP_S390_COW 79
592 620
593#ifdef KVM_CAP_IRQ_ROUTING 621#ifdef KVM_CAP_IRQ_ROUTING
594 622
@@ -714,6 +742,14 @@ struct kvm_one_reg {
714 __u64 addr; 742 __u64 addr;
715}; 743};
716 744
745struct kvm_msi {
746 __u32 address_lo;
747 __u32 address_hi;
748 __u32 data;
749 __u32 flags;
750 __u8 pad[16];
751};
752
717/* 753/*
718 * ioctls for VM fds 754 * ioctls for VM fds
719 */ 755 */
@@ -788,6 +824,10 @@ struct kvm_s390_ucas_mapping {
788/* Available with KVM_CAP_PCI_2_3 */ 824/* Available with KVM_CAP_PCI_2_3 */
789#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \ 825#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \
790 struct kvm_assigned_pci_dev) 826 struct kvm_assigned_pci_dev)
827/* Available with KVM_CAP_SIGNAL_MSI */
828#define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi)
829/* Available with KVM_CAP_PPC_GET_SMMU_INFO */
830#define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info)
791 831
792/* 832/*
793 * ioctls for vcpu fds 833 * ioctls for vcpu fds
@@ -859,6 +899,8 @@ struct kvm_s390_ucas_mapping {
859/* Available with KVM_CAP_ONE_REG */ 899/* Available with KVM_CAP_ONE_REG */
860#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg) 900#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg)
861#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg) 901#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
902/* VM is being stopped by host */
903#define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad)
862 904
863#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) 905#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
864#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) 906#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)