-static void default_error_cb (guestfs_h *g, void *data, const char *msg);
-static void stdout_event (void *data, int watch, int fd, int events);
-static void sock_read_event (void *data, int watch, int fd, int events);
-//static void sock_write_event (void *data, int watch, int fd, int events);
-
-static int select_add_handle (guestfs_h *g, int fd, int events, guestfs_handle_event_cb cb, void *data);
-static int select_remove_handle (guestfs_h *g, int watch);
-static int select_add_timeout (guestfs_h *g, int interval, guestfs_handle_timeout_cb cb, void *data);
-static int select_remove_timeout (guestfs_h *g, int timer);
-static void select_main_loop_run (guestfs_h *g);
-static void select_main_loop_quit (guestfs_h *g);
-
-#define UNIX_PATH_MAX 108
-
-#define VMCHANNEL_PORT 6666
-#define VMCHANNEL_ADDR "10.0.2.4"
-
-/* Current main loop. */
-static guestfs_main_loop main_loop = {
- .add_handle = select_add_handle,
- .remove_handle = select_remove_handle,
- .add_timeout = select_add_timeout,
- .remove_timeout = select_remove_timeout,
- .main_loop_run = select_main_loop_run,
- .main_loop_quit = select_main_loop_quit,
-};
-
-/* GuestFS handle and connection. */
-enum state { CONFIG, LAUNCHING, READY, BUSY, NO_HANDLE };
-
-struct guestfs_h
-{
- /* State: see the state machine diagram in the man page guestfs(3). */
- enum state state;
-
- int fd[2]; /* Stdin/stdout of qemu. */
- int sock; /* Daemon communications socket. */
- int pid; /* Qemu PID. */
- time_t start_t; /* The time when we started qemu. */
-
- int stdout_watch; /* Watches qemu stdout for log messages. */
- int sock_watch; /* Watches daemon comm socket. */
-
- char *tmpdir; /* Temporary directory containing socket. */
-
- char **cmdline; /* Qemu command line. */
- int cmdline_size;
-
- int verbose;