Signed-off-by: Liu Yu <yu.liu@xxxxxxxxxxxxx> --- arch/powerpc/include/asm/kvm.h | 20 ++++++++++++++++++++ arch/powerpc/include/asm/kvm_host.h | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/include/asm/kvm.h b/arch/powerpc/include/asm/kvm.h index bb2de6a..804df17 100644 --- a/arch/powerpc/include/asm/kvm.h +++ b/arch/powerpc/include/asm/kvm.h @@ -22,6 +22,9 @@ #include <linux/types.h> +/* Select powerpc specific features in <linux/kvm.h> */ +#define __KVM_HAVE_GUEST_DEBUG + struct kvm_regs { __u64 pc; __u64 cr; @@ -53,10 +56,27 @@ struct kvm_fpu { }; struct kvm_debug_exit_arch { + __u32 exception; + __u32 pc; + __u32 status; }; +#define KVM_INST_GUESTGDB 0x44000022 + +#define KVM_GUESTDBG_USE_SW_BP 0x00010000 +#define KVM_GUESTDBG_USE_HW_BP 0x00020000 + +#define KVMPPC_DEBUG_NOTYPE 0x0 +#define KVMPPC_DEBUG_BREAKPOINT (1UL << 1) +#define KVMPPC_DEBUG_WATCH_WRITE (1UL << 2) +#define KVMPPC_DEBUG_WATCH_READ (1UL << 3) + /* for KVM_SET_GUEST_DEBUG */ struct kvm_guest_debug_arch { + struct { + __u32 addr; + __u32 type; + } bp[6]; }; #endif /* __LINUX_KVM_POWERPC_H */ diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index c9c930e..6caabfc 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h @@ -109,9 +109,22 @@ struct kvmppc_exit_timing { struct kvm_arch { }; +struct kvmppc_debug_reg { + u32 dbcr0; + u32 iac[0]; + u32 iac1; + u32 iac2; + u32 iac3; + u32 iac4; + u32 dac[0]; + u32 dac1; + u32 dac2; +}; + struct kvm_vcpu_arch { u32 host_stack; u32 host_pid; + u32 host_msr; u64 fpr[32]; ulong gpr[32]; @@ -160,6 +173,10 @@ struct kvm_vcpu_arch { u32 dbcr1; u32 dbsr; + struct kvmppc_debug_reg shadow_dbg_reg; + struct kvmppc_debug_reg host_dbg_reg; + bool has_load_host_dbg; + #ifdef CONFIG_KVM_EXIT_TIMING struct kvmppc_exit_timing timing_exit; struct kvmppc_exit_timing timing_last_enter; @@ -187,6 +204,7 @@ struct kvm_vcpu_arch { struct timer_list dec_timer; unsigned long pending_exceptions; + struct kvm_guest_debug_arch dbg; }; #endif /* __POWERPC_KVM_HOST_H__ */ -- 1.5.4 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html