+
+/* Automatically generated binding for virStorageVolLookupByPath.
+ * Function signature in generator.pl is "conn, string : vol"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRSTORAGEVOLLOOKUPBYPATH
+extern virStorageVolPtr virStorageVolLookupByPath (virConnectPtr conn, const char *str) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_storage_vol_lookup_by_path (value connv, value strv)
+{
+ CAMLparam2 (connv, strv);
+#ifndef HAVE_VIRSTORAGEVOLLOOKUPBYPATH
+ /* Symbol virStorageVolLookupByPath not found at compile time. */
+ not_supported ("virStorageVolLookupByPath");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virStorageVolLookupByPath
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virStorageVolLookupByPath);
+
+ CAMLlocal1 (rv);
+ virConnectPtr conn = Connect_val (connv);
+ char *str = String_val (strv);
+ virStorageVolPtr r;
+
+ NONBLOCKING (r = virStorageVolLookupByPath (conn, str));
+ CHECK_ERROR (!r, conn, "virStorageVolLookupByPath");
+
+ rv = Val_volume (r, connv);
+
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virStorageVolGetXMLDesc.
+ * Function signature in generator.pl is "vol, 0 : string"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRSTORAGEVOLGETXMLDESC
+extern char *virStorageVolGetXMLDesc (virStorageVolPtr vol, int flags) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_storage_vol_get_xml_desc (value volv)
+{
+ CAMLparam1 (volv);
+#ifndef HAVE_VIRSTORAGEVOLGETXMLDESC
+ /* Symbol virStorageVolGetXMLDesc not found at compile time. */
+ not_supported ("virStorageVolGetXMLDesc");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virStorageVolGetXMLDesc
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virStorageVolGetXMLDesc);
+
+ CAMLlocal1 (rv);
+ virStorageVolPtr vol = Volume_val (volv);
+ virConnectPtr conn = Connect_volv (volv);
+ char *r;
+
+ NONBLOCKING (r = virStorageVolGetXMLDesc (vol, 0));
+ CHECK_ERROR (!r, conn, "virStorageVolGetXMLDesc");
+
+ rv = caml_copy_string (r);
+ free (r);
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virStorageVolGetPath.
+ * Function signature in generator.pl is "vol : string"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRSTORAGEVOLGETPATH
+extern char *virStorageVolGetPath (virStorageVolPtr vol) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_storage_vol_get_path (value volv)
+{
+ CAMLparam1 (volv);
+#ifndef HAVE_VIRSTORAGEVOLGETPATH
+ /* Symbol virStorageVolGetPath not found at compile time. */
+ not_supported ("virStorageVolGetPath");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virStorageVolGetPath
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virStorageVolGetPath);
+
+ CAMLlocal1 (rv);
+ virStorageVolPtr vol = Volume_val (volv);
+ virConnectPtr conn = Connect_volv (volv);
+ char *r;
+
+ NONBLOCKING (r = virStorageVolGetPath (vol));
+ CHECK_ERROR (!r, conn, "virStorageVolGetPath");
+
+ rv = caml_copy_string (r);
+ free (r);
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virStorageVolGetKey.
+ * Function signature in generator.pl is "vol : static string"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRSTORAGEVOLGETKEY
+extern const char *virStorageVolGetKey (virStorageVolPtr vol) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_storage_vol_get_key (value volv)
+{
+ CAMLparam1 (volv);
+#ifndef HAVE_VIRSTORAGEVOLGETKEY
+ /* Symbol virStorageVolGetKey not found at compile time. */
+ not_supported ("virStorageVolGetKey");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virStorageVolGetKey
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virStorageVolGetKey);
+
+ CAMLlocal1 (rv);
+ virStorageVolPtr vol = Volume_val (volv);
+ virConnectPtr conn = Connect_volv (volv);
+ const char *r;
+
+ NONBLOCKING (r = virStorageVolGetKey (vol));
+ CHECK_ERROR (!r, conn, "virStorageVolGetKey");
+
+ rv = caml_copy_string (r);
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virStorageVolGetName.
+ * Function signature in generator.pl is "vol : static string"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRSTORAGEVOLGETNAME
+extern const char *virStorageVolGetName (virStorageVolPtr vol) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_storage_vol_get_name (value volv)
+{
+ CAMLparam1 (volv);
+#ifndef HAVE_VIRSTORAGEVOLGETNAME
+ /* Symbol virStorageVolGetName not found at compile time. */
+ not_supported ("virStorageVolGetName");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virStorageVolGetName
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virStorageVolGetName);
+
+ CAMLlocal1 (rv);
+ virStorageVolPtr vol = Volume_val (volv);
+ virConnectPtr conn = Connect_volv (volv);
+ const char *r;
+
+ NONBLOCKING (r = virStorageVolGetName (vol));
+ CHECK_ERROR (!r, conn, "virStorageVolGetName");
+
+ rv = caml_copy_string (r);
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virStoragePoolLookupByVolume.
+ * Function signature in generator.pl is "vol : pool from vol"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRSTORAGEPOOLLOOKUPBYVOLUME
+extern virStoragePoolPtr virStoragePoolLookupByVolume (virStorageVolPtr vol) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_storage_pool_lookup_by_volume (value volv)
+{
+ CAMLparam1 (volv);
+#ifndef HAVE_VIRSTORAGEPOOLLOOKUPBYVOLUME
+ /* Symbol virStoragePoolLookupByVolume not found at compile time. */
+ not_supported ("virStoragePoolLookupByVolume");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virStoragePoolLookupByVolume
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virStoragePoolLookupByVolume);
+
+ CAMLlocal2 (rv, connv);
+ virStorageVolPtr vol = Volume_val (volv);
+ virConnectPtr conn = Connect_volv (volv);
+ virStoragePoolPtr r;
+
+ NONBLOCKING (r = virStoragePoolLookupByVolume (vol));
+ CHECK_ERROR (!r, conn, "virStoragePoolLookupByVolume");
+
+ connv = Field (volv, 1);
+ rv = Val_pool (r, connv);
+
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virJobFree.
+ * Function signature in generator.pl is "job : free"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRJOBFREE
+extern int virJobFree (virJobPtr job) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_job_free (value jobv)
+{
+ CAMLparam1 (jobv);
+#ifndef HAVE_VIRJOBFREE
+ /* Symbol virJobFree not found at compile time. */
+ not_supported ("virJobFree");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virJobFree
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virJobFree);
+
+ virJobPtr job = Job_val (jobv);
+ virConnectPtr conn = Connect_jobv (jobv);
+ int r;
+
+ NONBLOCKING (r = virJobFree (job));
+ CHECK_ERROR (r == -1, conn, "virJobFree");
+
+ /* So that we don't double-free in the finalizer: */
+ Job_val (jobv) = NULL;
+
+ CAMLreturn (Val_unit);
+#endif
+}
+
+/* Automatically generated binding for virJobCancel.
+ * Function signature in generator.pl is "job : unit"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRJOBCANCEL
+extern int virJobCancel (virJobPtr job) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_job_cancel (value jobv)
+{
+ CAMLparam1 (jobv);
+#ifndef HAVE_VIRJOBCANCEL
+ /* Symbol virJobCancel not found at compile time. */
+ not_supported ("virJobCancel");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virJobCancel
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virJobCancel);
+
+ virJobPtr job = Job_val (jobv);
+ virConnectPtr conn = Connect_jobv (jobv);
+ int r;
+
+ NONBLOCKING (r = virJobCancel (job));
+ CHECK_ERROR (r == -1, conn, "virJobCancel");
+
+ CAMLreturn (Val_unit);
+#endif
+}
+
+/* Automatically generated binding for virJobGetNetwork.
+ * Function signature in generator.pl is "job : net from job"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRJOBGETNETWORK
+extern virNetworkPtr virJobGetNetwork (virJobPtr job) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_job_get_network (value jobv)
+{
+ CAMLparam1 (jobv);
+#ifndef HAVE_VIRJOBGETNETWORK
+ /* Symbol virJobGetNetwork not found at compile time. */
+ not_supported ("virJobGetNetwork");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virJobGetNetwork
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virJobGetNetwork);
+
+ CAMLlocal2 (rv, connv);
+ virJobPtr job = Job_val (jobv);
+ virConnectPtr conn = Connect_jobv (jobv);
+ virNetworkPtr r;
+
+ NONBLOCKING (r = virJobGetNetwork (job));
+ CHECK_ERROR (!r, conn, "virJobGetNetwork");
+
+ connv = Field (jobv, 1);
+ rv = Val_network (r, connv);
+
+ CAMLreturn (rv);
+#endif
+}
+
+/* Automatically generated binding for virJobGetDomain.
+ * Function signature in generator.pl is "job : dom from job"
+ */
+
+#ifdef HAVE_WEAK_SYMBOLS
+#ifdef HAVE_VIRJOBGETDOMAIN
+extern virDomainPtr virJobGetDomain (virJobPtr job) __attribute__((weak));
+#endif
+#endif
+
+CAMLprim value
+ocaml_libvirt_job_get_domain (value jobv)
+{
+ CAMLparam1 (jobv);
+#ifndef HAVE_VIRJOBGETDOMAIN
+ /* Symbol virJobGetDomain not found at compile time. */
+ not_supported ("virJobGetDomain");
+ /* Suppresses a compiler warning. */
+ (void) caml__frame;
+#else
+ /* Check that the symbol virJobGetDomain
+ * is in runtime version of libvirt.
+ */
+ WEAK_SYMBOL_CHECK (virJobGetDomain);
+
+ CAMLlocal2 (rv, connv);
+ virJobPtr job = Job_val (jobv);
+ virConnectPtr conn = Connect_jobv (jobv);
+ virDomainPtr r;
+
+ NONBLOCKING (r = virJobGetDomain (job));
+ CHECK_ERROR (!r, conn, "virJobGetDomain");
+
+ connv = Field (jobv, 1);
+ rv = Val_domain (r, connv);
+
+ CAMLreturn (rv);
+#endif
+}
+
+/* The following functions are unimplemented and always fail.
+ * See generator.pl '@unimplemented'
+ */
+
+CAMLprim value
+ocaml_libvirt_storage_vol_lookup_by_name ()
+{
+ failwith ("ocaml_libvirt_storage_vol_lookup_by_name is unimplemented");
+}
+
+CAMLprim value
+ocaml_libvirt_storage_vol_create_xml ()
+{
+ failwith ("ocaml_libvirt_storage_vol_create_xml is unimplemented");
+}
+
+#include "libvirt_c_epilogue.c"
+
+/* EOF */