diff options
Diffstat (limited to 'src/guestfs.c')
-rw-r--r-- | src/guestfs.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/guestfs.c b/src/guestfs.c index 43571af7..646be772 100644 --- a/src/guestfs.c +++ b/src/guestfs.c @@ -161,6 +161,8 @@ struct guestfs_h const char *path; const char *qemu; + const char *append; /* Append to kernel command line. */ + char *last_error; /* Callbacks. */ @@ -225,6 +227,9 @@ guestfs_create (void) str = getenv ("LIBGUESTFS_QEMU"); g->qemu = str != NULL ? str : QEMU; + str = getenv ("LIBGUESTFS_APPEND"); + g->append = str; + g->main_loop = guestfs_get_default_main_loop (); /* Start with large serial numbers so they are easy to spot @@ -540,6 +545,19 @@ guestfs_get_qemu (guestfs_h *g) return g->qemu; } +int +guestfs_set_append (guestfs_h *g, const char *append) +{ + g->append = append; + return 0; +} + +const char * +guestfs_get_append (guestfs_h *g) +{ + return g->append; +} + /* Add a string to the current command line. */ static void incr_cmdline_size (guestfs_h *g) @@ -764,9 +782,10 @@ guestfs_launch (guestfs_h *g) /* Linux kernel command line. */ snprintf (append, sizeof append, - "panic=1 console=ttyS0 guestfs=%s:%d%s", + "panic=1 console=ttyS0 guestfs=%s:%d%s%s%s", VMCHANNEL_ADDR, VMCHANNEL_PORT, - g->verbose ? " guestfs_verbose=1" : ""); + g->verbose ? " guestfs_verbose=1" : "", + g->append ? " " : "", g->append ? g->append : ""); snprintf (memsize_str, sizeof memsize_str, "%d", memsize); |