1 /* !!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!!
3 * THIS FILE IS AUTOMATICALLY GENERATED BY 'generator.pl'.
5 * Any changes you make to this file may be overwritten.
8 /* OCaml bindings for libvirt.
9 * (C) Copyright 2007-2008 Richard W.M. Jones, Red Hat Inc.
12 * This library is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Lesser General Public
14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version,
16 * with the OCaml linking exception described in ../COPYING.LIB.
18 * This library is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * Lesser General Public License for more details.
23 * You should have received a copy of the GNU Lesser General Public
24 * License along with this library; if not, write to the Free Software
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
34 #include <libvirt/libvirt.h>
35 #include <libvirt/virterror.h>
37 #include <caml/config.h>
38 #include <caml/alloc.h>
39 #include <caml/callback.h>
40 #include <caml/custom.h>
41 #include <caml/fail.h>
42 #include <caml/memory.h>
43 #include <caml/misc.h>
44 #include <caml/mlvalues.h>
45 #include <caml/signals.h>
47 #include "libvirt_c_prologue.c"
49 #include "libvirt_c_oneoffs.c"
51 /* Automatically generated binding for virConnectClose.
52 * In generator.pl this function has signature "conn : free".
56 ocaml_libvirt_connect_close (value connv)
60 virConnectPtr conn = Connect_val (connv);
63 NONBLOCKING (r = virConnectClose (conn));
64 CHECK_ERROR (r == -1, conn, "virConnectClose");
66 /* So that we don't double-free in the finalizer: */
67 Connect_val (connv) = NULL;
69 CAMLreturn (Val_unit);
72 /* Automatically generated binding for virConnectGetHostname.
73 * In generator.pl this function has signature "conn : string".
77 ocaml_libvirt_connect_get_hostname (value connv)
82 virConnectPtr conn = Connect_val (connv);
85 NONBLOCKING (r = virConnectGetHostname (conn));
86 CHECK_ERROR (!r, conn, "virConnectGetHostname");
88 rv = caml_copy_string (r);
93 /* Automatically generated binding for virConnectGetURI.
94 * In generator.pl this function has signature "conn : string".
98 ocaml_libvirt_connect_get_uri (value connv)
103 virConnectPtr conn = Connect_val (connv);
106 NONBLOCKING (r = virConnectGetURI (conn));
107 CHECK_ERROR (!r, conn, "virConnectGetURI");
109 rv = caml_copy_string (r);
114 /* Automatically generated binding for virConnectGetType.
115 * In generator.pl this function has signature "conn : static string".
119 ocaml_libvirt_connect_get_type (value connv)
124 virConnectPtr conn = Connect_val (connv);
127 NONBLOCKING (r = virConnectGetType (conn));
128 CHECK_ERROR (!r, conn, "virConnectGetType");
130 rv = caml_copy_string (r);
134 /* Automatically generated binding for virConnectNumOfDomains.
135 * In generator.pl this function has signature "conn : int".
139 ocaml_libvirt_connect_num_of_domains (value connv)
143 virConnectPtr conn = Connect_val (connv);
146 NONBLOCKING (r = virConnectNumOfDomains (conn));
147 CHECK_ERROR (r == -1, conn, "virConnectNumOfDomains");
149 CAMLreturn (Val_int (r));
152 /* Automatically generated binding for virConnectListDomains.
153 * In generator.pl this function has signature "conn, int : int array".
157 ocaml_libvirt_connect_list_domains (value connv, value iv)
159 CAMLparam2 (connv, iv);
162 virConnectPtr conn = Connect_val (connv);
163 int i = Int_val (iv);
166 /* Some libvirt List* functions still throw exceptions if i == 0,
167 * so catch that and return an empty array directly. This changes
168 * the semantics slightly (masking other failures) but it's
169 * unlikely anyone will care. RWMJ 2008/06/10
172 rv = caml_alloc (0, 0);
176 NONBLOCKING (r = virConnectListDomains (conn, ids, i));
177 CHECK_ERROR (r == -1, conn, "virConnectListDomains");
179 rv = caml_alloc (r, 0);
180 for (i = 0; i < r; ++i)
181 Store_field (rv, i, Val_int (ids[i]));
186 /* Automatically generated binding for virConnectNumOfDefinedDomains.
187 * In generator.pl this function has signature "conn : int".
191 ocaml_libvirt_connect_num_of_defined_domains (value connv)
195 virConnectPtr conn = Connect_val (connv);
198 NONBLOCKING (r = virConnectNumOfDefinedDomains (conn));
199 CHECK_ERROR (r == -1, conn, "virConnectNumOfDefinedDomains");
201 CAMLreturn (Val_int (r));
204 /* Automatically generated binding for virConnectListDefinedDomains.
205 * In generator.pl this function has signature "conn, int : string array".
209 ocaml_libvirt_connect_list_defined_domains (value connv, value iv)
211 CAMLparam2 (connv, iv);
213 CAMLlocal2 (rv, strv);
214 virConnectPtr conn = Connect_val (connv);
215 int i = Int_val (iv);
219 /* Some libvirt List* functions still throw exceptions if i == 0,
220 * so catch that and return an empty array directly. This changes
221 * the semantics slightly (masking other failures) but it's
222 * unlikely anyone will care. RWMJ 2008/06/10
225 rv = caml_alloc (0, 0);
229 NONBLOCKING (r = virConnectListDefinedDomains (conn, names, i));
230 CHECK_ERROR (r == -1, conn, "virConnectListDefinedDomains");
232 rv = caml_alloc (r, 0);
233 for (i = 0; i < r; ++i) {
234 strv = caml_copy_string (names[i]);
235 Store_field (rv, i, strv);
242 /* Automatically generated binding for virConnectNumOfNetworks.
243 * In generator.pl this function has signature "conn : int".
247 ocaml_libvirt_connect_num_of_networks (value connv)
251 virConnectPtr conn = Connect_val (connv);
254 NONBLOCKING (r = virConnectNumOfNetworks (conn));
255 CHECK_ERROR (r == -1, conn, "virConnectNumOfNetworks");
257 CAMLreturn (Val_int (r));
260 /* Automatically generated binding for virConnectListNetworks.
261 * In generator.pl this function has signature "conn, int : string array".
265 ocaml_libvirt_connect_list_networks (value connv, value iv)
267 CAMLparam2 (connv, iv);
269 CAMLlocal2 (rv, strv);
270 virConnectPtr conn = Connect_val (connv);
271 int i = Int_val (iv);
275 /* Some libvirt List* functions still throw exceptions if i == 0,
276 * so catch that and return an empty array directly. This changes
277 * the semantics slightly (masking other failures) but it's
278 * unlikely anyone will care. RWMJ 2008/06/10
281 rv = caml_alloc (0, 0);
285 NONBLOCKING (r = virConnectListNetworks (conn, names, i));
286 CHECK_ERROR (r == -1, conn, "virConnectListNetworks");
288 rv = caml_alloc (r, 0);
289 for (i = 0; i < r; ++i) {
290 strv = caml_copy_string (names[i]);
291 Store_field (rv, i, strv);
298 /* Automatically generated binding for virConnectNumOfDefinedNetworks.
299 * In generator.pl this function has signature "conn : int".
303 ocaml_libvirt_connect_num_of_defined_networks (value connv)
307 virConnectPtr conn = Connect_val (connv);
310 NONBLOCKING (r = virConnectNumOfDefinedNetworks (conn));
311 CHECK_ERROR (r == -1, conn, "virConnectNumOfDefinedNetworks");
313 CAMLreturn (Val_int (r));
316 /* Automatically generated binding for virConnectListDefinedNetworks.
317 * In generator.pl this function has signature "conn, int : string array".
321 ocaml_libvirt_connect_list_defined_networks (value connv, value iv)
323 CAMLparam2 (connv, iv);
325 CAMLlocal2 (rv, strv);
326 virConnectPtr conn = Connect_val (connv);
327 int i = Int_val (iv);
331 /* Some libvirt List* functions still throw exceptions if i == 0,
332 * so catch that and return an empty array directly. This changes
333 * the semantics slightly (masking other failures) but it's
334 * unlikely anyone will care. RWMJ 2008/06/10
337 rv = caml_alloc (0, 0);
341 NONBLOCKING (r = virConnectListDefinedNetworks (conn, names, i));
342 CHECK_ERROR (r == -1, conn, "virConnectListDefinedNetworks");
344 rv = caml_alloc (r, 0);
345 for (i = 0; i < r; ++i) {
346 strv = caml_copy_string (names[i]);
347 Store_field (rv, i, strv);
354 /* Automatically generated binding for virConnectNumOfStoragePools.
355 * In generator.pl this function has signature "conn : int".
359 ocaml_libvirt_connect_num_of_storage_pools (value connv)
363 virConnectPtr conn = Connect_val (connv);
366 NONBLOCKING (r = virConnectNumOfStoragePools (conn));
367 CHECK_ERROR (r == -1, conn, "virConnectNumOfStoragePools");
369 CAMLreturn (Val_int (r));
372 /* Automatically generated binding for virConnectListStoragePools.
373 * In generator.pl this function has signature "conn, int : string array".
377 ocaml_libvirt_connect_list_storage_pools (value connv, value iv)
379 CAMLparam2 (connv, iv);
381 CAMLlocal2 (rv, strv);
382 virConnectPtr conn = Connect_val (connv);
383 int i = Int_val (iv);
387 /* Some libvirt List* functions still throw exceptions if i == 0,
388 * so catch that and return an empty array directly. This changes
389 * the semantics slightly (masking other failures) but it's
390 * unlikely anyone will care. RWMJ 2008/06/10
393 rv = caml_alloc (0, 0);
397 NONBLOCKING (r = virConnectListStoragePools (conn, names, i));
398 CHECK_ERROR (r == -1, conn, "virConnectListStoragePools");
400 rv = caml_alloc (r, 0);
401 for (i = 0; i < r; ++i) {
402 strv = caml_copy_string (names[i]);
403 Store_field (rv, i, strv);
410 /* Automatically generated binding for virConnectNumOfDefinedStoragePools.
411 * In generator.pl this function has signature "conn : int".
415 ocaml_libvirt_connect_num_of_defined_storage_pools (value connv)
419 virConnectPtr conn = Connect_val (connv);
422 NONBLOCKING (r = virConnectNumOfDefinedStoragePools (conn));
423 CHECK_ERROR (r == -1, conn, "virConnectNumOfDefinedStoragePools");
425 CAMLreturn (Val_int (r));
428 /* Automatically generated binding for virConnectListDefinedStoragePools.
429 * In generator.pl this function has signature "conn, int : string array".
433 ocaml_libvirt_connect_list_defined_storage_pools (value connv, value iv)
435 CAMLparam2 (connv, iv);
437 CAMLlocal2 (rv, strv);
438 virConnectPtr conn = Connect_val (connv);
439 int i = Int_val (iv);
443 /* Some libvirt List* functions still throw exceptions if i == 0,
444 * so catch that and return an empty array directly. This changes
445 * the semantics slightly (masking other failures) but it's
446 * unlikely anyone will care. RWMJ 2008/06/10
449 rv = caml_alloc (0, 0);
453 NONBLOCKING (r = virConnectListDefinedStoragePools (conn, names, i));
454 CHECK_ERROR (r == -1, conn, "virConnectListDefinedStoragePools");
456 rv = caml_alloc (r, 0);
457 for (i = 0; i < r; ++i) {
458 strv = caml_copy_string (names[i]);
459 Store_field (rv, i, strv);
466 /* Automatically generated binding for virConnectGetCapabilities.
467 * In generator.pl this function has signature "conn : string".
471 ocaml_libvirt_connect_get_capabilities (value connv)
476 virConnectPtr conn = Connect_val (connv);
479 NONBLOCKING (r = virConnectGetCapabilities (conn));
480 CHECK_ERROR (!r, conn, "virConnectGetCapabilities");
482 rv = caml_copy_string (r);
487 /* Automatically generated binding for virConnectDomainEventDeregisterAny.
488 * In generator.pl this function has signature "conn, int : unit".
492 ocaml_libvirt_connect_domain_event_deregister_any (value connv, value iv)
494 CAMLparam2 (connv, iv);
496 virConnectPtr conn = Connect_val (connv);
497 int i = Int_val (iv);
500 NONBLOCKING (r = virConnectDomainEventDeregisterAny (conn, i));
501 CHECK_ERROR (r == -1, conn, "virConnectDomainEventDeregisterAny");
503 CAMLreturn (Val_unit);
506 /* Automatically generated binding for virDomainCreateLinux.
507 * In generator.pl this function has signature "conn, string, 0U : dom".
511 ocaml_libvirt_domain_create_linux (value connv, value strv)
513 CAMLparam2 (connv, strv);
516 virConnectPtr conn = Connect_val (connv);
517 char *str = String_val (strv);
520 NONBLOCKING (r = virDomainCreateLinux (conn, str, 0));
521 CHECK_ERROR (!r, conn, "virDomainCreateLinux");
523 rv = Val_domain (r, connv);
528 /* Automatically generated binding for virDomainFree.
529 * In generator.pl this function has signature "dom : free".
533 ocaml_libvirt_domain_free (value domv)
537 virDomainPtr dom = Domain_val (domv);
538 virConnectPtr conn = Connect_domv (domv);
541 NONBLOCKING (r = virDomainFree (dom));
542 CHECK_ERROR (r == -1, conn, "virDomainFree");
544 /* So that we don't double-free in the finalizer: */
545 Domain_val (domv) = NULL;
547 CAMLreturn (Val_unit);
550 /* Automatically generated binding for virDomainDestroy.
551 * In generator.pl this function has signature "dom : free".
555 ocaml_libvirt_domain_destroy (value domv)
559 virDomainPtr dom = Domain_val (domv);
560 virConnectPtr conn = Connect_domv (domv);
563 NONBLOCKING (r = virDomainDestroy (dom));
564 CHECK_ERROR (r == -1, conn, "virDomainDestroy");
566 /* So that we don't double-free in the finalizer: */
567 Domain_val (domv) = NULL;
569 CAMLreturn (Val_unit);
572 /* Automatically generated binding for virDomainLookupByName.
573 * In generator.pl this function has signature "conn, string : dom".
577 ocaml_libvirt_domain_lookup_by_name (value connv, value strv)
579 CAMLparam2 (connv, strv);
582 virConnectPtr conn = Connect_val (connv);
583 char *str = String_val (strv);
586 NONBLOCKING (r = virDomainLookupByName (conn, str));
587 CHECK_ERROR (!r, conn, "virDomainLookupByName");
589 rv = Val_domain (r, connv);
594 /* Automatically generated binding for virDomainLookupByID.
595 * In generator.pl this function has signature "conn, int : dom".
599 ocaml_libvirt_domain_lookup_by_id (value connv, value iv)
601 CAMLparam2 (connv, iv);
604 virConnectPtr conn = Connect_val (connv);
605 int i = Int_val (iv);
608 NONBLOCKING (r = virDomainLookupByID (conn, i));
609 CHECK_ERROR (!r, conn, "virDomainLookupByID");
611 rv = Val_domain (r, connv);
616 /* Automatically generated binding for virDomainLookupByUUID.
617 * In generator.pl this function has signature "conn, uuid : dom".
621 ocaml_libvirt_domain_lookup_by_uuid (value connv, value uuidv)
623 CAMLparam2 (connv, uuidv);
626 virConnectPtr conn = Connect_val (connv);
627 unsigned char *uuid = (unsigned char *) String_val (uuidv);
630 NONBLOCKING (r = virDomainLookupByUUID (conn, uuid));
631 CHECK_ERROR (!r, conn, "virDomainLookupByUUID");
633 rv = Val_domain (r, connv);
638 /* Automatically generated binding for virDomainLookupByUUIDString.
639 * In generator.pl this function has signature "conn, string : dom".
643 ocaml_libvirt_domain_lookup_by_uuid_string (value connv, value strv)
645 CAMLparam2 (connv, strv);
648 virConnectPtr conn = Connect_val (connv);
649 char *str = String_val (strv);
652 NONBLOCKING (r = virDomainLookupByUUIDString (conn, str));
653 CHECK_ERROR (!r, conn, "virDomainLookupByUUIDString");
655 rv = Val_domain (r, connv);
660 /* Automatically generated binding for virDomainGetName.
661 * In generator.pl this function has signature "dom : static string".
665 ocaml_libvirt_domain_get_name (value domv)
670 virDomainPtr dom = Domain_val (domv);
671 virConnectPtr conn = Connect_domv (domv);
674 NONBLOCKING (r = virDomainGetName (dom));
675 CHECK_ERROR (!r, conn, "virDomainGetName");
677 rv = caml_copy_string (r);
681 /* Automatically generated binding for virDomainGetOSType.
682 * In generator.pl this function has signature "dom : string".
686 ocaml_libvirt_domain_get_os_type (value domv)
691 virDomainPtr dom = Domain_val (domv);
692 virConnectPtr conn = Connect_domv (domv);
695 NONBLOCKING (r = virDomainGetOSType (dom));
696 CHECK_ERROR (!r, conn, "virDomainGetOSType");
698 rv = caml_copy_string (r);
703 /* Automatically generated binding for virDomainGetXMLDesc.
704 * In generator.pl this function has signature "dom, 0 : string".
708 ocaml_libvirt_domain_get_xml_desc (value domv)
713 virDomainPtr dom = Domain_val (domv);
714 virConnectPtr conn = Connect_domv (domv);
717 NONBLOCKING (r = virDomainGetXMLDesc (dom, 0));
718 CHECK_ERROR (!r, conn, "virDomainGetXMLDesc");
720 rv = caml_copy_string (r);
725 /* Automatically generated binding for virDomainGetUUID.
726 * In generator.pl this function has signature "dom : uuid".
730 ocaml_libvirt_domain_get_uuid (value domv)
735 virDomainPtr dom = Domain_val (domv);
736 virConnectPtr conn = Connect_domv (domv);
737 unsigned char uuid[VIR_UUID_BUFLEN];
740 NONBLOCKING (r = virDomainGetUUID (dom, uuid));
741 CHECK_ERROR (r == -1, conn, "virDomainGetUUID");
743 /* UUIDs are byte arrays with a fixed length. */
744 rv = caml_alloc_string (VIR_UUID_BUFLEN);
745 memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
749 /* Automatically generated binding for virDomainGetUUIDString.
750 * In generator.pl this function has signature "dom : uuid string".
754 ocaml_libvirt_domain_get_uuid_string (value domv)
759 virDomainPtr dom = Domain_val (domv);
760 virConnectPtr conn = Connect_domv (domv);
761 char uuid[VIR_UUID_STRING_BUFLEN];
764 NONBLOCKING (r = virDomainGetUUIDString (dom, uuid));
765 CHECK_ERROR (r == -1, conn, "virDomainGetUUIDString");
767 rv = caml_copy_string (uuid);
771 /* Automatically generated binding for virDomainGetMaxVcpus.
772 * In generator.pl this function has signature "dom : int".
776 ocaml_libvirt_domain_get_max_vcpus (value domv)
780 virDomainPtr dom = Domain_val (domv);
781 virConnectPtr conn = Connect_domv (domv);
784 NONBLOCKING (r = virDomainGetMaxVcpus (dom));
785 CHECK_ERROR (r == -1, conn, "virDomainGetMaxVcpus");
787 CAMLreturn (Val_int (r));
790 /* Automatically generated binding for virDomainSave.
791 * In generator.pl this function has signature "dom, string : unit".
795 ocaml_libvirt_domain_save (value domv, value strv)
797 CAMLparam2 (domv, strv);
799 virDomainPtr dom = Domain_val (domv);
800 virConnectPtr conn = Connect_domv (domv);
801 char *str = String_val (strv);
804 NONBLOCKING (r = virDomainSave (dom, str));
805 CHECK_ERROR (r == -1, conn, "virDomainSave");
807 CAMLreturn (Val_unit);
810 /* Automatically generated binding for virDomainRestore.
811 * In generator.pl this function has signature "conn, string : unit".
815 ocaml_libvirt_domain_restore (value connv, value strv)
817 CAMLparam2 (connv, strv);
819 virConnectPtr conn = Connect_val (connv);
820 char *str = String_val (strv);
823 NONBLOCKING (r = virDomainRestore (conn, str));
824 CHECK_ERROR (r == -1, conn, "virDomainRestore");
826 CAMLreturn (Val_unit);
829 /* Automatically generated binding for virDomainCoreDump.
830 * In generator.pl this function has signature "dom, string, 0 : unit".
834 ocaml_libvirt_domain_core_dump (value domv, value strv)
836 CAMLparam2 (domv, strv);
839 virDomainPtr dom = Domain_val (domv);
840 virConnectPtr conn = Connect_domv (domv);
841 char *str = String_val (strv);
844 NONBLOCKING (r = virDomainCoreDump (dom, str, 0));
845 CHECK_ERROR (!r, conn, "virDomainCoreDump");
847 CAMLreturn (Val_unit);
850 /* Automatically generated binding for virDomainSuspend.
851 * In generator.pl this function has signature "dom : unit".
855 ocaml_libvirt_domain_suspend (value domv)
859 virDomainPtr dom = Domain_val (domv);
860 virConnectPtr conn = Connect_domv (domv);
863 NONBLOCKING (r = virDomainSuspend (dom));
864 CHECK_ERROR (r == -1, conn, "virDomainSuspend");
866 CAMLreturn (Val_unit);
869 /* Automatically generated binding for virDomainResume.
870 * In generator.pl this function has signature "dom : unit".
874 ocaml_libvirt_domain_resume (value domv)
878 virDomainPtr dom = Domain_val (domv);
879 virConnectPtr conn = Connect_domv (domv);
882 NONBLOCKING (r = virDomainResume (dom));
883 CHECK_ERROR (r == -1, conn, "virDomainResume");
885 CAMLreturn (Val_unit);
888 /* Automatically generated binding for virDomainShutdown.
889 * In generator.pl this function has signature "dom : unit".
893 ocaml_libvirt_domain_shutdown (value domv)
897 virDomainPtr dom = Domain_val (domv);
898 virConnectPtr conn = Connect_domv (domv);
901 NONBLOCKING (r = virDomainShutdown (dom));
902 CHECK_ERROR (r == -1, conn, "virDomainShutdown");
904 CAMLreturn (Val_unit);
907 /* Automatically generated binding for virDomainReboot.
908 * In generator.pl this function has signature "dom, 0 : unit".
912 ocaml_libvirt_domain_reboot (value domv)
916 virDomainPtr dom = Domain_val (domv);
917 virConnectPtr conn = Connect_domv (domv);
920 NONBLOCKING (r = virDomainReboot (dom, 0));
921 CHECK_ERROR (r == -1, conn, "virDomainReboot");
923 CAMLreturn (Val_unit);
926 /* Automatically generated binding for virDomainDefineXML.
927 * In generator.pl this function has signature "conn, string : dom".
931 ocaml_libvirt_domain_define_xml (value connv, value strv)
933 CAMLparam2 (connv, strv);
936 virConnectPtr conn = Connect_val (connv);
937 char *str = String_val (strv);
940 NONBLOCKING (r = virDomainDefineXML (conn, str));
941 CHECK_ERROR (!r, conn, "virDomainDefineXML");
943 rv = Val_domain (r, connv);
948 /* Automatically generated binding for virDomainUndefine.
949 * In generator.pl this function has signature "dom : unit".
953 ocaml_libvirt_domain_undefine (value domv)
957 virDomainPtr dom = Domain_val (domv);
958 virConnectPtr conn = Connect_domv (domv);
961 NONBLOCKING (r = virDomainUndefine (dom));
962 CHECK_ERROR (r == -1, conn, "virDomainUndefine");
964 CAMLreturn (Val_unit);
967 /* Automatically generated binding for virDomainCreate.
968 * In generator.pl this function has signature "dom : unit".
972 ocaml_libvirt_domain_create (value domv)
976 virDomainPtr dom = Domain_val (domv);
977 virConnectPtr conn = Connect_domv (domv);
980 NONBLOCKING (r = virDomainCreate (dom));
981 CHECK_ERROR (r == -1, conn, "virDomainCreate");
983 CAMLreturn (Val_unit);
986 /* Automatically generated binding for virDomainAttachDevice.
987 * In generator.pl this function has signature "dom, string : unit".
991 ocaml_libvirt_domain_attach_device (value domv, value strv)
993 CAMLparam2 (domv, strv);
995 virDomainPtr dom = Domain_val (domv);
996 virConnectPtr conn = Connect_domv (domv);
997 char *str = String_val (strv);
1000 NONBLOCKING (r = virDomainAttachDevice (dom, str));
1001 CHECK_ERROR (r == -1, conn, "virDomainAttachDevice");
1003 CAMLreturn (Val_unit);
1006 /* Automatically generated binding for virDomainDetachDevice.
1007 * In generator.pl this function has signature "dom, string : unit".
1011 ocaml_libvirt_domain_detach_device (value domv, value strv)
1013 CAMLparam2 (domv, strv);
1015 virDomainPtr dom = Domain_val (domv);
1016 virConnectPtr conn = Connect_domv (domv);
1017 char *str = String_val (strv);
1020 NONBLOCKING (r = virDomainDetachDevice (dom, str));
1021 CHECK_ERROR (r == -1, conn, "virDomainDetachDevice");
1023 CAMLreturn (Val_unit);
1026 /* Automatically generated binding for virDomainGetAutostart.
1027 * In generator.pl this function has signature "dom : bool".
1031 ocaml_libvirt_domain_get_autostart (value domv)
1035 virDomainPtr dom = Domain_val (domv);
1036 virConnectPtr conn = Connect_domv (domv);
1039 NONBLOCKING (r = virDomainGetAutostart (dom, &b));
1040 CHECK_ERROR (r == -1, conn, "virDomainGetAutostart");
1042 CAMLreturn (b ? Val_true : Val_false);
1045 /* Automatically generated binding for virDomainSetAutostart.
1046 * In generator.pl this function has signature "dom, bool : unit".
1050 ocaml_libvirt_domain_set_autostart (value domv, value bv)
1052 CAMLparam2 (domv, bv);
1054 virDomainPtr dom = Domain_val (domv);
1055 virConnectPtr conn = Connect_domv (domv);
1058 b = bv == Val_true ? 1 : 0;
1060 NONBLOCKING (r = virDomainSetAutostart (dom, b));
1061 CHECK_ERROR (r == -1, conn, "virDomainSetAutostart");
1063 CAMLreturn (Val_unit);
1066 /* Automatically generated binding for virNetworkFree.
1067 * In generator.pl this function has signature "net : free".
1071 ocaml_libvirt_network_free (value netv)
1075 virNetworkPtr net = Network_val (netv);
1076 virConnectPtr conn = Connect_netv (netv);
1079 NONBLOCKING (r = virNetworkFree (net));
1080 CHECK_ERROR (r == -1, conn, "virNetworkFree");
1082 /* So that we don't double-free in the finalizer: */
1083 Network_val (netv) = NULL;
1085 CAMLreturn (Val_unit);
1088 /* Automatically generated binding for virNetworkDestroy.
1089 * In generator.pl this function has signature "net : free".
1093 ocaml_libvirt_network_destroy (value netv)
1097 virNetworkPtr net = Network_val (netv);
1098 virConnectPtr conn = Connect_netv (netv);
1101 NONBLOCKING (r = virNetworkDestroy (net));
1102 CHECK_ERROR (r == -1, conn, "virNetworkDestroy");
1104 /* So that we don't double-free in the finalizer: */
1105 Network_val (netv) = NULL;
1107 CAMLreturn (Val_unit);
1110 /* Automatically generated binding for virNetworkLookupByName.
1111 * In generator.pl this function has signature "conn, string : net".
1115 ocaml_libvirt_network_lookup_by_name (value connv, value strv)
1117 CAMLparam2 (connv, strv);
1120 virConnectPtr conn = Connect_val (connv);
1121 char *str = String_val (strv);
1124 NONBLOCKING (r = virNetworkLookupByName (conn, str));
1125 CHECK_ERROR (!r, conn, "virNetworkLookupByName");
1127 rv = Val_network (r, connv);
1132 /* Automatically generated binding for virNetworkLookupByUUID.
1133 * In generator.pl this function has signature "conn, uuid : net".
1137 ocaml_libvirt_network_lookup_by_uuid (value connv, value uuidv)
1139 CAMLparam2 (connv, uuidv);
1142 virConnectPtr conn = Connect_val (connv);
1143 unsigned char *uuid = (unsigned char *) String_val (uuidv);
1146 NONBLOCKING (r = virNetworkLookupByUUID (conn, uuid));
1147 CHECK_ERROR (!r, conn, "virNetworkLookupByUUID");
1149 rv = Val_network (r, connv);
1154 /* Automatically generated binding for virNetworkLookupByUUIDString.
1155 * In generator.pl this function has signature "conn, string : net".
1159 ocaml_libvirt_network_lookup_by_uuid_string (value connv, value strv)
1161 CAMLparam2 (connv, strv);
1164 virConnectPtr conn = Connect_val (connv);
1165 char *str = String_val (strv);
1168 NONBLOCKING (r = virNetworkLookupByUUIDString (conn, str));
1169 CHECK_ERROR (!r, conn, "virNetworkLookupByUUIDString");
1171 rv = Val_network (r, connv);
1176 /* Automatically generated binding for virNetworkGetName.
1177 * In generator.pl this function has signature "net : static string".
1181 ocaml_libvirt_network_get_name (value netv)
1186 virNetworkPtr net = Network_val (netv);
1187 virConnectPtr conn = Connect_netv (netv);
1190 NONBLOCKING (r = virNetworkGetName (net));
1191 CHECK_ERROR (!r, conn, "virNetworkGetName");
1193 rv = caml_copy_string (r);
1197 /* Automatically generated binding for virNetworkGetXMLDesc.
1198 * In generator.pl this function has signature "net, 0 : string".
1202 ocaml_libvirt_network_get_xml_desc (value netv)
1207 virNetworkPtr net = Network_val (netv);
1208 virConnectPtr conn = Connect_netv (netv);
1211 NONBLOCKING (r = virNetworkGetXMLDesc (net, 0));
1212 CHECK_ERROR (!r, conn, "virNetworkGetXMLDesc");
1214 rv = caml_copy_string (r);
1219 /* Automatically generated binding for virNetworkGetBridgeName.
1220 * In generator.pl this function has signature "net : string".
1224 ocaml_libvirt_network_get_bridge_name (value netv)
1229 virNetworkPtr net = Network_val (netv);
1230 virConnectPtr conn = Connect_netv (netv);
1233 NONBLOCKING (r = virNetworkGetBridgeName (net));
1234 CHECK_ERROR (!r, conn, "virNetworkGetBridgeName");
1236 rv = caml_copy_string (r);
1241 /* Automatically generated binding for virNetworkGetUUID.
1242 * In generator.pl this function has signature "net : uuid".
1246 ocaml_libvirt_network_get_uuid (value netv)
1251 virNetworkPtr net = Network_val (netv);
1252 virConnectPtr conn = Connect_netv (netv);
1253 unsigned char uuid[VIR_UUID_BUFLEN];
1256 NONBLOCKING (r = virNetworkGetUUID (net, uuid));
1257 CHECK_ERROR (r == -1, conn, "virNetworkGetUUID");
1259 /* UUIDs are byte arrays with a fixed length. */
1260 rv = caml_alloc_string (VIR_UUID_BUFLEN);
1261 memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
1265 /* Automatically generated binding for virNetworkGetUUIDString.
1266 * In generator.pl this function has signature "net : uuid string".
1270 ocaml_libvirt_network_get_uuid_string (value netv)
1275 virNetworkPtr net = Network_val (netv);
1276 virConnectPtr conn = Connect_netv (netv);
1277 char uuid[VIR_UUID_STRING_BUFLEN];
1280 NONBLOCKING (r = virNetworkGetUUIDString (net, uuid));
1281 CHECK_ERROR (r == -1, conn, "virNetworkGetUUIDString");
1283 rv = caml_copy_string (uuid);
1287 /* Automatically generated binding for virNetworkUndefine.
1288 * In generator.pl this function has signature "net : unit".
1292 ocaml_libvirt_network_undefine (value netv)
1296 virNetworkPtr net = Network_val (netv);
1297 virConnectPtr conn = Connect_netv (netv);
1300 NONBLOCKING (r = virNetworkUndefine (net));
1301 CHECK_ERROR (r == -1, conn, "virNetworkUndefine");
1303 CAMLreturn (Val_unit);
1306 /* Automatically generated binding for virNetworkCreateXML.
1307 * In generator.pl this function has signature "conn, string : net".
1311 ocaml_libvirt_network_create_xml (value connv, value strv)
1313 CAMLparam2 (connv, strv);
1316 virConnectPtr conn = Connect_val (connv);
1317 char *str = String_val (strv);
1320 NONBLOCKING (r = virNetworkCreateXML (conn, str));
1321 CHECK_ERROR (!r, conn, "virNetworkCreateXML");
1323 rv = Val_network (r, connv);
1328 /* Automatically generated binding for virNetworkDefineXML.
1329 * In generator.pl this function has signature "conn, string : net".
1333 ocaml_libvirt_network_define_xml (value connv, value strv)
1335 CAMLparam2 (connv, strv);
1338 virConnectPtr conn = Connect_val (connv);
1339 char *str = String_val (strv);
1342 NONBLOCKING (r = virNetworkDefineXML (conn, str));
1343 CHECK_ERROR (!r, conn, "virNetworkDefineXML");
1345 rv = Val_network (r, connv);
1350 /* Automatically generated binding for virNetworkCreate.
1351 * In generator.pl this function has signature "net : unit".
1355 ocaml_libvirt_network_create (value netv)
1359 virNetworkPtr net = Network_val (netv);
1360 virConnectPtr conn = Connect_netv (netv);
1363 NONBLOCKING (r = virNetworkCreate (net));
1364 CHECK_ERROR (r == -1, conn, "virNetworkCreate");
1366 CAMLreturn (Val_unit);
1369 /* Automatically generated binding for virNetworkGetAutostart.
1370 * In generator.pl this function has signature "net : bool".
1374 ocaml_libvirt_network_get_autostart (value netv)
1378 virNetworkPtr net = Network_val (netv);
1379 virConnectPtr conn = Connect_netv (netv);
1382 NONBLOCKING (r = virNetworkGetAutostart (net, &b));
1383 CHECK_ERROR (r == -1, conn, "virNetworkGetAutostart");
1385 CAMLreturn (b ? Val_true : Val_false);
1388 /* Automatically generated binding for virNetworkSetAutostart.
1389 * In generator.pl this function has signature "net, bool : unit".
1393 ocaml_libvirt_network_set_autostart (value netv, value bv)
1395 CAMLparam2 (netv, bv);
1397 virNetworkPtr net = Network_val (netv);
1398 virConnectPtr conn = Connect_netv (netv);
1401 b = bv == Val_true ? 1 : 0;
1403 NONBLOCKING (r = virNetworkSetAutostart (net, b));
1404 CHECK_ERROR (r == -1, conn, "virNetworkSetAutostart");
1406 CAMLreturn (Val_unit);
1409 /* Automatically generated binding for virStoragePoolFree.
1410 * In generator.pl this function has signature "pool : free".
1414 ocaml_libvirt_storage_pool_free (value poolv)
1418 virStoragePoolPtr pool = Pool_val (poolv);
1419 virConnectPtr conn = Connect_polv (poolv);
1422 NONBLOCKING (r = virStoragePoolFree (pool));
1423 CHECK_ERROR (r == -1, conn, "virStoragePoolFree");
1425 /* So that we don't double-free in the finalizer: */
1426 Pool_val (poolv) = NULL;
1428 CAMLreturn (Val_unit);
1431 /* Automatically generated binding for virStoragePoolDestroy.
1432 * In generator.pl this function has signature "pool : free".
1436 ocaml_libvirt_storage_pool_destroy (value poolv)
1440 virStoragePoolPtr pool = Pool_val (poolv);
1441 virConnectPtr conn = Connect_polv (poolv);
1444 NONBLOCKING (r = virStoragePoolDestroy (pool));
1445 CHECK_ERROR (r == -1, conn, "virStoragePoolDestroy");
1447 /* So that we don't double-free in the finalizer: */
1448 Pool_val (poolv) = NULL;
1450 CAMLreturn (Val_unit);
1453 /* Automatically generated binding for virStoragePoolLookupByName.
1454 * In generator.pl this function has signature "conn, string : pool".
1458 ocaml_libvirt_storage_pool_lookup_by_name (value connv, value strv)
1460 CAMLparam2 (connv, strv);
1463 virConnectPtr conn = Connect_val (connv);
1464 char *str = String_val (strv);
1465 virStoragePoolPtr r;
1467 NONBLOCKING (r = virStoragePoolLookupByName (conn, str));
1468 CHECK_ERROR (!r, conn, "virStoragePoolLookupByName");
1470 rv = Val_pool (r, connv);
1475 /* Automatically generated binding for virStoragePoolLookupByUUID.
1476 * In generator.pl this function has signature "conn, uuid : pool".
1480 ocaml_libvirt_storage_pool_lookup_by_uuid (value connv, value uuidv)
1482 CAMLparam2 (connv, uuidv);
1485 virConnectPtr conn = Connect_val (connv);
1486 unsigned char *uuid = (unsigned char *) String_val (uuidv);
1487 virStoragePoolPtr r;
1489 NONBLOCKING (r = virStoragePoolLookupByUUID (conn, uuid));
1490 CHECK_ERROR (!r, conn, "virStoragePoolLookupByUUID");
1492 rv = Val_pool (r, connv);
1497 /* Automatically generated binding for virStoragePoolLookupByUUIDString.
1498 * In generator.pl this function has signature "conn, string : pool".
1502 ocaml_libvirt_storage_pool_lookup_by_uuid_string (value connv, value strv)
1504 CAMLparam2 (connv, strv);
1507 virConnectPtr conn = Connect_val (connv);
1508 char *str = String_val (strv);
1509 virStoragePoolPtr r;
1511 NONBLOCKING (r = virStoragePoolLookupByUUIDString (conn, str));
1512 CHECK_ERROR (!r, conn, "virStoragePoolLookupByUUIDString");
1514 rv = Val_pool (r, connv);
1519 /* Automatically generated binding for virStoragePoolGetName.
1520 * In generator.pl this function has signature "pool : static string".
1524 ocaml_libvirt_storage_pool_get_name (value poolv)
1529 virStoragePoolPtr pool = Pool_val (poolv);
1530 virConnectPtr conn = Connect_polv (poolv);
1533 NONBLOCKING (r = virStoragePoolGetName (pool));
1534 CHECK_ERROR (!r, conn, "virStoragePoolGetName");
1536 rv = caml_copy_string (r);
1540 /* Automatically generated binding for virStoragePoolGetXMLDesc.
1541 * In generator.pl this function has signature "pool, 0U : string".
1545 ocaml_libvirt_storage_pool_get_xml_desc (value poolv)
1550 virStoragePoolPtr pool = Pool_val (poolv);
1551 virConnectPtr conn = Connect_polv (poolv);
1554 NONBLOCKING (r = virStoragePoolGetXMLDesc (pool, 0));
1555 CHECK_ERROR (!r, conn, "virStoragePoolGetXMLDesc");
1557 rv = caml_copy_string (r);
1562 /* Automatically generated binding for virStoragePoolGetUUID.
1563 * In generator.pl this function has signature "pool : uuid".
1567 ocaml_libvirt_storage_pool_get_uuid (value poolv)
1572 virStoragePoolPtr pool = Pool_val (poolv);
1573 virConnectPtr conn = Connect_polv (poolv);
1574 unsigned char uuid[VIR_UUID_BUFLEN];
1577 NONBLOCKING (r = virStoragePoolGetUUID (pool, uuid));
1578 CHECK_ERROR (r == -1, conn, "virStoragePoolGetUUID");
1580 /* UUIDs are byte arrays with a fixed length. */
1581 rv = caml_alloc_string (VIR_UUID_BUFLEN);
1582 memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
1586 /* Automatically generated binding for virStoragePoolGetUUIDString.
1587 * In generator.pl this function has signature "pool : uuid string".
1591 ocaml_libvirt_storage_pool_get_uuid_string (value poolv)
1596 virStoragePoolPtr pool = Pool_val (poolv);
1597 virConnectPtr conn = Connect_polv (poolv);
1598 char uuid[VIR_UUID_STRING_BUFLEN];
1601 NONBLOCKING (r = virStoragePoolGetUUIDString (pool, uuid));
1602 CHECK_ERROR (r == -1, conn, "virStoragePoolGetUUIDString");
1604 rv = caml_copy_string (uuid);
1608 /* Automatically generated binding for virStoragePoolCreateXML.
1609 * In generator.pl this function has signature "conn, string, 0U : pool".
1613 ocaml_libvirt_storage_pool_create_xml (value connv, value strv)
1615 CAMLparam2 (connv, strv);
1618 virConnectPtr conn = Connect_val (connv);
1619 char *str = String_val (strv);
1620 virStoragePoolPtr r;
1622 NONBLOCKING (r = virStoragePoolCreateXML (conn, str, 0));
1623 CHECK_ERROR (!r, conn, "virStoragePoolCreateXML");
1625 rv = Val_pool (r, connv);
1630 /* Automatically generated binding for virStoragePoolDefineXML.
1631 * In generator.pl this function has signature "conn, string, 0U : pool".
1635 ocaml_libvirt_storage_pool_define_xml (value connv, value strv)
1637 CAMLparam2 (connv, strv);
1640 virConnectPtr conn = Connect_val (connv);
1641 char *str = String_val (strv);
1642 virStoragePoolPtr r;
1644 NONBLOCKING (r = virStoragePoolDefineXML (conn, str, 0));
1645 CHECK_ERROR (!r, conn, "virStoragePoolDefineXML");
1647 rv = Val_pool (r, connv);
1652 /* Automatically generated binding for virStoragePoolBuild.
1653 * In generator.pl this function has signature "pool, uint : unit".
1657 ocaml_libvirt_storage_pool_build (value poolv, value iv)
1659 CAMLparam2 (poolv, iv);
1661 virStoragePoolPtr pool = Pool_val (poolv);
1662 virConnectPtr conn = Connect_polv (poolv);
1663 unsigned int i = Int_val (iv);
1666 NONBLOCKING (r = virStoragePoolBuild (pool, i));
1667 CHECK_ERROR (r == -1, conn, "virStoragePoolBuild");
1669 CAMLreturn (Val_unit);
1672 /* Automatically generated binding for virStoragePoolUndefine.
1673 * In generator.pl this function has signature "pool : unit".
1677 ocaml_libvirt_storage_pool_undefine (value poolv)
1681 virStoragePoolPtr pool = Pool_val (poolv);
1682 virConnectPtr conn = Connect_polv (poolv);
1685 NONBLOCKING (r = virStoragePoolUndefine (pool));
1686 CHECK_ERROR (r == -1, conn, "virStoragePoolUndefine");
1688 CAMLreturn (Val_unit);
1691 /* Automatically generated binding for virStoragePoolCreate.
1692 * In generator.pl this function has signature "pool, 0U : unit".
1696 ocaml_libvirt_storage_pool_create (value poolv)
1700 virStoragePoolPtr pool = Pool_val (poolv);
1701 virConnectPtr conn = Connect_polv (poolv);
1704 NONBLOCKING (r = virStoragePoolCreate (pool, 0));
1705 CHECK_ERROR (r == -1, conn, "virStoragePoolCreate");
1707 CAMLreturn (Val_unit);
1710 /* Automatically generated binding for virStoragePoolDelete.
1711 * In generator.pl this function has signature "pool, uint : unit".
1715 ocaml_libvirt_storage_pool_delete (value poolv, value iv)
1717 CAMLparam2 (poolv, iv);
1719 virStoragePoolPtr pool = Pool_val (poolv);
1720 virConnectPtr conn = Connect_polv (poolv);
1721 unsigned int i = Int_val (iv);
1724 NONBLOCKING (r = virStoragePoolDelete (pool, i));
1725 CHECK_ERROR (r == -1, conn, "virStoragePoolDelete");
1727 CAMLreturn (Val_unit);
1730 /* Automatically generated binding for virStoragePoolRefresh.
1731 * In generator.pl this function has signature "pool, 0U : unit".
1735 ocaml_libvirt_storage_pool_refresh (value poolv)
1739 virStoragePoolPtr pool = Pool_val (poolv);
1740 virConnectPtr conn = Connect_polv (poolv);
1743 NONBLOCKING (r = virStoragePoolRefresh (pool, 0));
1744 CHECK_ERROR (r == -1, conn, "virStoragePoolRefresh");
1746 CAMLreturn (Val_unit);
1749 /* Automatically generated binding for virStoragePoolGetAutostart.
1750 * In generator.pl this function has signature "pool : bool".
1754 ocaml_libvirt_storage_pool_get_autostart (value poolv)
1758 virStoragePoolPtr pool = Pool_val (poolv);
1759 virConnectPtr conn = Connect_polv (poolv);
1762 NONBLOCKING (r = virStoragePoolGetAutostart (pool, &b));
1763 CHECK_ERROR (r == -1, conn, "virStoragePoolGetAutostart");
1765 CAMLreturn (b ? Val_true : Val_false);
1768 /* Automatically generated binding for virStoragePoolSetAutostart.
1769 * In generator.pl this function has signature "pool, bool : unit".
1773 ocaml_libvirt_storage_pool_set_autostart (value poolv, value bv)
1775 CAMLparam2 (poolv, bv);
1777 virStoragePoolPtr pool = Pool_val (poolv);
1778 virConnectPtr conn = Connect_polv (poolv);
1781 b = bv == Val_true ? 1 : 0;
1783 NONBLOCKING (r = virStoragePoolSetAutostart (pool, b));
1784 CHECK_ERROR (r == -1, conn, "virStoragePoolSetAutostart");
1786 CAMLreturn (Val_unit);
1789 /* Automatically generated binding for virStoragePoolNumOfVolumes.
1790 * In generator.pl this function has signature "pool : int".
1794 ocaml_libvirt_storage_pool_num_of_volumes (value poolv)
1798 virStoragePoolPtr pool = Pool_val (poolv);
1799 virConnectPtr conn = Connect_polv (poolv);
1802 NONBLOCKING (r = virStoragePoolNumOfVolumes (pool));
1803 CHECK_ERROR (r == -1, conn, "virStoragePoolNumOfVolumes");
1805 CAMLreturn (Val_int (r));
1808 /* Automatically generated binding for virStoragePoolListVolumes.
1809 * In generator.pl this function has signature "pool, int : string array".
1813 ocaml_libvirt_storage_pool_list_volumes (value poolv, value iv)
1815 CAMLparam2 (poolv, iv);
1817 CAMLlocal2 (rv, strv);
1818 virStoragePoolPtr pool = Pool_val (poolv);
1819 virConnectPtr conn = Connect_polv (poolv);
1820 int i = Int_val (iv);
1824 /* Some libvirt List* functions still throw exceptions if i == 0,
1825 * so catch that and return an empty array directly. This changes
1826 * the semantics slightly (masking other failures) but it's
1827 * unlikely anyone will care. RWMJ 2008/06/10
1830 rv = caml_alloc (0, 0);
1834 NONBLOCKING (r = virStoragePoolListVolumes (pool, names, i));
1835 CHECK_ERROR (r == -1, conn, "virStoragePoolListVolumes");
1837 rv = caml_alloc (r, 0);
1838 for (i = 0; i < r; ++i) {
1839 strv = caml_copy_string (names[i]);
1840 Store_field (rv, i, strv);
1847 /* Automatically generated binding for virStorageVolFree.
1848 * In generator.pl this function has signature "vol : free".
1852 ocaml_libvirt_storage_vol_free (value volv)
1856 virStorageVolPtr vol = Volume_val (volv);
1857 virConnectPtr conn = Connect_volv (volv);
1860 NONBLOCKING (r = virStorageVolFree (vol));
1861 CHECK_ERROR (r == -1, conn, "virStorageVolFree");
1863 /* So that we don't double-free in the finalizer: */
1864 Volume_val (volv) = NULL;
1866 CAMLreturn (Val_unit);
1869 /* Automatically generated binding for virStorageVolDelete.
1870 * In generator.pl this function has signature "vol, uint : unit".
1874 ocaml_libvirt_storage_vol_delete (value volv, value iv)
1876 CAMLparam2 (volv, iv);
1878 virStorageVolPtr vol = Volume_val (volv);
1879 virConnectPtr conn = Connect_volv (volv);
1880 unsigned int i = Int_val (iv);
1883 NONBLOCKING (r = virStorageVolDelete (vol, i));
1884 CHECK_ERROR (r == -1, conn, "virStorageVolDelete");
1886 CAMLreturn (Val_unit);
1889 /* Automatically generated binding for virStorageVolLookupByName.
1890 * In generator.pl this function has signature "pool, string : vol from pool".
1894 ocaml_libvirt_storage_vol_lookup_by_name (value poolv, value strv)
1896 CAMLparam2 (poolv, strv);
1898 CAMLlocal2 (rv, connv);
1899 virStoragePoolPtr pool = Pool_val (poolv);
1900 virConnectPtr conn = Connect_polv (poolv);
1901 char *str = String_val (strv);
1904 NONBLOCKING (r = virStorageVolLookupByName (pool, str));
1905 CHECK_ERROR (!r, conn, "virStorageVolLookupByName");
1907 connv = Field (poolv, 1);
1908 rv = Val_volume (r, connv);
1913 /* Automatically generated binding for virStorageVolLookupByKey.
1914 * In generator.pl this function has signature "conn, string : vol".
1918 ocaml_libvirt_storage_vol_lookup_by_key (value connv, value strv)
1920 CAMLparam2 (connv, strv);
1923 virConnectPtr conn = Connect_val (connv);
1924 char *str = String_val (strv);
1927 NONBLOCKING (r = virStorageVolLookupByKey (conn, str));
1928 CHECK_ERROR (!r, conn, "virStorageVolLookupByKey");
1930 rv = Val_volume (r, connv);
1935 /* Automatically generated binding for virStorageVolLookupByPath.
1936 * In generator.pl this function has signature "conn, string : vol".
1940 ocaml_libvirt_storage_vol_lookup_by_path (value connv, value strv)
1942 CAMLparam2 (connv, strv);
1945 virConnectPtr conn = Connect_val (connv);
1946 char *str = String_val (strv);
1949 NONBLOCKING (r = virStorageVolLookupByPath (conn, str));
1950 CHECK_ERROR (!r, conn, "virStorageVolLookupByPath");
1952 rv = Val_volume (r, connv);
1957 /* Automatically generated binding for virStorageVolCreateXML.
1958 * In generator.pl this function has signature "pool, string, 0U : vol from pool".
1962 ocaml_libvirt_storage_vol_create_xml (value poolv, value strv)
1964 CAMLparam2 (poolv, strv);
1966 CAMLlocal2 (rv, connv);
1967 virStoragePoolPtr pool = Pool_val (poolv);
1968 virConnectPtr conn = Connect_polv (poolv);
1969 char *str = String_val (strv);
1972 NONBLOCKING (r = virStorageVolCreateXML (pool, str, 0));
1973 CHECK_ERROR (!r, conn, "virStorageVolCreateXML");
1975 connv = Field (poolv, 1);
1976 rv = Val_volume (r, connv);
1981 /* Automatically generated binding for virStorageVolGetXMLDesc.
1982 * In generator.pl this function has signature "vol, 0U : string".
1986 ocaml_libvirt_storage_vol_get_xml_desc (value volv)
1991 virStorageVolPtr vol = Volume_val (volv);
1992 virConnectPtr conn = Connect_volv (volv);
1995 NONBLOCKING (r = virStorageVolGetXMLDesc (vol, 0));
1996 CHECK_ERROR (!r, conn, "virStorageVolGetXMLDesc");
1998 rv = caml_copy_string (r);
2003 /* Automatically generated binding for virStorageVolGetPath.
2004 * In generator.pl this function has signature "vol : string".
2008 ocaml_libvirt_storage_vol_get_path (value volv)
2013 virStorageVolPtr vol = Volume_val (volv);
2014 virConnectPtr conn = Connect_volv (volv);
2017 NONBLOCKING (r = virStorageVolGetPath (vol));
2018 CHECK_ERROR (!r, conn, "virStorageVolGetPath");
2020 rv = caml_copy_string (r);
2025 /* Automatically generated binding for virStorageVolGetKey.
2026 * In generator.pl this function has signature "vol : static string".
2030 ocaml_libvirt_storage_vol_get_key (value volv)
2035 virStorageVolPtr vol = Volume_val (volv);
2036 virConnectPtr conn = Connect_volv (volv);
2039 NONBLOCKING (r = virStorageVolGetKey (vol));
2040 CHECK_ERROR (!r, conn, "virStorageVolGetKey");
2042 rv = caml_copy_string (r);
2046 /* Automatically generated binding for virStorageVolGetName.
2047 * In generator.pl this function has signature "vol : static string".
2051 ocaml_libvirt_storage_vol_get_name (value volv)
2056 virStorageVolPtr vol = Volume_val (volv);
2057 virConnectPtr conn = Connect_volv (volv);
2060 NONBLOCKING (r = virStorageVolGetName (vol));
2061 CHECK_ERROR (!r, conn, "virStorageVolGetName");
2063 rv = caml_copy_string (r);
2067 /* Automatically generated binding for virStoragePoolLookupByVolume.
2068 * In generator.pl this function has signature "vol : pool from vol".
2072 ocaml_libvirt_storage_pool_lookup_by_volume (value volv)
2076 CAMLlocal2 (rv, connv);
2077 virStorageVolPtr vol = Volume_val (volv);
2078 virConnectPtr conn = Connect_volv (volv);
2079 virStoragePoolPtr r;
2081 NONBLOCKING (r = virStoragePoolLookupByVolume (vol));
2082 CHECK_ERROR (!r, conn, "virStoragePoolLookupByVolume");
2084 connv = Field (volv, 1);
2085 rv = Val_pool (r, connv);
2090 #include "libvirt_c_epilogue.c"