[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [TOOLS][POWERPC] apply start_info changes to xc_prose_build.c



# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 5c3b6b623c573fc7189d9c711b8251a87cddaa9c
# Parent  f2aaf35c7759252469f01548bd2d93dc8cd65299
[TOOLS][POWERPC] apply start_info changes to xc_prose_build.c
Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>
---
 tools/libxc/powerpc64/xc_prose_build.c |   62 +++++++++++++++------------------
 1 files changed, 30 insertions(+), 32 deletions(-)

diff -r f2aaf35c7759 -r 5c3b6b623c57 tools/libxc/powerpc64/xc_prose_build.c
--- a/tools/libxc/powerpc64/xc_prose_build.c    Wed Oct 18 06:43:33 2006 -0400
+++ b/tools/libxc/powerpc64/xc_prose_build.c    Wed Oct 18 06:50:35 2006 -0400
@@ -167,10 +167,10 @@ static int load_devtree(
     unsigned long devtree_addr,
     uint64_t initrd_base,
     unsigned long initrd_len,
-    start_info_t *si,
-    unsigned long si_addr)
-{
-    uint32_t start_info[4] = {0, si_addr, 0, 0x1000};
+    start_info_t *start_info __attribute__((unused)),
+    unsigned long start_info_addr)
+{
+    uint32_t si[4] = {0, start_info_addr, 0, 0x1000};
     struct boot_param_header *header;
     void *chosen;
     void *xen;
@@ -215,8 +215,7 @@ static int load_devtree(
     }
 
     /* start-info (XXX being removed soon) */
-    rc = ft_set_prop(&devtree, xen, "start-info",
-            start_info, sizeof(start_info));
+    rc = ft_set_prop(&devtree, xen, "start-info", si, sizeof(si));
     if (rc < 0) {
         DPRINTF("couldn't set /xen/start-info\n");
         return rc;
@@ -317,18 +316,19 @@ out:
     return rc;
 }
 
-static unsigned long create_start_info(void *devtree, start_info_t *si,
+static unsigned long create_start_info(void *devtree, start_info_t *start_info,
         unsigned int console_evtchn, unsigned int store_evtchn,
         unsigned long nr_pages, const char *cmdline)
 {
     void *rma;
-    unsigned long si_addr;
+    unsigned long start_info_addr;
     uint64_t rma_reg[2];
     uint64_t rma_top;
     int rc;
 
-    memset(si, 0, sizeof(*si));
-    snprintf(si->magic, sizeof(si->magic), "xen-%d.%d-powerpc64HV", 3, 0);
+    memset(start_info, 0, sizeof(*start_info));
+    snprintf(start_info->magic, sizeof(start_info->magic),
+             "xen-%d.%d-powerpc64HV", 3, 0);
 
     rma = ft_find_node(devtree, "/memory@0");
     if (rma == NULL) {
@@ -343,25 +343,22 @@ static unsigned long create_start_info(v
     rma_top = rma_reg[0] + rma_reg[1];
     DPRINTF("RMA top = 0x%"PRIX64"\n", rma_top);
 
-    si->nr_pages = nr_pages;
-    si->shared_info = rma_top - PAGE_SIZE;
-    si->store_mfn = (rma_top >> PAGE_SHIFT) - 2;
-    si->store_evtchn = store_evtchn;
-    si->console.domU.mfn = (rma_top >> PAGE_SHIFT) - 3;
-    si->console.domU.evtchn = console_evtchn;
-    strncpy((char *)si->cmd_line, cmdline, MAX_GUEST_CMDLINE);
-    /* just in case we truncated cmdline with strncpy add 0 at the end */
-    si->cmd_line[MAX_GUEST_CMDLINE]=0;
-    si_addr = rma_top - 4*PAGE_SIZE;
-
-    rc = ft_set_rsvmap(devtree, 0, si_addr, 4*PAGE_SIZE);
+    start_info->nr_pages = nr_pages;
+    start_info->shared_info = rma_top - PAGE_SIZE;
+    start_info->store_mfn = (rma_top >> PAGE_SHIFT) - 2;
+    start_info->store_evtchn = store_evtchn;
+    start_info->console.domU.mfn = (rma_top >> PAGE_SHIFT) - 3;
+    start_info->console.domU.evtchn = console_evtchn;
+    start_info_addr = rma_top - 4*PAGE_SIZE;
+
+    rc = ft_set_rsvmap(devtree, 0, start_info_addr, 4*PAGE_SIZE);
     if (rc < 0) {
         DPRINTF("couldn't set start_info reservation\n");
         return ~0UL;
     }
 
 
-    return si_addr;
+    return start_info_addr;
 }
 
 static int get_page_array(int xc_handle, int domid, xen_pfn_t **page_array,
@@ -409,7 +406,7 @@ int xc_prose_build(int xc_handle,
                    unsigned long *console_mfn,
                    void *devtree)
 {
-    start_info_t si;
+    start_info_t start_info;
     struct domain_setup_info dsi;
     xen_pfn_t *page_array = NULL;
     unsigned long nr_pages;
@@ -417,7 +414,7 @@ int xc_prose_build(int xc_handle,
     unsigned long kern_addr;
     unsigned long initrd_base = 0;
     unsigned long initrd_len = 0;
-    unsigned long si_addr;
+    unsigned long start_info_addr;
     int rc = 0;
 
     DPRINTF("%s\n", __func__);
@@ -446,12 +443,12 @@ int xc_prose_build(int xc_handle,
     }
 
     /* start_info stuff: about to be removed  */
-    si_addr = create_start_info(devtree, &si, console_evtchn, store_evtchn,
-                                nr_pages,cmdline);
-    *console_mfn = page_array[si.console.domU.mfn];
-    *store_mfn = page_array[si.store_mfn];
-    if (install_image(xc_handle, domid, page_array, &si, si_addr,
-                sizeof(start_info_t))) {
+    start_info_addr = create_start_info(devtree, &start_info, console_evtchn,
+                                        store_evtchn, nr_pages, cmdline);
+    *console_mfn = page_array[start_info.console.domU.mfn];
+    *store_mfn = page_array[start_info.store_mfn];
+    if (install_image(xc_handle, domid, page_array, &start_info,
+                      start_info_addr, sizeof(start_info_t))) {
         rc = -1;
         goto out;
     }
@@ -460,7 +457,8 @@ int xc_prose_build(int xc_handle,
         DPRINTF("loading flattened device tree\n");
         devtree_addr = DEVTREE_ADDR;
         if (load_devtree(xc_handle, domid, page_array, devtree, devtree_addr,
-                     initrd_base, initrd_len, &si, si_addr)) {
+                         initrd_base, initrd_len, &start_info,
+                         start_info_addr)) {
             DPRINTF("couldn't load flattened device tree.\n");
             rc = -1;
             goto out;

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.