From: Christian Ehrhardt <[EMAIL PROTECTED]> This patch adds the callback assignment and handlers for powerpc_dcr_read and ppc_dcr_write which are called from libkvm. This is the part of the patch that changes already submitted code.
Signed-off-by: Christian Ehrhardt <[EMAIL PROTECTED]> Signed-off-by: Avi Kivity <[EMAIL PROTECTED]> diff --git a/libkvm/libkvm-powerpc.c b/libkvm/libkvm-powerpc.c index 1710e6d..e4385c3 100644 --- a/libkvm/libkvm-powerpc.c +++ b/libkvm/libkvm-powerpc.c @@ -31,11 +31,11 @@ int handle_dcr(struct kvm_run *run, kvm_context_t kvm) int ret = 0; if (run->dcr.is_write) - ret = kvm->callbacks->powerpc_dcr_write(kvm, - run->dcr.dcrn,run->dcr.data); + ret = kvm->callbacks->powerpc_dcr_write(run->dcr.dcrn, + run->dcr.data); else - ret = kvm->callbacks->powerpc_dcr_read(kvm, - run->dcr.dcrn, &(run->dcr.data)); + ret = kvm->callbacks->powerpc_dcr_read(run->dcr.dcrn, + &(run->dcr.data)); return ret; } diff --git a/libkvm/libkvm.h b/libkvm/libkvm.h index 2574abe..95d6c0c 100644 --- a/libkvm/libkvm.h +++ b/libkvm/libkvm.h @@ -66,8 +66,8 @@ struct kvm_callbacks { int (*pre_kvm_run)(void *opaque, int vcpu); int (*tpr_access)(void *opaque, int vcpu, uint64_t rip, int is_write); #if defined(__powerpc__) - int (*powerpc_dcr_read)(kvm_context_t kvm, uint32_t dcrn, uint32_t *data); - int (*powerpc_dcr_write)(kvm_context_t kvm, uint32_t dcrn, uint32_t data); + int (*powerpc_dcr_read)(uint32_t dcrn, uint32_t *data); + int (*powerpc_dcr_write)(uint32_t dcrn, uint32_t data); #endif }; diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c index dd84686..fddbbd6 100644 --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -533,6 +533,10 @@ static struct kvm_callbacks qemu_kvm_ops = { #ifdef TARGET_I386 .tpr_access = handle_tpr_access, #endif +#ifdef TARGET_PPC + .powerpc_dcr_read = handle_powerpc_dcr_read, + .powerpc_dcr_write = handle_powerpc_dcr_write, +#endif }; int kvm_qemu_init() diff --git a/qemu/qemu-kvm.h b/qemu/qemu-kvm.h index e4aeb3a..c4514bb 100644 --- a/qemu/qemu-kvm.h +++ b/qemu/qemu-kvm.h @@ -48,6 +48,11 @@ void kvm_tpr_access_report(CPUState *env, uint64_t rip, int is_write); int handle_tpr_access(void *opaque, int vcpu, uint64_t rip, int is_write); +#ifdef TARGET_PPC +int handle_powerpc_dcr_read(uint32_t dcrn, uint32_t *data); +int handle_powerpc_dcr_write(uint32_t dcrn, uint32_t data); +#endif + #define ALIGN(x, y) (((x)+(y)-1) & ~((y)-1)) #define BITMAP_SIZE(m) (ALIGN(((m)>>TARGET_PAGE_BITS), HOST_LONG_BITS) / 8) diff --git a/user/main-ppc.c b/user/main-ppc.c index 761f08e..3ca10c8 100644 --- a/user/main-ppc.c +++ b/user/main-ppc.c @@ -106,14 +106,14 @@ static int test_mem_write(void *opaque, uint64_t addr, uint8_t *data, int len) return 0; } -static int test_dcr_read(kvm_context_t kvm, uint32_t dcrn, uint32_t *data) +static int test_dcr_read(uint32_t dcrn, uint32_t *data) { printf("%s: dcrn %04X\n", __func__, dcrn); *data = 0; return 0; } -static int test_dcr_write(kvm_context_t kvm, uint32_t dcrn, uint32_t data) +static int test_dcr_write(uint32_t dcrn, uint32_t data) { printf("%s: dcrn %04X data %04X\n", __func__, dcrn, data); return 0; ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ kvm-commits mailing list kvm-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-commits