]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
authorAvi Kivity <avi@redhat.com>
Wed, 3 Dec 2008 10:38:37 +0000 (12:38 +0200)
committerAvi Kivity <avi@redhat.com>
Wed, 3 Dec 2008 10:38:37 +0000 (12:38 +0200)
Conflicts:
arch/powerpc/kvm/powerpc.c
arch/x86/kvm/vmx.c

Signed-off-by: Avi Kivity <avi@redhat.com>
1  2 
arch/powerpc/include/asm/kvm_ppc.h
arch/x86/kernel/kvmclock.c

index f45fa3f892d407fae3cbf291837b7915653db272,bb62ad876de32750c70cc7ecd91adcb9f0539d5a..a939f39203fc8ea9840ee8e1c9031f9b8a2abbfa
@@@ -57,38 -64,46 +57,40 @@@ extern void kvmppc_mmu_map(struct kvm_v
  extern void kvmppc_mmu_priv_switch(struct kvm_vcpu *vcpu, int usermode);
  extern void kvmppc_mmu_switch_pid(struct kvm_vcpu *vcpu, u32 pid);
  
 -/* XXX Book E specific */
 -extern void kvmppc_tlbe_set_modified(struct kvm_vcpu *vcpu, unsigned int i);
 -
 -extern void kvmppc_check_and_deliver_interrupts(struct kvm_vcpu *vcpu);
 -
 -static inline void kvmppc_queue_exception(struct kvm_vcpu *vcpu, int exception)
 -{
 -      unsigned int priority = exception_priority[exception];
 -      set_bit(priority, &vcpu->arch.pending_exceptions);
 -}
 -
 -static inline void kvmppc_clear_exception(struct kvm_vcpu *vcpu, int exception)
 -{
 -      unsigned int priority = exception_priority[exception];
 -      clear_bit(priority, &vcpu->arch.pending_exceptions);
 -}
 -
 -/* Helper function for "full" MSR writes. No need to call this if only EE is
 - * changing. */
 -static inline void kvmppc_set_msr(struct kvm_vcpu *vcpu, u32 new_msr)
 -{
 -      if ((new_msr & MSR_PR) != (vcpu->arch.msr & MSR_PR))
 -              kvmppc_mmu_priv_switch(vcpu, new_msr & MSR_PR);
 -
 -      vcpu->arch.msr = new_msr;
 -
 -      if (vcpu->arch.msr & MSR_WE)
 -              kvm_vcpu_block(vcpu);
 -}
 -
 -static inline void kvmppc_set_pid(struct kvm_vcpu *vcpu, u32 new_pid)
 -{
 -      if (vcpu->arch.pid != new_pid) {
 -              vcpu->arch.pid = new_pid;
 -              vcpu->arch.swap_pid = 1;
 -      }
 -}
 +/* Core-specific hooks */
 +
 +extern struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm,
 +                                                unsigned int id);
 +extern void kvmppc_core_vcpu_free(struct kvm_vcpu *vcpu);
 +extern int kvmppc_core_vcpu_setup(struct kvm_vcpu *vcpu);
 +extern int kvmppc_core_check_processor_compat(void);
 +extern int kvmppc_core_vcpu_translate(struct kvm_vcpu *vcpu,
 +                                      struct kvm_translation *tr);
 +
 +extern void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
 +extern void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu);
 +
 +extern void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu);
 +extern void kvmppc_core_load_host_debugstate(struct kvm_vcpu *vcpu);
 +
 +extern void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu);
 +extern int kvmppc_core_pending_dec(struct kvm_vcpu *vcpu);
 +extern void kvmppc_core_queue_program(struct kvm_vcpu *vcpu);
 +extern void kvmppc_core_queue_dec(struct kvm_vcpu *vcpu);
 +extern void kvmppc_core_queue_external(struct kvm_vcpu *vcpu,
 +                                       struct kvm_interrupt *irq);
 +
 +extern int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
 +                                  unsigned int op, int *advance);
 +extern int kvmppc_core_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, int rs);
 +extern int kvmppc_core_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, int rt);
 +
 +
 +extern int kvmppc_booke_init(void);
 +extern void kvmppc_booke_exit(void);
 +
 +extern void kvmppc_core_destroy_mmu(struct kvm_vcpu *vcpu);
  
+ extern void kvmppc_core_destroy_mmu(struct kvm_vcpu *vcpu);
  #endif /* __POWERPC_KVM_PPC_H__ */
Simple merge