All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH grub-core/kern/xen/init.c] pvgrub2 xen cmdline xenstore var to grubenv
@ 2015-10-24  0:11 Mark Pryor
  2015-10-25  0:46 ` Konrad Rzeszutek Wilk
  2015-11-02 12:12 ` Ian Campbell
  0 siblings, 2 replies; 4+ messages in thread
From: Mark Pryor @ 2015-10-24  0:11 UTC (permalink / raw)
  To: grub-devel; +Cc: ian.campbell

When entering the grub2 shell during a pvgrub2 boot, there is no info about the current
domU in the grubenv (set). Starting with a patch submitted by Olaf Herring I exported
the xenstore cmdline only.

The env var, xen_cmdline, can then be used in the top level script used to make
the pvgrub2 kernel blob.

Signed-off-by: Mark Pryor <pryorm09@gmail.com>
---
 grub-core/kern/xen/init.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c
index 0559c03..2a3112d 100644
--- a/grub-core/kern/xen/init.c
+++ b/grub-core/kern/xen/init.c
@@ -524,6 +524,29 @@ map_all_pages (void)
   grub_mm_init_region ((void *) heap_start, heap_end - heap_start);
 }
 
+/*
+ * Find all name=val pairs in the provided cmd_line and export them
+ * so that scripts can evaluate the variables for their own purpose.
+ */
+static void
+export_cmdline (void)
+{
+  char *p;
+  const char *name="xen_cmdline";
+
+  p = grub_malloc (MAX_GUEST_CMDLINE + 1);
+  if (!p)
+    return;
+
+  grub_memcpy (p, grub_xen_start_page_addr->cmd_line, MAX_GUEST_CMDLINE);
+  p[MAX_GUEST_CMDLINE] = '\0';
+
+  grub_env_set (name, p);
+  grub_env_export (name);
+
+   grub_free (p);
+}
+
 extern char _end[];
 
 void
@@ -539,6 +562,8 @@ grub_machine_init (void)
 
   map_all_pages ();
 
+  export_cmdline ();
+
   grub_console_init ();
 
   grub_tsc_init ();
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-11-04 11:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-24  0:11 [PATCH grub-core/kern/xen/init.c] pvgrub2 xen cmdline xenstore var to grubenv Mark Pryor
2015-10-25  0:46 ` Konrad Rzeszutek Wilk
2015-11-02 12:12 ` Ian Campbell
2015-11-04 11:20   ` Vladimir 'phcoder' Serbinenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.