On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <ag...@suse.de> wrote: > This patch updates the kvm kernel headers to the latest version. > > Signed-off-by: Alexander Graf <ag...@suse.de> > --- > linux-headers/asm-powerpc/kvm.h | 23 +++++++++++++++++++++++ > linux-headers/asm-x86/kvm_para.h | 14 ++++++++++++++ > linux-headers/linux/kvm.h | 25 +++++++++++++++++-------- > linux-headers/linux/kvm_para.h | 1 + > 4 files changed, 55 insertions(+), 8 deletions(-) > > diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h > index 777d307..579e219 100644 > --- a/linux-headers/asm-powerpc/kvm.h > +++ b/linux-headers/asm-powerpc/kvm.h > @@ -22,6 +22,10 @@ > > #include <linux/types.h> > > +/* Select powerpc specific features in <linux/kvm.h> */ > +#define __KVM_HAVE_SPAPR_TCE > +#define __KVM_HAVE_PPC_SMT > + > struct kvm_regs { > __u64 pc; > __u64 cr; > @@ -145,6 +149,12 @@ struct kvm_regs { > #define KVM_SREGS_E_UPDATE_DBSR (1 << 3) > > /* > + * Book3S special bits to indicate contents in the struct by maintaining > + * backwards compatibility with older structs. If adding a new field, > + * please make sure to add a flag for that new field */ > +#define KVM_SREGS_S_HIOR (1 << 0) > + > +/* > * In KVM_SET_SREGS, reserved/pad fields must be left untouched from a > * previous KVM_GET_REGS. > * > @@ -169,6 +179,8 @@ struct kvm_sregs { > __u64 ibat[8]; > __u64 dbat[8]; > } ppc32; > + __u64 flags; /* KVM_SREGS_S_ */ > + __u64 hior; > } s; > struct { > union { > @@ -272,4 +284,15 @@ struct kvm_guest_debug_arch { > #define KVM_INTERRUPT_UNSET -2U > #define KVM_INTERRUPT_SET_LEVEL -3U > > +/* for KVM_CAP_SPAPR_TCE */ > +struct kvm_create_spapr_tce { > + __u64 liobn; > + __u32 window_size; > +}; > + > +/* for KVM_ALLOCATE_RMA */ > +struct kvm_allocate_rma { > + __u64 rma_size; > +}; > + > #endif /* __LINUX_KVM_POWERPC_H */ > diff --git a/linux-headers/asm-x86/kvm_para.h > b/linux-headers/asm-x86/kvm_para.h > index 834d71e..f2ac46a 100644 > --- a/linux-headers/asm-x86/kvm_para.h > +++ b/linux-headers/asm-x86/kvm_para.h > @@ -21,6 +21,7 @@ > */ > #define KVM_FEATURE_CLOCKSOURCE2 3 > #define KVM_FEATURE_ASYNC_PF 4 > +#define KVM_FEATURE_STEAL_TIME 5 > > /* The last 8 bits are used to indicate how to interpret the flags field > * in pvclock structure. If no bits are set, all flags are ignored. > @@ -30,10 +31,23 @@ > #define MSR_KVM_WALL_CLOCK 0x11 > #define MSR_KVM_SYSTEM_TIME 0x12 > > +#define KVM_MSR_ENABLED 1 > /* Custom MSRs falls in the range 0x4b564d00-0x4b564dff */ > #define MSR_KVM_WALL_CLOCK_NEW 0x4b564d00 > #define MSR_KVM_SYSTEM_TIME_NEW 0x4b564d01 > #define MSR_KVM_ASYNC_PF_EN 0x4b564d02 > +#define MSR_KVM_STEAL_TIME 0x4b564d03 > + > +struct kvm_steal_time { > + __u64 steal; > + __u32 version; > + __u32 flags; > + __u32 pad[12]; > +}; > + > +#define KVM_STEAL_ALIGNMENT_BITS 5 > +#define KVM_STEAL_VALID_BITS ((-1ULL << (KVM_STEAL_ALIGNMENT_BITS + 1))) > +#define KVM_STEAL_RESERVED_MASK (((1 << KVM_STEAL_ALIGNMENT_BITS) - 1 ) << 1) > > #define KVM_MAX_MMU_OP_BATCH 32 > > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index fc63b73..2062375 100644 > --- a/linux-headers/linux/kvm.h > +++ b/linux-headers/linux/kvm.h > @@ -161,6 +161,7 @@ struct kvm_pit_config { > #define KVM_EXIT_NMI 16 > #define KVM_EXIT_INTERNAL_ERROR 17 > #define KVM_EXIT_OSI 18 > +#define KVM_EXIT_PAPR_HCALL 19 > > /* For KVM_EXIT_INTERNAL_ERROR */ > #define KVM_INTERNAL_ERROR_EMULATION 1 > @@ -264,6 +265,11 @@ struct kvm_run { > struct { > __u64 gprs[32]; > } osi; > + struct { > + __u64 nr; > + __u64 ret; > + __u64 args[9]; > + } papr_hcall; > /* Fix the size of the union. */ > char padding[256]; > }; > @@ -457,7 +463,7 @@ struct kvm_ppc_pvinfo { > #define KVM_CAP_VAPIC 6 > #define KVM_CAP_EXT_CPUID 7 > #define KVM_CAP_CLOCKSOURCE 8 > -#define KVM_CAP_NR_VCPUS 9 /* returns max vcpus per vm */ > +#define KVM_CAP_NR_VCPUS 9 /* returns recommended max vcpus per vm */ > #define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */ > #define KVM_CAP_PIT 11 > #define KVM_CAP_NOP_IO_DELAY 12 > @@ -544,6 +550,12 @@ struct kvm_ppc_pvinfo { > #define KVM_CAP_TSC_CONTROL 60 > #define KVM_CAP_GET_TSC_KHZ 61 > #define KVM_CAP_PPC_BOOKE_SREGS 62 > +#define KVM_CAP_SPAPR_TCE 63 > +#define KVM_CAP_PPC_SMT 64 > +#define KVM_CAP_PPC_RMA 65 > +#define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */ > +#define KVM_CAP_PPC_HIOR 67 > +#define KVM_CAP_PPC_PAPR 68 > > #ifdef KVM_CAP_IRQ_ROUTING > > @@ -746,6 +758,9 @@ struct kvm_clock_data { > /* Available with KVM_CAP_XCRS */ > #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs) > #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs) > +#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct > kvm_create_spapr_tce) > +/* Available with KVM_CAP_RMA */ > +#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) > > #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) > > @@ -773,20 +788,14 @@ struct kvm_assigned_pci_dev { > > struct kvm_assigned_irq { > __u32 assigned_dev_id; > - __u32 host_irq; > + __u32 host_irq; /* ignored (legacy field) */ > __u32 guest_irq; > __u32 flags; > union { > - struct { > - __u32 addr_lo; > - __u32 addr_hi; > - __u32 data; > - } guest_msi; > __u32 reserved[12]; > }; > }; > > - > struct kvm_assigned_msix_nr { > __u32 assigned_dev_id; > __u16 entry_nr; > diff --git a/linux-headers/linux/kvm_para.h b/linux-headers/linux/kvm_para.h > index 7bdcf93..b315e27 100644 > --- a/linux-headers/linux/kvm_para.h > +++ b/linux-headers/linux/kvm_para.h > @@ -26,3 +26,4 @@ > #include <asm/kvm_para.h> > > #endif /* __LINUX_KVM_PARA_H */ > +
Can we avoid this? > -- > 1.6.0.2 > >