Fixed Perl bindings, they now work properly.
[libguestfs.git] / src / generator.ml
index 8b27798..98faa0f 100755 (executable)
@@ -1574,19 +1574,112 @@ MODULE = Sys::Guestfs  PACKAGE = Sys::Guestfs
 
 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
+add_drive (g, filename)
+      guestfs_h *g;
+      const char *filename;
+   CODE:
+      if (guestfs_add_drive (g, filename) == -1)
+        croak (\"add_drive: %%s\", last_error);
+
+void
+add_cdrom (g, filename)
+      guestfs_h *g;
+      const char *filename;
+   CODE:
+      if (guestfs_add_cdrom (g, filename) == -1)
+        croak (\"add_cdrom: %%s\", last_error);
+
+void
+config (g, param, value)
+      guestfs_h *g;
+      const char *param;
+      const char *value;
+   CODE:
+      if (guestfs_config (g, param, value) == -1)
+        croak (\"config: %%s\", last_error);
+
+void
+launch (g)
+      guestfs_h *g;
+   CODE:
+      if (guestfs_launch (g) == -1)
+        croak (\"launch: %%s\", last_error);
+
+void
+wait_ready (g)
+      guestfs_h *g;
+   CODE:
+      if (guestfs_wait_ready (g) == -1)
+        croak (\"wait_ready: %%s\", last_error);
+
+void
+set_path (g, path)
+      guestfs_h *g;
+      const char *path;
+   CODE:
+      guestfs_set_path (g, path);
+
+SV *
+get_path (g)
+      guestfs_h *g;
+PREINIT:
+      const char *path;
+   CODE:
+      path = guestfs_get_path (g);
+      RETVAL = newSVpv (path, 0);
+ OUTPUT:
+      RETVAL
+
+void
+set_autosync (g, autosync)
+      guestfs_h *g;
+      int autosync;
+   CODE:
+      guestfs_set_autosync (g, autosync);
+
+SV *
+get_autosync (g)
+      guestfs_h *g;
+PREINIT:
+      int autosync;
+   CODE:
+      autosync = guestfs_get_autosync (g);
+      RETVAL = newSViv (autosync);
+ OUTPUT:
+      RETVAL
+
+void
+set_verbose (g, verbose)
+      guestfs_h *g;
+      int verbose;
+   CODE:
+      guestfs_set_verbose (g, verbose);
+
+SV *
+get_verbose (g)
+      guestfs_h *g;
+PREINIT:
+      int verbose;
+   CODE:
+      verbose = guestfs_get_verbose (g);
+      RETVAL = newSViv (verbose);
+ OUTPUT:
+      RETVAL
 
 ";
 
@@ -1770,6 +1863,62 @@ sub new {
   return $self;
 }
 
+=item $h->add_drive ($filename);
+
+=item $h->add_cdrom ($filename);
+
+This function adds a virtual machine disk image C<filename> to the
+guest.  The first time you call this function, the disk appears as IDE
+disk 0 (C</dev/sda>) in the guest, the second time as C</dev/sdb>, and
+so on.
+
+You don't necessarily need to be root when using libguestfs.  However
+you obviously do need sufficient permissions to access the filename
+for whatever operations you want to perform (ie. read access if you
+just want to read the image or write access if you want to modify the
+image).
+
+The C<add_cdrom> variation adds a CD-ROM device.
+
+=item $h->config ($param, $value);
+
+=item $h->config ($param);
+
+Use this to add arbitrary parameters to the C<qemu> command line.
+See L<qemu(1)>.
+
+=item $h->launch ();
+
+=item $h->wait_ready ();
+
+Internally libguestfs is implemented by running a virtual machine
+using L<qemu(1)>.  These calls are necessary in order to boot the
+virtual machine.
+
+You should call these two functions after configuring the handle
+(eg. adding drives) but before performing any actions.
+
+=item $h->set_path ($path);
+
+=item $path = $h->get_path ();
+
+See the discussion of C<PATH> in the L<guestfs(3)>
+manpage.
+
+=item $h->set_autosync ($autosync);
+
+=item $autosync = $h->get_autosync ();
+
+See the discussion of I<AUTOSYNC> in the L<guestfs(3)>
+manpage.
+
+=item $h->set_verbose ($verbose);
+
+=item $verbose = $h->get_verbose ();
+
+This sets or gets the verbose messages flag.  Verbose
+messages are sent to C<stderr>.
+
 ";
 
   (* Actions.  We only need to print documentation for these as