- if (r == 0) { /* Child (qemu). */
- char vmchannel[256];
- char append[256];
-
- /* Set up the full command line. Do this in the subprocess so we
- * don't need to worry about cleaning up.
- */
- g->cmdline[0] = (char *) qemu;
-
- /* Construct the -net channel parameter for qemu. */
- snprintf (vmchannel, sizeof vmchannel,
- "channel,%d:unix:%s,server,nowait",
- VMCHANNEL_PORT, unixsock);
-
- /* Linux kernel command line. */
- snprintf (append, sizeof append,
- "console=ttyS0 guestfs=%s:%d", VMCHANNEL_ADDR, VMCHANNEL_PORT);
-
- add_cmdline (g, "-m");
- add_cmdline (g, "384"); /* XXX Choose best size. */
- add_cmdline (g, "-kernel");
- add_cmdline (g, (char *) kernel);
- add_cmdline (g, "-initrd");
- add_cmdline (g, (char *) initrd);
- add_cmdline (g, "-append");
- add_cmdline (g, append);
- add_cmdline (g, "-nographic");
- add_cmdline (g, "-serial");
- add_cmdline (g, "stdio");
- add_cmdline (g, "-net");
- add_cmdline (g, vmchannel);
- add_cmdline (g, "-net");
- add_cmdline (g, "user,vlan=0");
- add_cmdline (g, "-net");
- add_cmdline (g, "nic,vlan=0");
- incr_cmdline_size (g);
- g->cmdline[g->cmdline_size-1] = NULL;
-
- if (g->verbose) {
- fprintf (stderr, "%s", qemu);
- for (i = 0; g->cmdline[i]; ++i)
- fprintf (stderr, " %s", g->cmdline[i]);
- fprintf (stderr, "\n");
- }