aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2012-05-08 10:00:13 -0400
committerAvi Kivity <avi@redhat.com>2012-05-08 10:00:13 -0400
commitf2569053e0b3ae092e2f35514f8d108647baa01f (patch)
treef850e7d06b446c6bc598d12d40b2582ef274abf7 /include
parent9f4260e73ac43aaa91eb5de95950e1de7002f467 (diff)
parent54771e6217ce05a474827d9b23ff03de9d2ef2a0 (diff)
Merge branch 'for-upstream' of git://github.com/agraf/linux-2.6 into next
PPC updates from Alex. * 'for-upstream' of git://github.com/agraf/linux-2.6: KVM: PPC: Emulator: clean up SPR reads and writes KVM: PPC: Emulator: clean up instruction parsing kvm/powerpc: Add new ioctl to retreive server MMU infos kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler KVM: PPC: Book3S: Enable IRQs during exit handling KVM: PPC: Fix PR KVM on POWER7 bare metal KVM: PPC: Fix stbux emulation KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields KVM: PPC: Book3S: PR: No isync in slbie path KVM: PPC: Book3S: PR: Optimize entry path KVM: PPC: booke(hv): Fix save/restore of guest accessible SPRGs. KVM: PPC: Restrict PPC_[L|ST]D macro to asm code KVM: PPC: bookehv: Use a Macro for saving/restoring guest registers to/from their 64 bit copies. KVM: PPC: Use clockevent multiplier and shifter for decrementer KVM: Use minimum and maximum address mapped by TLB1 Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kvm.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 225b452e1d1..8d696cf6edc 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 */
@@ -591,6 +615,7 @@ struct kvm_ppc_pvinfo {
591#define KVM_CAP_PCI_2_3 75 615#define KVM_CAP_PCI_2_3 75
592#define KVM_CAP_KVMCLOCK_CTRL 76 616#define KVM_CAP_KVMCLOCK_CTRL 76
593#define KVM_CAP_SIGNAL_MSI 77 617#define KVM_CAP_SIGNAL_MSI 77
618#define KVM_CAP_PPC_GET_SMMU_INFO 78
594 619
595#ifdef KVM_CAP_IRQ_ROUTING 620#ifdef KVM_CAP_IRQ_ROUTING
596 621
@@ -800,6 +825,8 @@ struct kvm_s390_ucas_mapping {
800 struct kvm_assigned_pci_dev) 825 struct kvm_assigned_pci_dev)
801/* Available with KVM_CAP_SIGNAL_MSI */ 826/* Available with KVM_CAP_SIGNAL_MSI */
802#define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi) 827#define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi)
828/* Available with KVM_CAP_PPC_GET_SMMU_INFO */
829#define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info)
803 830
804/* 831/*
805 * ioctls for vcpu fds 832 * ioctls for vcpu fds