-/* Main loop. */
-#define GUESTFS_HANDLE_READABLE 0x1
-#define GUESTFS_HANDLE_WRITABLE 0x2
-#define GUESTFS_HANDLE_HANGUP 0x4
-#define GUESTFS_HANDLE_ERROR 0x8
-
-typedef void (*guestfs_handle_event_cb) (void *data, int watch, int fd, int events);
-typedef int (*guestfs_add_handle_cb) (guestfs_h *g, int fd, int events, guestfs_handle_event_cb cb, void *data);
-typedef int (*guestfs_remove_handle_cb) (guestfs_h *g, int watch);
-typedef void (*guestfs_handle_timeout_cb) (void *data, int timer);
-typedef int (*guestfs_add_timeout_cb) (guestfs_h *g, int interval, guestfs_handle_timeout_cb cb, void *data);
-typedef int (*guestfs_remove_timeout_cb) (guestfs_h *g, int timer);
-typedef void (*guestfs_main_loop_run_cb) (guestfs_h *g);
-typedef void (*guestfs_main_loop_quit_cb) (guestfs_h *g);
+/*--- Structures and actions ---*/
+#include <stdint.h>
+#include <rpc/types.h>
+#include <rpc/xdr.h>
+#include <guestfs-structs.h>
+#include <guestfs-actions.h>