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


Re: [Xen-devel] [PATCH] enable port accesses with (almost) full register

To: Jan Beulich <jbeulich@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] enable port accesses with (almost) full register context
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Mon, 18 Sep 2006 12:05:06 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Mon, 18 Sep 2006 04:05:21 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <450E93A7.76E4.0078.0@xxxxxxxxxx>
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcbbEkwkiqVoAkcFEduN5wAX8io7RQ==
Thread-topic: [Xen-devel] [PATCH] enable port accesses with (almost) full register context
User-agent: Microsoft-Entourage/
On 18/9/06 11:40, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> It'll be immediately needed if string I/O instructions are to also go that
> path, unless you'd want them to access the original user buffer (and
> trap the eventual page fault).

We emulate INS/OUTS as a sequence of IN/OUT plus copy_to/from_guest. Unless
the SMM code depends on us not having 'clobbered' %eax (which we would need
to do to emulate OUTS with OUT) then we should be okay there. I guess how
complicated the save/restore code needs to be depends on just how accurately
we need to set up the register state for this HP SMM code -- for example, I
guess we get away with SS:ESP being incorrect; can we get away with EAX as
well? Hmm... I guess you have made your point that there are devils in the
detail of doing this emulation. ;-)

> Also, I might need a little more clarification on the stack (ab)use for
> creating stubs.

Just declare a char-array automatic variable, fill it with machine code, and
call it.

 -- Keir

Xen-devel mailing list