+ char *str = String_val (strv);
+ int r;
+
+ NONBLOCKING (r = virDomainCoreDump (dom, str, 0));
+ CHECK_ERROR (!r, conn, "virDomainCoreDump");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainCoreDumpJob.
+ * In generator.pl this function has signature "dom, string, 0 : job from dom".
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRDOMAINCOREDUMPJOB
+extern virJobPtr virDomainCoreDumpJob (virDomainPtr dom, const char *str, int flags) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_domain_core_dump_job (value domv, value strv)
+{
+ CAMLparam2 (domv, strv);
+#ifndef HAVE_VIRDOMAINCOREDUMPJOB
+ /* Symbol virDomainCoreDumpJob not found at compile time. */
+ not_supported ("virDomainCoreDumpJob");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virDomainCoreDumpJob
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virDomainCoreDumpJob);
+
+ CAMLlocal2 (rv, connv);
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ char *str = String_val (strv);
+ virJobPtr r;
+
+ NONBLOCKING (r = virDomainCoreDumpJob (dom, str, 0));
+ CHECK_ERROR (!r, conn, "virDomainCoreDumpJob");
+
+ connv = Field (domv, 1);
+ rv = Val_job (r, connv);
+
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virDomainSuspend.
+ * In generator.pl this function has signature "dom : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_suspend (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r;
+
+ NONBLOCKING (r = virDomainSuspend (dom));
+ CHECK_ERROR (r == -1, conn, "virDomainSuspend");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainResume.
+ * In generator.pl this function has signature "dom : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_resume (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r;
+
+ NONBLOCKING (r = virDomainResume (dom));
+ CHECK_ERROR (r == -1, conn, "virDomainResume");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainShutdown.
+ * In generator.pl this function has signature "dom : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_shutdown (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r;
+
+ NONBLOCKING (r = virDomainShutdown (dom));
+ CHECK_ERROR (r == -1, conn, "virDomainShutdown");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainReboot.
+ * In generator.pl this function has signature "dom, 0 : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_reboot (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r;
+
+ NONBLOCKING (r = virDomainReboot (dom, 0));
+ CHECK_ERROR (r == -1, conn, "virDomainReboot");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainDefineXML.
+ * In generator.pl this function has signature "conn, string : dom".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_define_xml (value connv, value strv)
+{
+ CAMLparam2 (connv, strv);
+
+ CAMLlocal1 (rv);
+ virConnectPtr conn = Connect_val (connv);
+ char *str = String_val (strv);
+ virDomainPtr r;
+
+ NONBLOCKING (r = virDomainDefineXML (conn, str));
+ CHECK_ERROR (!r, conn, "virDomainDefineXML");
+
+ rv = Val_domain (r, connv);
+
+ CAMLreturn (rv);
+}
+
+/* Automatically generated binding for virDomainUndefine.
+ * In generator.pl this function has signature "dom : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_undefine (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r;
+
+ NONBLOCKING (r = virDomainUndefine (dom));
+ CHECK_ERROR (r == -1, conn, "virDomainUndefine");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainCreate.
+ * In generator.pl this function has signature "dom : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_create (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r;
+
+ NONBLOCKING (r = virDomainCreate (dom));
+ CHECK_ERROR (r == -1, conn, "virDomainCreate");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainCreateJob.
+ * In generator.pl this function has signature "dom, 0U : job from dom".
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRDOMAINCREATEJOB
+extern virJobPtr virDomainCreateJob (virDomainPtr dom, unsigned int flags) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_domain_create_job (value domv)
+{
+ CAMLparam1 (domv);
+#ifndef HAVE_VIRDOMAINCREATEJOB
+ /* Symbol virDomainCreateJob not found at compile time. */
+ not_supported ("virDomainCreateJob");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virDomainCreateJob
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virDomainCreateJob);
+
+ CAMLlocal2 (rv, connv);
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ virJobPtr r;
+
+ NONBLOCKING (r = virDomainCreateJob (dom, 0));
+ CHECK_ERROR (!r, conn, "virDomainCreateJob");
+
+ connv = Field (domv, 1);
+ rv = Val_job (r, connv);
+
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virDomainAttachDevice.
+ * In generator.pl this function has signature "dom, string : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_attach_device (value domv, value strv)
+{
+ CAMLparam2 (domv, strv);
+
+ CAMLlocal1 (rv);
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ char *str = String_val (strv);
+ int r;
+
+ NONBLOCKING (r = virDomainAttachDevice (dom, str));
+ CHECK_ERROR (r == -1, conn, "virDomainAttachDevice");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainDetachDevice.
+ * In generator.pl this function has signature "dom, string : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_detach_device (value domv, value strv)
+{
+ CAMLparam2 (domv, strv);
+
+ CAMLlocal1 (rv);
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ char *str = String_val (strv);
+ int r;
+
+ NONBLOCKING (r = virDomainDetachDevice (dom, str));
+ CHECK_ERROR (r == -1, conn, "virDomainDetachDevice");
+
+ CAMLreturn (Val_unit);
+}
+
+/* Automatically generated binding for virDomainGetAutostart.
+ * In generator.pl this function has signature "dom : bool".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_get_autostart (value domv)
+{
+ CAMLparam1 (domv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r, b;
+
+ NONBLOCKING (r = virDomainGetAutostart (dom, &b));
+ CHECK_ERROR (r == -1, conn, "virDomainGetAutostart");
+
+ CAMLreturn (b ? Val_true : Val_false);
+}
+
+/* Automatically generated binding for virDomainSetAutostart.
+ * In generator.pl this function has signature "dom, bool : unit".
+ */
+
+CAMLprim value
+ocaml_libvirt_domain_set_autostart (value domv, value bv)
+{
+ CAMLparam2 (domv, bv);
+
+ virDomainPtr dom = Domain_val (domv);
+ virConnectPtr conn = Connect_domv (domv);
+ int r, b;