From eaedf025f5c45a4e05cbf25e145215d48bea8f8d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 10 Nov 2010 10:32:33 +0000 Subject: [PATCH] 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. --- generator/generator_actions.ml | 7 +++++++ src/launch.c | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) 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) -- 1.8.3.1