New API: debug-cmdline for printing QEMU command line (internal only).
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 10 Nov 2010 10:32:33 +0000 (10:32 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 10 Nov 2010 10:52:12 +0000 (10:52 +0000)
This is an internal-only debugging API so may be changed or
removed at any time in the future.

generator/generator_actions.ml
src/launch.c

index b8937d0..a0a337b 100644 (file)
@@ -1051,6 +1051,13 @@ found or the caller has not called C<guestfs_inspect_os>.
 
 Please read L<guestfs(3)/INSPECTION> for more details.");
 
 
 Please read L<guestfs(3)/INSPECTION> for more details.");
 
+  ("debug_cmdline", (RStringList "cmdline", [], []), -1, [NotInDocs],
+   [],
+   "debug the QEMU command line (internal use only)",
+   "\
+This returns the internal QEMU command line.  'debug' commands are
+not part of the formal API and can be removed or changed at any time.");
+
 ]
 
 (* daemon_functions are any functions which cause some action
 ]
 
 (* daemon_functions are any functions which cause some action
index 48ddb8d..e4f4728 100644 (file)
@@ -120,6 +120,30 @@ guestfs___rollback_cmdline (guestfs_h *g, int pos)
   g->cmdline_size = pos;
 }
 
   g->cmdline_size = pos;
 }
 
+/* Internal command to return the command line. */
+char **
+guestfs__debug_cmdline (guestfs_h *g)
+{
+  int i;
+  char **r;
+
+  if (g->cmdline == NULL) {
+    r = safe_malloc (g, sizeof (char *) * 1);
+    r[0] = NULL;
+    return r;
+  }
+
+  r = safe_malloc (g, sizeof (char *) * (g->cmdline_size + 1));
+  r[0] = safe_strdup (g, g->qemu); /* g->cmdline[0] is always NULL */
+
+  for (i = 1; i < g->cmdline_size; ++i)
+    r[i] = safe_strdup (g, g->cmdline[i]);
+
+  r[g->cmdline_size] = NULL;
+
+  return r;                     /* caller frees */
+}
+
 int
 guestfs__config (guestfs_h *g,
                  const char *qemu_param, const char *qemu_value)
 int
 guestfs__config (guestfs_h *g,
                  const char *qemu_param, const char *qemu_value)