From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Christian Ehrhardt
<ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
"Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>;
Hollis Blanchard
<hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>; Jerone
Young" <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Subject: [PATCH] fill kvm_callback with arch specific dcr_read/dcr_write callbacks v2
Date: Fri, 11 Jan 2008 13:12:55 +0100 [thread overview]
Message-ID: <12000535753569-git-send-email-ehrhardt@linux.vnet.ibm.com> (raw)
Subject: [PATCH] fill kvm_callback with arch specific dcr_read/dcr_write callbacks v2
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.
Changes in v2:
The function arguments of powerpc_dcr_read/write changed. Since main-ppc.c
is not yet upstream when you check out from kvm-userspace.git I didn't see it.
But Avi replied with "Applied all, thanks." to the three patches from
01/09/2008 bringing main-ppc.c into kvm-userspace this v2 patch includes the
needed code for that file too.
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 +++++
user/main-ppc.c | 4 ++--
5 files changed, 17 insertions(+), 8 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)
diff --git a/user/main-ppc.c b/user/main-ppc.c
--- a/user/main-ppc.c
+++ b/user/main-ppc.c
@@ -106,14 +106,14 @@ static int test_mem_write(void *opaque,
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;
-------------------------------------------------------------------------
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
next reply other threads:[~2008-01-11 12:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-11 12:12 Christian Ehrhardt [this message]
[not found] ` <12000535753569-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-01-13 9:22 ` [PATCH] fill kvm_callback with arch specific dcr_read/dcr_write callbacks v2 Avi Kivity
[not found] ` <4789D855.2090600-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-13 9:24 ` Avi Kivity
[not found] ` <4789D8BF.6060604-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-14 8:55 ` Christian Ehrhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12000535753569-git-send-email-ehrhardt@linux.vnet.ibm.com \
--to=ehrhardt-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
--cc=jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.