diff options
Diffstat (limited to 'include/linux/kvm.h')
-rw-r--r-- | include/linux/kvm.h | 42 |
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 | |||
455 | struct kvm_ppc_one_page_size { | ||
456 | __u32 page_shift; /* Page shift (or 0) */ | ||
457 | __u32 pte_enc; /* Encoding in the HPTE (>>12) */ | ||
458 | }; | ||
459 | |||
460 | struct 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 | |||
469 | struct 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 | ||
745 | struct 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) |