[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] hvm ioemu: Add support for IOREQ_TYPE_XCHG in qemu-dm.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1174062149 0 # Node ID 670aef15eb553ea47d5abbbbc2a30d9b60dfd94f # Parent f8ef8f4662253e68b577bd81df4be12c7c7cb860 hvm ioemu: Add support for IOREQ_TYPE_XCHG in qemu-dm. From: Trolle Selander <trolle.selander@xxxxxxxxx> Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- tools/ioemu/target-i386-dm/helper2.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+) diff -r f8ef8f466225 -r 670aef15eb55 tools/ioemu/target-i386-dm/helper2.c --- a/tools/ioemu/target-i386-dm/helper2.c Fri Mar 16 16:21:16 2007 +0000 +++ b/tools/ioemu/target-i386-dm/helper2.c Fri Mar 16 16:22:29 2007 +0000 @@ -439,6 +439,18 @@ void cpu_ioreq_xor(CPUState *env, ioreq_ req->data = tmp1; } +void cpu_ioreq_xchg(CPUState *env, ioreq_t *req) +{ + unsigned long tmp1; + + if (req->data_is_ptr != 0) + hw_error("expected scalar value"); + + read_physical(req->addr, req->size, &tmp1); + write_physical(req->addr, req->size, &req->data); + req->data = tmp1; +} + void __handle_ioreq(CPUState *env, ioreq_t *req) { if (!req->data_is_ptr && req->dir == IOREQ_WRITE && req->size != 4) @@ -462,6 +474,9 @@ void __handle_ioreq(CPUState *env, ioreq break; case IOREQ_TYPE_XOR: cpu_ioreq_xor(env, req); + break; + case IOREQ_TYPE_XCHG: + cpu_ioreq_xchg(env, req); break; default: hw_error("Invalid ioreq type 0x%x\n", req->type); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |