diff options
author | kaf24@localhost.localdomain <kaf24@localhost.localdomain> | 2007-01-26 13:27:01 +0000 |
---|---|---|
committer | kaf24@localhost.localdomain <kaf24@localhost.localdomain> | 2007-01-26 13:27:01 +0000 |
commit | 15fa409662234cce30c965b5f2fb2dc5ae97521e (patch) | |
tree | 41e65cc6116d12d5b3db7dc01b51f4271ad8f480 /tools/libxc/xc_dom_boot.c | |
parent | 0993003c805f8615e43ecc79f37a75ee99c87944 (diff) | |
download | xen-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.c | 20 |
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 */ } |