restore patches lost when merging NMU diff
[debian/elilo] / bootparams.c
index a6c9d7c47f7befac6fc1a70b08180139ccd976df..da3d6642ae5e5603fa325dcc70cbba7a51704ee6 100644 (file)
@@ -38,7 +38,7 @@
  *     bp  : the address of the bootparams otherwise (opaque type)
  */
 VOID *
-create_boot_params(CHAR16 *args, memdesc_t *initrd, UINTN *cookie)
+create_boot_params(CHAR16 *args, memdesc_t *initrd, memdesc_t *vmcode, UINTN *cookie)
 {
 /* 
  * XXX: need cleanup
@@ -69,6 +69,7 @@ create_boot_params(CHAR16 *args, memdesc_t *initrd, UINTN *cookie)
         * Allocate memory for boot parameters.
         * This CANNOT be EfiLoaderData or EfiLoaderCode as the kernel
         * frees this region when initializing.
+        * FIXME:  Is this a bug?  (since the memory type *is* EfiLoaderData)
         */
 
        bp = (boot_params_t *)alloc(BOOT_PARAM_MEMSIZE, EfiLoaderData);
@@ -77,12 +78,12 @@ create_boot_params(CHAR16 *args, memdesc_t *initrd, UINTN *cookie)
                return 0;
        }
 
-       VERB_PRT(3, Print(L"boot params @ 0x%lx\n", bp));
+       VERB_PRT(3, Print(L"boot params @ " PTR_FMT "\n", bp));
 
 /* XXX: need to fix this for 3.5 */
 #ifdef CONFIG_ia64
        cp = ((CHAR8 *)bp) + BOOT_PARAM_MEMSIZE - cmdline_size;
-#elif defined CONFIG_ia32
+#elif defined CONFIG_ia32 || CONFIG_x86_64
        cp = ((CHAR8 *)bp) + BOOT_PARAM_MEMSIZE - 2048;
 #endif
 
@@ -95,7 +96,7 @@ create_boot_params(CHAR16 *args, memdesc_t *initrd, UINTN *cookie)
         */
        Memset(bp, 0, BOOT_PARAM_MEMSIZE);
 
-       if (sysdeps_create_boot_params(bp, cp, initrd, cookie) == -1) return 0;
+       if (sysdeps_create_boot_params(bp, cp, initrd, vmcode, cookie) == -1) return 0;
 
        /*
         * Convert kernel command line args from UNICODE to ASCII and put them where