I found the following hack quite handy here. Posting it for the
archives/posterity, I don't really plan to clean it up and submit it
properly (since I'm not really sure what a non-hack version would be).

In case anyone wants to pick it up:
Signed-off-by: Ian Campbell <ian.campb...@citrix.com>

(lightly edited in patch form to remove some of the worst bodging)


diff --git a/stubdom/grub/kexec.c b/stubdom/grub/kexec.c
index 8fd9ff9..761ca7f 100644
--- a/stubdom/grub/kexec.c
+++ b/stubdom/grub/kexec.c
@@ -209,6 +209,35 @@ static void tpm_hash2pcr(struct xc_dom_image *dom, char 
*cmdline)
        shutdown_tpmfront(tpm);
 }
 
+static void builder_vmessage(struct xentoollog_logger *logger,
+                     xentoollog_level level,
+                     int errnoval,
+                     const char *context,
+                     const char *format,
+                     va_list ap)
+{
+  char buf[1024];
+
+  vsnprintf(buf, sizeof(buf), format, ap);
+
+  printk("%s%s%s\n",
+         context ? : "",
+         context ? ": " : "",
+         buf);
+}
+static void builder_progress(struct xentoollog_logger *logger,
+                     const char *context,
+                     const char *doing_what,
+                     int percent, unsigned long done, unsigned long total)
+{
+  printk("%s\n", __func__);
+}
+
+static void builder_destroy(struct xentoollog_logger *logger)
+{
+  printk("%s\n", __func__);
+}
+
 void kexec(void *kernel, long kernel_size, void *module, long module_size, 
char *cmdline, unsigned long flags)
 {
     struct xc_dom_image *dom;
@@ -223,8 +253,14 @@ void kexec(void *kernel, long kernel_size, void *module, 
long module_size, char
     struct mmu_update *m2p_updates;
     unsigned long nr_m2p_updates;
 
+    struct xentoollog_logger lg = {
+           .vmessage = builder_vmessage,
+           .progress = builder_progress,
+           .destroy = builder_destroy,
+    };
+
     DEBUG("booting with cmdline %s\n", cmdline);
-    xc_handle = xc_interface_open(0,0,0);
+    xc_handle = xc_interface_open(0,&lg,&lg);
 
     dom = xc_dom_allocate(xc_handle, cmdline, features);
     dom->allocate = kexec_allocate;
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to