WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [LIBXC] Move domain builder hooks into ar

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [LIBXC] Move domain builder hooks into arch-specific files and remove ifdefs.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 22 Mar 2007 08:00:40 -0700
Delivery-date: Thu, 22 Mar 2007 08:00:37 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Hollis Blanchard <hollisb@xxxxxxxxxx>
# Date 1174514579 18000
# Node ID 2734b64255b34cf13be27e17527888b82333ed9d
# Parent  58e796d053cab3ccaf3eb42b7d504abae34c0c8b
[LIBXC] Move domain builder hooks into arch-specific files and remove ifdefs.
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>
---
 tools/libxc/Makefile      |    6 
 tools/libxc/xc_dom.h      |    4 
 tools/libxc/xc_dom_boot.c |  287 ----------------------------------------------
 tools/libxc/xc_dom_ia64.c |   45 +++++++
 tools/libxc/xc_dom_x86.c  |  169 +++++++++++++++++++++++++++
 5 files changed, 220 insertions(+), 291 deletions(-)

diff -r 58e796d053ca -r 2734b64255b3 tools/libxc/Makefile
--- a/tools/libxc/Makefile      Wed Mar 21 17:02:59 2007 -0500
+++ b/tools/libxc/Makefile      Wed Mar 21 17:02:59 2007 -0500
@@ -48,11 +48,9 @@ GUEST_SRCS-y += xc_dom_core.c xc_dom_boo
 GUEST_SRCS-y += xc_dom_core.c xc_dom_boot.c
 GUEST_SRCS-y += xc_dom_elfloader.c
 GUEST_SRCS-y += xc_dom_binloader.c
-GUEST_SRCS-y += xc_dom_x86.c
-GUEST_SRCS-y += xc_dom_ia64.c
 
-GUEST_SRCS-$(CONFIG_X86)     += xc_dom_compat_linux.c
-GUEST_SRCS-$(CONFIG_IA64)    += xc_dom_compat_linux.c
+GUEST_SRCS-$(CONFIG_X86)     += xc_dom_x86.c xc_dom_compat_linux.c
+GUEST_SRCS-$(CONFIG_IA64)    += xc_dom_ia64.c xc_dom_compat_linux.c
 
 -include $(XEN_TARGET_ARCH)/Makefile
 
diff -r 58e796d053ca -r 2734b64255b3 tools/libxc/xc_dom.h
--- a/tools/libxc/xc_dom.h      Wed Mar 21 17:02:59 2007 -0500
+++ b/tools/libxc/xc_dom.h      Wed Mar 21 17:02:59 2007 -0500
@@ -253,6 +253,10 @@ static inline xen_pfn_t xc_dom_p2m_guest
 
 /* --- arch bits --------------------------------------------------- */
 
