diff options
| author | Gleb Natapov <gleb@redhat.com> | 2013-04-28 12:50:07 +0300 | 
|---|---|---|
| committer | Gleb Natapov <gleb@redhat.com> | 2013-04-28 12:50:07 +0300 | 
| commit | 064d1afaa5a60fc391d0b4b77599fc8f63f99cd3 (patch) | |
| tree | 2e640cdfa50b0048c52e021f07a8b24560251b26 /arch/powerpc/include/asm/kvm_host.h | |
| parent | 730dca42c1d363c939da18c1499c7327c66e2b37 (diff) | |
| parent | 8b78645c93b5d469e8006d68dbc92edc2640c654 (diff) | |
| download | olio-linux-3.10-064d1afaa5a60fc391d0b4b77599fc8f63f99cd3.tar.xz olio-linux-3.10-064d1afaa5a60fc391d0b4b77599fc8f63f99cd3.zip  | |
Merge git://github.com/agraf/linux-2.6.git kvm-ppc-next into queue
Diffstat (limited to 'arch/powerpc/include/asm/kvm_host.h')
| -rw-r--r-- | arch/powerpc/include/asm/kvm_host.h | 40 | 
1 files changed, 39 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index e34f8fee908..af326cde7cb 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h @@ -44,6 +44,10 @@  #define KVM_COALESCED_MMIO_PAGE_OFFSET 1  #endif +/* These values are internal and can be increased later */ +#define KVM_NR_IRQCHIPS          1 +#define KVM_IRQCHIP_NUM_PINS     256 +  #if !defined(CONFIG_KVM_440)  #include <linux/mmu_notifier.h> @@ -188,6 +192,10 @@ struct kvmppc_linear_info {  	int		 type;  }; +/* XICS components, defined in book3s_xics.c */ +struct kvmppc_xics; +struct kvmppc_icp; +  /*   * The reverse mapping array has one entry for each HPTE,   * which stores the guest's view of the second word of the HPTE @@ -255,6 +263,13 @@ struct kvm_arch {  #endif /* CONFIG_KVM_BOOK3S_64_HV */  #ifdef CONFIG_PPC_BOOK3S_64  	struct list_head spapr_tce_tables; +	struct list_head rtas_tokens; +#endif +#ifdef CONFIG_KVM_MPIC +	struct openpic *mpic; +#endif +#ifdef CONFIG_KVM_XICS +	struct kvmppc_xics *xics;  #endif  }; @@ -301,11 +316,13 @@ struct kvmppc_vcore {   * that a guest can register.   */  struct kvmppc_vpa { +	unsigned long gpa;	/* Current guest phys addr */  	void *pinned_addr;	/* Address in kernel linear mapping */  	void *pinned_end;	/* End of region */  	unsigned long next_gpa;	/* Guest phys addr for update */  	unsigned long len;	/* Number of bytes required */  	u8 update_pending;	/* 1 => update pinned_addr from next_gpa */ +	bool dirty;		/* true => area has been modified by kernel */  };  struct kvmppc_pte { @@ -359,6 +376,11 @@ struct kvmppc_slb {  #define KVMPPC_BOOKE_MAX_IAC	4  #define KVMPPC_BOOKE_MAX_DAC	2 +/* KVMPPC_EPR_USER takes precedence over KVMPPC_EPR_KERNEL */ +#define KVMPPC_EPR_NONE		0 /* EPR not supported */ +#define KVMPPC_EPR_USER		1 /* exit to userspace to fill EPR */ +#define KVMPPC_EPR_KERNEL	2 /* in-kernel irqchip */ +  struct kvmppc_booke_debug_reg {  	u32 dbcr0;  	u32 dbcr1; @@ -370,6 +392,12 @@ struct kvmppc_booke_debug_reg {  	u64 dac[KVMPPC_BOOKE_MAX_DAC];  }; +#define KVMPPC_IRQ_DEFAULT	0 +#define KVMPPC_IRQ_MPIC		1 +#define KVMPPC_IRQ_XICS		2 + +struct openpic; +  struct kvm_vcpu_arch {  	ulong host_stack;  	u32 host_pid; @@ -502,7 +530,9 @@ struct kvm_vcpu_arch {  	spinlock_t wdt_lock;  	struct timer_list wdt_timer;  	u32 tlbcfg[4]; +	u32 tlbps[4];  	u32 mmucfg; +	u32 eptcfg;  	u32 epr;  	u32 crit_save;  	struct kvmppc_booke_debug_reg dbg_reg; @@ -522,7 +552,7 @@ struct kvm_vcpu_arch {  	u8 sane;  	u8 cpu_type;  	u8 hcall_needed; -	u8 epr_enabled; +	u8 epr_flags; /* KVMPPC_EPR_xxx */  	u8 epr_needed;  	u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */ @@ -549,6 +579,13 @@ struct kvm_vcpu_arch {  	unsigned long magic_page_pa; /* phys addr to map the magic page to */  	unsigned long magic_page_ea; /* effect. addr to map the magic page to */ +	int irq_type;		/* one of KVM_IRQ_* */ +	int irq_cpu_id; +	struct openpic *mpic;	/* KVM_IRQ_MPIC */ +#ifdef CONFIG_KVM_XICS +	struct kvmppc_icp *icp; /* XICS presentation controller */ +#endif +  #ifdef CONFIG_KVM_BOOK3S_64_HV  	struct kvm_vcpu_arch_shared shregs; @@ -589,5 +626,6 @@ struct kvm_vcpu_arch {  #define KVM_MMIO_REG_FQPR	0x0060  #define __KVM_HAVE_ARCH_WQP +#define __KVM_HAVE_CREATE_DEVICE  #endif /* __POWERPC_KVM_HOST_H__ */  |