aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_dom_boot.c
diff options
context:
space:
mode:
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>2007-01-26 13:27:01 +0000
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>2007-01-26 13:27:01 +0000
commit15fa409662234cce30c965b5f2fb2dc5ae97521e (patch)
tree41e65cc6116d12d5b3db7dc01b51f4271ad8f480 /tools/libxc/xc_dom_boot.c
parent0993003c805f8615e43ecc79f37a75ee99c87944 (diff)
downloadxen-15fa409662234cce30c965b5f2fb2dc5ae97521e.tar.gz
xen-15fa409662234cce30c965b5f2fb2dc5ae97521e.tar.bz2
xen-15fa409662234cce30c965b5f2fb2dc5ae97521e.zip
32-on-64: New set_address_size domctl for switching to compat mode.
From: Gerd Hoffmann <kraxel@suse.de> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools/libxc/xc_dom_boot.c')
-rw-r--r--tools/libxc/xc_dom_boot.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/tools/libxc/xc_dom_boot.c b/tools/libxc/xc_dom_boot.c
index 36d6ef3e4d..44d46e3f66 100644
--- a/tools/libxc/xc_dom_boot.c
+++ b/tools/libxc/xc_dom_boot.c
@@ -91,37 +91,33 @@ static int clear_page(struct xc_dom_image *dom, xen_pfn_t pfn)
static int x86_compat(int xc, domid_t domid, char *guest_type)
{
-#ifdef XEN_DOMCTL_set_compat
static const struct {
char *guest;
- unsigned long cmd;
+ uint32_t size;
} types[] = {
- { "xen-3.0-x86_32p", XEN_DOMCTL_set_compat },
- { "xen-3.0-x86_64", XEN_DOMCTL_set_native },
+ { "xen-3.0-x86_32p", 32 },
+ { "xen-3.0-x86_64", 64 },
};
DECLARE_DOMCTL;
int i,rc;
memset(&domctl, 0, sizeof(domctl));
domctl.domain = domid;
+ domctl.cmd = XEN_DOMCTL_set_address_size;
for (i = 0; i < sizeof(types)/sizeof(types[0]); i++)
if (0 == strcmp(types[i].guest, guest_type))
- domctl.cmd = types[i].cmd;
- if (0 == domctl.cmd)
+ domctl.u.address_size.size = types[i].size;
+ if (0 == domctl.u.address_size.size)
/* nothing to do */
return 0;
- xc_dom_printf("%s: guest %s, cmd %d\n", __FUNCTION__,
- guest_type, domctl.cmd);
+ xc_dom_printf("%s: guest %s, address size %" PRId32 "\n", __FUNCTION__,
+ guest_type, domctl.u.address_size.size);
rc = do_domctl(xc, &domctl);
if (0 != rc)
xc_dom_printf("%s: warning: failed (rc=%d)\n",
__FUNCTION__, rc);
return rc;
-#else
- xc_dom_printf("%s: compiled without compat/native switching\n", __FUNCTION__);
- return 0;
-#endif /* XEN_DOMCTL_set_compat */
}