+int arch_setup_meminit(struct xc_dom_image *dom);
+int arch_setup_bootearly(struct xc_dom_image *dom);
+int arch_setup_bootlate(struct xc_dom_image *dom);
+
 /*
  * Local variables:
  * mode: C
diff -r 58e796d053ca -r 2734b64255b3 tools/libxc/xc_dom_boot.c
--- a/tools/libxc/xc_dom_boot.c Wed Mar 21 17:02:59 2007 -0500
+++ b/tools/libxc/xc_dom_boot.c Wed Mar 21 17:02:59 2007 -0500
@@ -83,293 +83,6 @@ static int clear_page(struct xc_dom_imag
     return rc;
 }
 
-/* ------------------------------------------------------------------------ */
-/* arch stuff: x86 bits                                                     */
-
-#if defined(__i386__) || defined(__x86_64__)
-
-
-static int x86_compat(int xc, domid_t domid, char *guest_type)
-{
-    static const struct {
-        char           *guest;
-        uint32_t        size;
-    } types[] = {
-        { "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 ( !strcmp(types[i].guest, guest_type) )
-            domctl.u.address_size.size = types[i].size;
-    if ( domctl.u.address_size.size == 0 )
-        /* nothing to do */
-        return 0;
-
-    xc_dom_printf("%s: guest %s, address size %" PRId32 "\n", __FUNCTION__,
-                  guest_type, domctl.u.address_size.size);
-    rc = do_domctl(xc, &domctl);
-    if ( rc != 0 )
-        xc_dom_printf("%s: warning: failed (rc=%d)\n",
-                      __FUNCTION__, rc);
-    return rc;
-}
-
-
-static int x86_shadow(int xc, domid_t domid)
-{
-    int rc, mode;
-
-    xc_dom_printf("%s: called\n", __FUNCTION__);
-
-    mode = XEN_DOMCTL_SHADOW_ENABLE_REFCOUNT |
-        XEN_DOMCTL_SHADOW_ENABLE_TRANSLATE;
-
-    rc = xc_shadow_control(xc, domid,
-                           XEN_DOMCTL_SHADOW_OP_ENABLE,
-                           NULL, 0, NULL, mode, NULL);
-    if ( rc != 0 )
-    {
-        xc_dom_panic(XC_INTERNAL_ERROR,
-                     "%s: SHADOW_OP_ENABLE (mode=0x%x) failed (rc=%d)\n",
-                     __FUNCTION__, mode, rc);
-        return rc;
-    }
-    xc_dom_printf("%s: shadow enabled (mode=0x%x)\n", __FUNCTION__, mode);
-    return rc;
-}
-
-static int arch_setup_meminit(struct xc_dom_image *dom)
-{
-    int rc = 0;
-
-    x86_compat(dom->guest_xc, dom->guest_domid, dom->guest_type);
-    if ( xc_dom_feature_translated(dom) )
-    {
-        dom->shadow_enabled = 1;
-        rc = x86_shadow(dom->guest_xc, dom->guest_domid);
-    }
-    return rc;
-}
-
-static int arch_setup_bootearly(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-static int arch_setup_bootlate(struct xc_dom_image *dom)
-{
-    static const struct {
-        char *guest;
-        unsigned long pgd_type;
-    } types[] = {
-        { "xen-3.0-x86_32",  MMUEXT_PIN_L2_TABLE},
-        { "xen-3.0-x86_32p", MMUEXT_PIN_L3_TABLE},
-        { "xen-3.0-x86_64",  MMUEXT_PIN_L4_TABLE},
-    };
-    unsigned long pgd_type = 0;
-    shared_info_t *shared_info;
-    xen_pfn_t shinfo;
-    int i, rc;
-
-    for ( i = 0; i < sizeof(types) / sizeof(types[0]); i++ )
-        if ( !strcmp(types[i].guest, dom->guest_type) )
-            pgd_type = types[i].pgd_type;
-
-    if ( !xc_dom_feature_translated(dom) )
-    {
-        /* paravirtualized guest */
-        xc_dom_unmap_one(dom, dom->pgtables_seg.pfn);
-        rc = pin_table(dom->guest_xc, pgd_type,
-                       xc_dom_p2m_host(dom, dom->pgtables_seg.pfn),
-                       dom->guest_domid);
-        if ( rc != 0 )
-        {
-            xc_dom_panic(XC_INTERNAL_ERROR,
-                         "%s: pin_table failed (pfn 0x%" PRIpfn ", rc=%d)\n",
-                         __FUNCTION__, dom->pgtables_seg.pfn, rc);
-            return rc;
-        }
-        shinfo = dom->shared_info_mfn;
-    }
-    else
-    {
-        /* paravirtualized guest with auto-translation */
-        struct xen_add_to_physmap xatp;
-        int i;
-
-        /* Map shared info frame into guest physmap. */
-        xatp.domid = dom->guest_domid;
-        xatp.space = XENMAPSPACE_shared_info;
-        xatp.idx = 0;
-        xatp.gpfn = dom->shared_info_pfn;
-        rc = xc_memory_op(dom->guest_xc, XENMEM_add_to_physmap, &xatp);
-        if ( rc != 0 )
-        {
-            xc_dom_panic(XC_INTERNAL_ERROR, "%s: mapping shared_info failed "
-                         "(pfn=0x%" PRIpfn ", rc=%d)\n",
-                         __FUNCTION__, xatp.gpfn, rc);
-            return rc;
-        }
-
-        /* Map grant table frames into guest physmap. */
-        for ( i = 0; ; i++ )
-        {
-            xatp.domid = dom->guest_domid;
-            xatp.space = XENMAPSPACE_grant_table;
-            xatp.idx = i;
-            xatp.gpfn = dom->total_pages + i;
-            rc = xc_memory_op(dom->guest_xc, XENMEM_add_to_physmap, &xatp);
-            if ( rc != 0 )
-            {
-                if ( (i > 0) && (errno == EINVAL) )
-                {
-                    xc_dom_printf("%s: %d grant tables mapped\n", __FUNCTION__,
-                                  i);
-                    break;
-                }
-                xc_dom_panic(XC_INTERNAL_ERROR,
-                             "%s: mapping grant tables failed " "(pfn=0x%"
-                             PRIpfn ", rc=%d)\n", __FUNCTION__, xatp.gpfn, rc);
-                return rc;
-            }
-        }
-        shinfo = dom->shared_info_pfn;
-    }
-
-    /* setup shared_info page */
-    xc_dom_printf("%s: shared_info: pfn 0x%" PRIpfn ", mfn 0x%" PRIpfn "\n",
-                  __FUNCTION__, dom->shared_info_pfn, dom->shared_info_mfn);
-    shared_info = xc_map_foreign_range(dom->guest_xc, dom->guest_domid,
-                                       PAGE_SIZE_X86,
-                                       PROT_READ | PROT_WRITE,
-                                       shinfo);
-    if ( shared_info == NULL )
-        return -1;
-    dom->arch_hooks->shared_info(dom, shared_info);
-    munmap(shared_info, PAGE_SIZE_X86);
-
-    return 0;
-}
-
-/* ------------------------------------------------------------------------ */
-/* arch stuff: ia64                                                         */
-
-#elif defined(__ia64__)
-
-static int arch_setup_meminit(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-static int arch_setup_bootearly(struct xc_dom_image *dom)
-{
-    DECLARE_DOMCTL;
-    int rc;
-
-    xc_dom_printf("%s: setup firmware\n", __FUNCTION__);
-
-    memset(&domctl, 0, sizeof(domctl));
-    domctl.cmd = XEN_DOMCTL_arch_setup;
-    domctl.domain = dom->guest_domid;
-    domctl.u.arch_setup.flags = 0;
-
-    domctl.u.arch_setup.bp = (dom->start_info_pfn << PAGE_SHIFT)
-        + sizeof(start_info_t);
-    /* 3 = start info page, xenstore page and console page */
-    domctl.u.arch_setup.maxmem = (dom->total_pages - 3) << PAGE_SHIFT;
-    rc = do_domctl(dom->guest_xc, &domctl);
-    return rc;
-}
-
-static int arch_setup_bootlate(struct xc_dom_image *dom)
-{
-    unsigned int page_size = XC_DOM_PAGE_SIZE(dom);
-    shared_info_t *shared_info;
-
-    /* setup shared_info page */
-    xc_dom_printf("%s: shared_info: mfn 0x%" PRIpfn "\n",
-                  __FUNCTION__, dom->shared_info_mfn);
-    shared_info = xc_map_foreign_range(dom->guest_xc, dom->guest_domid,
-                                       page_size,
-                                       PROT_READ | PROT_WRITE,
-                                       dom->shared_info_mfn);
-    if ( shared_info == NULL )
-        return -1;
-    dom->arch_hooks->shared_info(dom, shared_info);
-    munmap(shared_info, page_size);
-    return 0;
-}
-
-/* ------------------------------------------------------------------------ */
-/* arch stuff: powerpc                                                      */
-
-#elif defined(__powerpc64__)
-
-static int arch_setup_meminit(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-static int arch_setup_bootearly(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-static int arch_setup_bootlate(struct xc_dom_image *dom)
-{
-    start_info_t *si =
-        xc_dom_pfn_to_ptr(dom, dom->start_info_pfn, 1);
-
-    xc_dom_printf("%s: TODO: setup devtree\n", __FUNCTION__);
-
-#if 0
-    load_devtree(dom->guest_xc,
-                 dom->guest_domid,
-                 dom->p2m_host,
-                 devtree,           // FIXME
-                 devtree_addr,      // FIXME
-                 dom->ramdisk_seg.vstart,
-                 dom->ramdisk_seg.vend - dom->ramdisk_seg.vstart,
-                 si,
-                 dom->start_info_pfn << PAGE_SHIFT);
-#endif
-    return rc;
-}
-
-/* ------------------------------------------------------------------------ */
-/* arch stuff: other                                                        */
-
-#else
-
-static int arch_setup_meminit(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-static int arch_setup_bootearly(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-static int arch_setup_bootlate(struct xc_dom_image *dom)
-{
-    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
-    return 0;
-}
-
-#endif /* arch stuff */
 
 /* ------------------------------------------------------------------------ */
 
diff -r 58e796d053ca -r 2734b64255b3 tools/libxc/xc_dom_ia64.c
--- a/tools/libxc/xc_dom_ia64.c Wed Mar 21 17:02:59 2007 -0500
+++ b/tools/libxc/xc_dom_ia64.c Wed Mar 21 17:02:59 2007 -0500
@@ -128,6 +128,51 @@ static void __init register_arch_hooks(v
     xc_dom_register_arch_hooks(&xc_dom_arch_ia64be);
 }
 
+int arch_setup_meminit(struct xc_dom_image *dom)
+{
+    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
+    return 0;
+}
+
+int arch_setup_bootearly(struct xc_dom_image *dom)
+{
+    DECLARE_DOMCTL;
+    int rc;
+
+    xc_dom_printf("%s: setup firmware\n", __FUNCTION__);
+
+    memset(&domctl, 0, sizeof(domctl));
+    domctl.cmd = XEN_DOMCTL_arch_setup;
+    domctl.domain = dom->guest_domid;
+    domctl.u.arch_setup.flags = 0;
+
+    domctl.u.arch_setup.bp = (dom->start_info_pfn << PAGE_SHIFT)
+        + sizeof(start_info_t);
+    /* 3 = start info page, xenstore page and console page */
+    domctl.u.arch_setup.maxmem = (dom->total_pages - 3) << PAGE_SHIFT;
+    rc = do_domctl(dom->guest_xc, &domctl);
+    return rc;
+}
+
+int arch_setup_bootlate(struct xc_dom_image *dom)
+{
+    unsigned int page_size = XC_DOM_PAGE_SIZE(dom);
+    shared_info_t *shared_info;
+
+    /* setup shared_info page */
+    xc_dom_printf("%s: shared_info: mfn 0x%" PRIpfn "\n",
+                  __FUNCTION__, dom->shared_info_mfn);
+    shared_info = xc_map_foreign_range(dom->guest_xc, dom->guest_domid,
+                                       page_size,
+                                       PROT_READ | PROT_WRITE,
+                                       dom->shared_info_mfn);
+    if ( shared_info == NULL )
+        return -1;
+    dom->arch_hooks->shared_info(dom, shared_info);
+    munmap(shared_info, page_size);
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff -r 58e796d053ca -r 2734b64255b3 tools/libxc/xc_dom_x86.c
--- a/tools/libxc/xc_dom_x86.c  Wed Mar 21 17:02:59 2007 -0500
+++ b/tools/libxc/xc_dom_x86.c  Wed Mar 21 17:02:59 2007 -0500
@@ -569,6 +569,175 @@ static void __init register_arch_hooks(v
     xc_dom_register_arch_hooks(&xc_dom_64);
 }
 
+static int x86_compat(int xc, domid_t domid, char *guest_type)
+{
+    static const struct {
+        char           *guest;
+        uint32_t        size;
+    } types[] = {
+        { "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 ( !strcmp(types[i].guest, guest_type) )
+            domctl.u.address_size.size = types[i].size;
+    if ( domctl.u.address_size.size == 0 )
+        /* nothing to do */
+        return 0;
+
+    xc_dom_printf("%s: guest %s, address size %" PRId32 "\n", __FUNCTION__,
+                  guest_type, domctl.u.address_size.size);
+    rc = do_domctl(xc, &domctl);
+    if ( rc != 0 )
+        xc_dom_printf("%s: warning: failed (rc=%d)\n",
+                      __FUNCTION__, rc);
+    return rc;
+}
+
+
+static int x86_shadow(int xc, domid_t domid)
+{
+    int rc, mode;
+
+    xc_dom_printf("%s: called\n", __FUNCTION__);
+
+    mode = XEN_DOMCTL_SHADOW_ENABLE_REFCOUNT |
+        XEN_DOMCTL_SHADOW_ENABLE_TRANSLATE;
+
+    rc = xc_shadow_control(xc, domid,
+                           XEN_DOMCTL_SHADOW_OP_ENABLE,
+                           NULL, 0, NULL, mode, NULL);
+    if ( rc != 0 )
+    {
+        xc_dom_panic(XC_INTERNAL_ERROR,
+                     "%s: SHADOW_OP_ENABLE (mode=0x%x) failed (rc=%d)\n",
+                     __FUNCTION__, mode, rc);
+        return rc;
+    }
+    xc_dom_printf("%s: shadow enabled (mode=0x%x)\n", __FUNCTION__, mode);
+    return rc;
+}
+
+int arch_setup_meminit(struct xc_dom_image *dom)
+{
+    int rc = 0;
+
+    x86_compat(dom->guest_xc, dom->guest_domid, dom->guest_type);
+    if ( xc_dom_feature_translated(dom) )
+    {
+        dom->shadow_enabled = 1;
+        rc = x86_shadow(dom->guest_xc, dom->guest_domid);
+    }
+    return rc;
+}
+
+int arch_setup_bootearly(struct xc_dom_image *dom)
+{
+    xc_dom_printf("%s: doing nothing\n", __FUNCTION__);
+    return 0;
+}
+
+int arch_setup_bootlate(struct xc_dom_image *dom)
+{
+    static const struct {
+        char *guest;
+        unsigned long pgd_type;
+    } types[] = {
+        { "xen-3.0-x86_32",  MMUEXT_PIN_L2_TABLE},
+        { "xen-3.0-x86_32p", MMUEXT_PIN_L3_TABLE},
+        { "xen-3.0-x86_64",  MMUEXT_PIN_L4_TABLE},
+    };
+    unsigned long pgd_type = 0;
+    shared_info_t *shared_info;
+    xen_pfn_t shinfo;
+    int i, rc;
+
+    for ( i = 0; i < sizeof(types) / sizeof(types[0]); i++ )
+        if ( !strcmp(types[i].guest, dom->guest_type) )
+            pgd_type = types[i].pgd_type;
+
+    if ( !xc_dom_feature_translated(dom) )
+    {
+        /* paravirtualized guest */
+        xc_dom_unmap_one(dom, dom->pgtables_seg.pfn);
+        rc = pin_table(dom->guest_xc, pgd_type,
+                       xc_dom_p2m_host(dom, dom->pgtables_seg.pfn),
+                       dom->guest_domid);
+        if ( rc != 0 )
+        {
+            xc_dom_panic(XC_INTERNAL_ERROR,
+                         "%s: pin_table failed (pfn 0x%" PRIpfn ", rc=%d)\n",
+                         __FUNCTION__, dom->pgtables_seg.pfn, rc);
+            return rc;
+        }
+        shinfo = dom->shared_info_mfn;
+    }
+    else
+    {
+        /* paravirtualized guest with auto-translation */
+        struct xen_add_to_physmap xatp;
+        int i;
+
+        /* Map shared info frame into guest physmap. */
+        xatp.domid = dom->guest_domid;
+        xatp.space = XENMAPSPACE_shared_info;
+        xatp.idx = 0;
+        xatp.gpfn = dom->shared_info_pfn;
+        rc = xc_memory_op(dom->guest_xc, XENMEM_add_to_physmap, &xatp);
+        if ( rc != 0 )
+        {
+            xc_dom_panic(XC_INTERNAL_ERROR, "%s: mapping shared_info failed "
+                         "(pfn=0x%" PRIpfn ", rc=%d)\n",
+                         __FUNCTION__, xatp.gpfn, rc);
+            return rc;
+        }
+
+        /* Map grant table frames into guest physmap. */
+        for ( i = 0; ; i++ )
+        {
+            xatp.domid = dom->guest_domid;
+            xatp.space = XENMAPSPACE_grant_table;
+            xatp.idx = i;
+            xatp.gpfn = dom->total_pages + i;
+            rc = xc_memory_op(dom->guest_xc, XENMEM_add_to_physmap, &xatp);
+            if ( rc != 0 )
+            {
+                if ( (i > 0) && (errno == EINVAL) )
+                {
+                    xc_dom_printf("%s: %d grant tables mapped\n", __FUNCTION__,
+                                  i);
+                    break;
+                }
+                xc_dom_panic(XC_INTERNAL_ERROR,
+                             "%s: mapping grant tables failed " "(pfn=0x%"
+                             PRIpfn ", rc=%d)\n", __FUNCTION__, xatp.gpfn, rc);
+                return rc;
+            }
+        }
+        shinfo = dom->shared_info_pfn;
+    }
+
+    /* setup shared_info page */
+    xc_dom_printf("%s: shared_info: pfn 0x%" PRIpfn ", mfn 0x%" PRIpfn "\n",
+                  __FUNCTION__, dom->shared_info_pfn, dom->shared_info_mfn);
+    shared_info = xc_map_foreign_range(dom->guest_xc, dom->guest_domid,
+                                       PAGE_SIZE_X86,
+                                       PROT_READ | PROT_WRITE,
+                                       shinfo);
+    if ( shared_info == NULL )
+        return -1;
+    dom->arch_hooks->shared_info(dom, shared_info);
+    munmap(shared_info, PAGE_SIZE_X86);
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [LIBXC] Move domain builder hooks into arch-specific files and remove ifdefs., Xen patchbot-unstable <=