From: Richard W.M. Jones Date: Wed, 10 Nov 2010 10:32:33 +0000 (+0000) Subject: New API: debug-cmdline for printing QEMU command line (internal only). X-Git-Tag: 1.7.4~11 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=eaedf025f5c45a4e05cbf25e145215d48bea8f8d;p=libguestfs.git New API: debug-cmdline for printing QEMU command line (internal only). This is an internal-only debugging API so may be changed or removed at any time in the future. --- diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml index b8937d0..a0a337b 100644 --- a/generator/generator_actions.ml +++ b/generator/generator_actions.ml @@ -1051,6 +1051,13 @@ found or the caller has not called C. Please read L 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 diff --git a/src/launch.c b/src/launch.c index 48ddb8d..e4f4728 100644 --- a/src/launch.c +++ b/src/launch.c @@ -120,6 +120,30 @@ guestfs___rollback_cmdline (guestfs_h *g, int 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)