summaryrefslogtreecommitdiffstats
path: root/src/guestfs.c
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2009-05-13 17:51:14 +0100
committerRichard W.M. Jones <rjones@redhat.com>2009-05-13 17:51:14 +0100
commite8ecc08f663b44f3d79517affe52f137858dfe00 (patch)
tree0bee77cb454884699d671f5b1ef264ba4fde5f9e /src/guestfs.c
parent5b17af107f75a0d6f3a39b88b9c18714014eb7af (diff)
downloadlibguestfs-e8ecc08f663b44f3d79517affe52f137858dfe00.tar.gz
libguestfs-e8ecc08f663b44f3d79517affe52f137858dfe00.tar.xz
libguestfs-e8ecc08f663b44f3d79517affe52f137858dfe00.zip
Add 'append', LIBGUESTFS_APPEND to set additional kernel options.
Diffstat (limited to 'src/guestfs.c')
-rw-r--r--src/guestfs.c23
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);