* [PATCH] fill kvm_callback with arch specific dcr_read/dcr_write callbacks
@ 2008-01-11 9:35 Christian Ehrhardt
0 siblings, 0 replies; only message in thread
From: Christian Ehrhardt @ 2008-01-11 9:35 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Cc: Christian Ehrhardt,
Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>; Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>; Jerone Young
Subject: [PATCH] fill kvm_callback with arch specific dcr_read/dcr_write callbacks
From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
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 while the
implementation will follow as one when kvm-userspace for ppc is finished, but
appyling this now will reduce the changes to non-ppc files later in the big
patch.
Signed-off-by: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
libkvm/libkvm-powerpc.c | 8 ++++----
libkvm/libkvm.h | 4 ++--
qemu/qemu-kvm.c | 4 ++++
qemu/qemu-kvm.h | 5 +++++
4 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/libkvm/libkvm-powerpc.c b/libkvm/libkvm-powerpc.c
--- a/libkvm/libkvm-powerpc.c
+++ b/libkvm/libkvm-powerpc.c
@@ -31,11 +31,11 @@ int handle_dcr(struct kvm_run *run, 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
--- 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
--- 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
--- a/qemu/qemu-kvm.h
+++ b/qemu/qemu-kvm.h
@@ -48,6 +48,11 @@ int handle_tpr_access(void *opaque, int
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)
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-01-11 9:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-11 9:35 [PATCH] fill kvm_callback with arch specific dcr_read/dcr_write callbacks Christian Ehrhardt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.