#include <guestfs.h>
-/* #include cannot be used for local files in XS */
-
#ifndef PRId64
#define PRId64 "lld"
#endif
guestfs_h *
_create ()
-CODE:
- RETVAL = guestfs_create ();
- if (!RETVAL)
- croak ("could not create guestfs handle");
- guestfs_set_error_handler (RETVAL, error_handler, NULL);
-OUTPUT:
- RETVAL
+ CODE:
+ RETVAL = guestfs_create ();
+ if (!RETVAL)
+ croak ("could not create guestfs handle");
+ guestfs_set_error_handler (RETVAL, error_handler, NULL);
+ OUTPUT:
+ RETVAL
void
DESTROY (g)
- guestfs_h *g;
-PPCODE:
- guestfs_close (g);
+ guestfs_h *g;
+ PPCODE:
+ guestfs_close (g);
+
+void
+launch (g)
+ guestfs_h *g;
+ PPCODE:
+ if (guestfs_launch (g) == -1)
+ croak ("launch: %s", last_error);
+
+void
+wait_ready (g)
+ guestfs_h *g;
+ PPCODE:
+ if (guestfs_wait_ready (g) == -1)
+ croak ("wait_ready: %s", last_error);
+
+void
+kill_subprocess (g)
+ guestfs_h *g;
+ PPCODE:
+ if (guestfs_kill_subprocess (g) == -1)
+ croak ("kill_subprocess: %s", last_error);
+
+void
+add_drive (g, filename)
+ guestfs_h *g;
+ char *filename;
+ PPCODE:
+ if (guestfs_add_drive (g, filename) == -1)
+ croak ("add_drive: %s", last_error);
+
+void
+add_cdrom (g, filename)
+ guestfs_h *g;
+ char *filename;
+ PPCODE:
+ if (guestfs_add_cdrom (g, filename) == -1)
+ croak ("add_cdrom: %s", last_error);
+
+void
+config (g, qemuparam, qemuvalue)
+ guestfs_h *g;
+ char *qemuparam;
+ char *qemuvalue;
+ PPCODE:
+ if (guestfs_config (g, qemuparam, qemuvalue) == -1)
+ croak ("config: %s", last_error);
+
+void
+set_path (g, path)
+ guestfs_h *g;
+ char *path;
+ PPCODE:
+ if (guestfs_set_path (g, path) == -1)
+ croak ("set_path: %s", last_error);
+
+SV *
+get_path (g)
+ guestfs_h *g;
+PREINIT:
+ const char *path;
+ CODE:
+ path = guestfs_get_path (g);
+ if (path == NULL)
+ croak ("get_path: %s", last_error);
+ RETVAL = newSVpv (path, 0);
+ OUTPUT:
+ RETVAL
+
+void
+set_autosync (g, autosync)
+ guestfs_h *g;
+ int autosync;
+ PPCODE:
+ if (guestfs_set_autosync (g, autosync) == -1)
+ croak ("set_autosync: %s", last_error);
+
+SV *
+get_autosync (g)
+ guestfs_h *g;
+PREINIT:
+ int autosync;
+ CODE:
+ autosync = guestfs_get_autosync (g);
+ if (autosync == -1)
+ croak ("get_autosync: %s", last_error);
+ RETVAL = newSViv (autosync);
+ OUTPUT:
+ RETVAL
+
+void
+set_verbose (g, verbose)
+ guestfs_h *g;
+ int verbose;
+ PPCODE:
+ if (guestfs_set_verbose (g, verbose) == -1)
+ croak ("set_verbose: %s", last_error);
+
+SV *
+get_verbose (g)
+ guestfs_h *g;
+PREINIT:
+ int verbose;
+ CODE:
+ verbose = guestfs_get_verbose (g);
+ if (verbose == -1)
+ croak ("get_verbose: %s", last_error);
+ RETVAL = newSViv (verbose);
+ OUTPUT:
+ RETVAL
void
mount (g, device, mountpoint)
}
guestfs_free_lvm_lv_list (logvols);
+void
+read_lines (g, path)
+ guestfs_h *g;
+ char *path;
+PREINIT:
+ char **lines;
+ int i, n;
+ PPCODE:
+ lines = guestfs_read_lines (g, path);
+ if (lines == NULL)
+ croak ("read_lines: %s", last_error);
+ for (n = 0; lines[n] != NULL; ++n) /**/;
+ EXTEND (SP, n);
+ for (i = 0; i < n; ++i) {
+ PUSHs (sv_2mortal (newSVpv (lines[i], 0)));
+ free (lines[i]);
+ }
+ free (lines);
+
+void
+aug_init (g, root, flags)
+ guestfs_h *g;
+ char *root;
+ int flags;
+ PPCODE:
+ if (guestfs_aug_init (g, root, flags) == -1)
+ croak ("aug_init: %s", last_error);
+
+void
+aug_close (g)
+ guestfs_h *g;
+ PPCODE:
+ if (guestfs_aug_close (g) == -1)
+ croak ("aug_close: %s", last_error);
+
+SV *
+aug_defvar (g, name, expr)
+ guestfs_h *g;
+ char *name;
+ char *expr;
+PREINIT:
+ int nrnodes;
+ CODE:
+ nrnodes = guestfs_aug_defvar (g, name, expr);
+ if (nrnodes == -1)
+ croak ("aug_defvar: %s", last_error);
+ RETVAL = newSViv (nrnodes);
+ OUTPUT:
+ RETVAL
+
+void
+aug_defnode (g, name, expr, val)
+ guestfs_h *g;
+ char *name;
+ char *expr;
+ char *val;
+PREINIT:
+ struct guestfs_int_bool *r;
+ PPCODE:
+ r = guestfs_aug_defnode (g, name, expr, val);
+ if (r == NULL)
+ croak ("aug_defnode: %s", last_error);
+ EXTEND (SP, 2);
+ PUSHs (sv_2mortal (newSViv (r->i)));
+ PUSHs (sv_2mortal (newSViv (r->b)));
+ guestfs_free_int_bool (r);
+
+SV *
+aug_get (g, path)
+ guestfs_h *g;
+ char *path;
+PREINIT:
+ char *val;
+ CODE:
+ val = guestfs_aug_get (g, path);
+ if (val == NULL)
+ croak ("aug_get: %s", last_error);
+ RETVAL = newSVpv (val, 0);
+ free (val);
+ OUTPUT:
+ RETVAL
+
+void
+aug_set (g, path, val)
+ guestfs_h *g;
+ char *path;
+ char *val;
+ PPCODE:
+ if (guestfs_aug_set (g, path, val) == -1)
+ croak ("aug_set: %s", last_error);
+
+void
+aug_insert (g, path, label, before)
+ guestfs_h *g;
+ char *path;
+ char *label;
+ int before;
+ PPCODE:
+ if (guestfs_aug_insert (g, path, label, before) == -1)
+ croak ("aug_insert: %s", last_error);
+
+SV *
+aug_rm (g, path)
+ guestfs_h *g;
+ char *path;
+PREINIT:
+ int nrnodes;
+ CODE:
+ nrnodes = guestfs_aug_rm (g, path);
+ if (nrnodes == -1)
+ croak ("aug_rm: %s", last_error);
+ RETVAL = newSViv (nrnodes);
+ OUTPUT:
+ RETVAL
+
+void
+aug_mv (g, src, dest)
+ guestfs_h *g;
+ char *src;
+ char *dest;
+ PPCODE:
+ if (guestfs_aug_mv (g, src, dest) == -1)
+ croak ("aug_mv: %s", last_error);
+
+void
+aug_match (g, path)
+ guestfs_h *g;
+ char *path;
+PREINIT:
+ char **matches;
+ int i, n;
+ PPCODE:
+ matches = guestfs_aug_match (g, path);
+ if (matches == NULL)
+ croak ("aug_match: %s", last_error);
+ for (n = 0; matches[n] != NULL; ++n) /**/;
+ EXTEND (SP, n);
+ for (i = 0; i < n; ++i) {
+ PUSHs (sv_2mortal (newSVpv (matches[i], 0)));
+ free (matches[i]);
+ }
+ free (matches);
+
+void
+aug_save (g)
+ guestfs_h *g;
+ PPCODE:
+ if (guestfs_aug_save (g) == -1)
+ croak ("aug_save: %s", last_error);
+
+void
+aug_load (g)
+ guestfs_h *g;
+ PPCODE:
+ if (guestfs_aug_load (g) == -1)
+ croak ("aug_load: %s", last_error);
+