This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: X86_emulate to be moved into qemu...

To: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
Subject: [Xen-devel] Re: X86_emulate to be moved into qemu...
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Wed, 17 May 2006 21:15:03 +0100
Cc: Xen devel list <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 17 May 2006 13:20:01 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <907625E08839C4409CE5768403633E0BA7FC86@xxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <907625E08839C4409CE5768403633E0BA7FC86@xxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

On 17 May 2006, at 21:17, Petersson, Mats wrote:

When using x86_emulate.c inside qemu, we'd need to feed in the virtual
address, but we also need to translate to (guest-)physical address. Any
hints or tricks for this, or do I need to read the page-table and get
the info that way [and CAN I even do that]? [And I'm sorry if this shows
my complete and utter ignorance of how Xen and QEMU operates together,
but I'm afraid that I'm still learning these things].

Yes, you could walk pagetables. But equally you can pass in your translated CR2 value --- i.e., pass in a pseudophysical address. That address will then be passed to the special read/write hook functions, so you avoid needing to do the translation inside those.

Another interesting question is what we do with the dozen or so "new"
include-files that are needed to make x86_emulate.c compile inside the
tools/ioemu directory. At the moment, I've just created directories
inside tools/libxc and linked the necessary header files into those
directories... Is that the proper solution?

What header files are those? It builds in tools/test/ without so many header files.

 -- Keir

Xen-devel mailing list