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 virDomainCreateLinux.
488 * In generator.pl this function has signature "conn, string, 0U : dom".
492 ocaml_libvirt_domain_create_linux (value connv, value strv)
494 CAMLparam2 (connv, strv);
497 virConnectPtr conn = Connect_val (connv);
498 char *str = String_val (strv);
501 NONBLOCKING (r = virDomainCreateLinux (conn, str, 0));
502 CHECK_ERROR (!r, conn, "virDomainCreateLinux");
504 rv = Val_domain (r, connv);
509 /* Automatically generated binding for virDomainFree.
510 * In generator.pl this function has signature "dom : free".
514 ocaml_libvirt_domain_free (value domv)
518 virDomainPtr dom = Domain_val (domv);
519 virConnectPtr conn = Connect_domv (domv);
522 NONBLOCKING (r = virDomainFree (dom));
523 CHECK_ERROR (r == -1, conn, "virDomainFree");
525 /* So that we don't double-free in the finalizer: */
526 Domain_val (domv) = NULL;
528 CAMLreturn (Val_unit);
531 /* Automatically generated binding for virDomainDestroy.
532 * In generator.pl this function has signature "dom : free".
536 ocaml_libvirt_domain_destroy (value domv)
540 virDomainPtr dom = Domain_val (domv);
541 virConnectPtr conn = Connect_domv (domv);
544 NONBLOCKING (r = virDomainDestroy (dom));
545 CHECK_ERROR (r == -1, conn, "virDomainDestroy");
547 /* So that we don't double-free in the finalizer: */
548 Domain_val (domv) = NULL;
550 CAMLreturn (Val_unit);
553 /* Automatically generated binding for virDomainLookupByName.
554 * In generator.pl this function has signature "conn, string : dom".
558 ocaml_libvirt_domain_lookup_by_name (value connv, value strv)
560 CAMLparam2 (connv, strv);
563 virConnectPtr conn = Connect_val (connv);
564 char *str = String_val (strv);
567 NONBLOCKING (r = virDomainLookupByName (conn, str));
568 CHECK_ERROR (!r, conn, "virDomainLookupByName");
570 rv = Val_domain (r, connv);
575 /* Automatically generated binding for virDomainLookupByID.
576 * In generator.pl this function has signature "conn, int : dom".
580 ocaml_libvirt_domain_lookup_by_id (value connv, value iv)
582 CAMLparam2 (connv, iv);
585 virConnectPtr conn = Connect_val (connv);
586 int i = Int_val (iv);
589 NONBLOCKING (r = virDomainLookupByID (conn, i));
590 CHECK_ERROR (!r, conn, "virDomainLookupByID");
592 rv = Val_domain (r, connv);
597 /* Automatically generated binding for virDomainLookupByUUID.
598 * In generator.pl this function has signature "conn, uuid : dom".
602 ocaml_libvirt_domain_lookup_by_uuid (value connv, value uuidv)
604 CAMLparam2 (connv, uuidv);
607 virConnectPtr conn = Connect_val (connv);
608 unsigned char *uuid = (unsigned char *) String_val (uuidv);
611 NONBLOCKING (r = virDomainLookupByUUID (conn, uuid));
612 CHECK_ERROR (!r, conn, "virDomainLookupByUUID");
614 rv = Val_domain (r, connv);
619 /* Automatically generated binding for virDomainLookupByUUIDString.
620 * In generator.pl this function has signature "conn, string : dom".
624 ocaml_libvirt_domain_lookup_by_uuid_string (value connv, value strv)
626 CAMLparam2 (connv, strv);
629 virConnectPtr conn = Connect_val (connv);
630 char *str = String_val (strv);
633 NONBLOCKING (r = virDomainLookupByUUIDString (conn, str));
634 CHECK_ERROR (!r, conn, "virDomainLookupByUUIDString");
636 rv = Val_domain (r, connv);
641 /* Automatically generated binding for virDomainGetName.
642 * In generator.pl this function has signature "dom : static string".
646 ocaml_libvirt_domain_get_name (value domv)
651 virDomainPtr dom = Domain_val (domv);
652 virConnectPtr conn = Connect_domv (domv);
655 NONBLOCKING (r = virDomainGetName (dom));
656 CHECK_ERROR (!r, conn, "virDomainGetName");
658 rv = caml_copy_string (r);
662 /* Automatically generated binding for virDomainGetOSType.
663 * In generator.pl this function has signature "dom : string".
667 ocaml_libvirt_domain_get_os_type (value domv)
672 virDomainPtr dom = Domain_val (domv);
673 virConnectPtr conn = Connect_domv (domv);
676 NONBLOCKING (r = virDomainGetOSType (dom));
677 CHECK_ERROR (!r, conn, "virDomainGetOSType");
679 rv = caml_copy_string (r);
684 /* Automatically generated binding for virDomainGetXMLDesc.
685 * In generator.pl this function has signature "dom, 0 : string".
689 ocaml_libvirt_domain_get_xml_desc (value domv)
694 virDomainPtr dom = Domain_val (domv);
695 virConnectPtr conn = Connect_domv (domv);
698 NONBLOCKING (r = virDomainGetXMLDesc (dom, 0));
699 CHECK_ERROR (!r, conn, "virDomainGetXMLDesc");
701 rv = caml_copy_string (r);
706 /* Automatically generated binding for virDomainGetUUID.
707 * In generator.pl this function has signature "dom : uuid".
711 ocaml_libvirt_domain_get_uuid (value domv)
716 virDomainPtr dom = Domain_val (domv);
717 virConnectPtr conn = Connect_domv (domv);
718 unsigned char uuid[VIR_UUID_BUFLEN];
721 NONBLOCKING (r = virDomainGetUUID (dom, uuid));
722 CHECK_ERROR (r == -1, conn, "virDomainGetUUID");
724 /* UUIDs are byte arrays with a fixed length. */
725 rv = caml_alloc_string (VIR_UUID_BUFLEN);
726 memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
730 /* Automatically generated binding for virDomainGetUUIDString.
731 * In generator.pl this function has signature "dom : uuid string".
735 ocaml_libvirt_domain_get_uuid_string (value domv)
740 virDomainPtr dom = Domain_val (domv);
741 virConnectPtr conn = Connect_domv (domv);
742 char uuid[VIR_UUID_STRING_BUFLEN];
745 NONBLOCKING (r = virDomainGetUUIDString (dom, uuid));
746 CHECK_ERROR (r == -1, conn, "virDomainGetUUIDString");
748 rv = caml_copy_string (uuid);
752 /* Automatically generated binding for virDomainGetMaxVcpus.
753 * In generator.pl this function has signature "dom : int".
757 ocaml_libvirt_domain_get_max_vcpus (value domv)
761 virDomainPtr dom = Domain_val (domv);
762 virConnectPtr conn = Connect_domv (domv);
765 NONBLOCKING (r = virDomainGetMaxVcpus (dom));
766 CHECK_ERROR (r == -1, conn, "virDomainGetMaxVcpus");
768 CAMLreturn (Val_int (r));
771 /* Automatically generated binding for virDomainSave.
772 * In generator.pl this function has signature "dom, string : unit".
776 ocaml_libvirt_domain_save (value domv, value strv)
778 CAMLparam2 (domv, strv);
780 virDomainPtr dom = Domain_val (domv);
781 virConnectPtr conn = Connect_domv (domv);
782 char *str = String_val (strv);
785 NONBLOCKING (r = virDomainSave (dom, str));
786 CHECK_ERROR (r == -1, conn, "virDomainSave");
788 CAMLreturn (Val_unit);
791 /* Automatically generated binding for virDomainRestore.
792 * In generator.pl this function has signature "conn, string : unit".
796 ocaml_libvirt_domain_restore (value connv, value strv)
798 CAMLparam2 (connv, strv);
800 virConnectPtr conn = Connect_val (connv);
801 char *str = String_val (strv);
804 NONBLOCKING (r = virDomainRestore (conn, str));
805 CHECK_ERROR (r == -1, conn, "virDomainRestore");
807 CAMLreturn (Val_unit);
810 /* Automatically generated binding for virDomainCoreDump.
811 * In generator.pl this function has signature "dom, string, 0 : unit".
815 ocaml_libvirt_domain_core_dump (value domv, value strv)
817 CAMLparam2 (domv, strv);
820 virDomainPtr dom = Domain_val (domv);
821 virConnectPtr conn = Connect_domv (domv);
822 char *str = String_val (strv);
825 NONBLOCKING (r = virDomainCoreDump (dom, str, 0));
826 CHECK_ERROR (!r, conn, "virDomainCoreDump");
828 CAMLreturn (Val_unit);
831 /* Automatically generated binding for virDomainSuspend.
832 * In generator.pl this function has signature "dom : unit".
836 ocaml_libvirt_domain_suspend (value domv)
840 virDomainPtr dom = Domain_val (domv);
841 virConnectPtr conn = Connect_domv (domv);
844 NONBLOCKING (r = virDomainSuspend (dom));
845 CHECK_ERROR (r == -1, conn, "virDomainSuspend");
847 CAMLreturn (Val_unit);
850 /* Automatically generated binding for virDomainResume.
851 * In generator.pl this function has signature "dom : unit".
855 ocaml_libvirt_domain_resume (value domv)
859 virDomainPtr dom = Domain_val (domv);
860 virConnectPtr conn = Connect_domv (domv);
863 NONBLOCKING (r = virDomainResume (dom));
864 CHECK_ERROR (r == -1, conn, "virDomainResume");
866 CAMLreturn (Val_unit);
869 /* Automatically generated binding for virDomainShutdown.
870 * In generator.pl this function has signature "dom : unit".
874 ocaml_libvirt_domain_shutdown (value domv)
878 virDomainPtr dom = Domain_val (domv);
879 virConnectPtr conn = Connect_domv (domv);
882 NONBLOCKING (r = virDomainShutdown (dom));
883 CHECK_ERROR (r == -1, conn, "virDomainShutdown");
885 CAMLreturn (Val_unit);
888 /* Automatically generated binding for virDomainReboot.
889 * In generator.pl this function has signature "dom, 0 : unit".
893 ocaml_libvirt_domain_reboot (value domv)
897 virDomainPtr dom = Domain_val (domv);
898 virConnectPtr conn = Connect_domv (domv);
901 NONBLOCKING (r = virDomainReboot (dom, 0));
902 CHECK_ERROR (r == -1, conn, "virDomainReboot");
904 CAMLreturn (Val_unit);
907 /* Automatically generated binding for virDomainDefineXML.
908 * In generator.pl this function has signature "conn, string : dom".
912 ocaml_libvirt_domain_define_xml (value connv, value strv)
914 CAMLparam2 (connv, strv);
917 virConnectPtr conn = Connect_val (connv);
918 char *str = String_val (strv);
921 NONBLOCKING (r = virDomainDefineXML (conn, str));
922 CHECK_ERROR (!r, conn, "virDomainDefineXML");
924 rv = Val_domain (r, connv);
929 /* Automatically generated binding for virDomainUndefine.
930 * In generator.pl this function has signature "dom : unit".
934 ocaml_libvirt_domain_undefine (value domv)
938 virDomainPtr dom = Domain_val (domv);
939 virConnectPtr conn = Connect_domv (domv);
942 NONBLOCKING (r = virDomainUndefine (dom));
943 CHECK_ERROR (r == -1, conn, "virDomainUndefine");
945 CAMLreturn (Val_unit);
948 /* Automatically generated binding for virDomainCreate.
949 * In generator.pl this function has signature "dom : unit".
953 ocaml_libvirt_domain_create (value domv)
957 virDomainPtr dom = Domain_val (domv);
958 virConnectPtr conn = Connect_domv (domv);
961 NONBLOCKING (r = virDomainCreate (dom));
962 CHECK_ERROR (r == -1, conn, "virDomainCreate");
964 CAMLreturn (Val_unit);
967 /* Automatically generated binding for virDomainAttachDevice.
968 * In generator.pl this function has signature "dom, string : unit".
972 ocaml_libvirt_domain_attach_device (value domv, value strv)
974 CAMLparam2 (domv, strv);
976 virDomainPtr dom = Domain_val (domv);
977 virConnectPtr conn = Connect_domv (domv);
978 char *str = String_val (strv);
981 NONBLOCKING (r = virDomainAttachDevice (dom, str));
982 CHECK_ERROR (r == -1, conn, "virDomainAttachDevice");
984 CAMLreturn (Val_unit);
987 /* Automatically generated binding for virDomainDetachDevice.
988 * In generator.pl this function has signature "dom, string : unit".
992 ocaml_libvirt_domain_detach_device (value domv, value strv)
994 CAMLparam2 (domv, strv);
996 virDomainPtr dom = Domain_val (domv);
997 virConnectPtr conn = Connect_domv (domv);
998 char *str = String_val (strv);
1001 NONBLOCKING (r = virDomainDetachDevice (dom, str));
1002 CHECK_ERROR (r == -1, conn, "virDomainDetachDevice");
1004 CAMLreturn (Val_unit);
1007 /* Automatically generated binding for virDomainGetAutostart.
1008 * In generator.pl this function has signature "dom : bool".
1012 ocaml_libvirt_domain_get_autostart (value domv)
1016 virDomainPtr dom = Domain_val (domv);
1017 virConnectPtr conn = Connect_domv (domv);
1020 NONBLOCKING (r = virDomainGetAutostart (dom, &b));
1021 CHECK_ERROR (r == -1, conn, "virDomainGetAutostart");
1023 CAMLreturn (b ? Val_true : Val_false);
1026 /* Automatically generated binding for virDomainSetAutostart.
1027 * In generator.pl this function has signature "dom, bool : unit".
1031 ocaml_libvirt_domain_set_autostart (value domv, value bv)
1033 CAMLparam2 (domv, bv);
1035 virDomainPtr dom = Domain_val (domv);
1036 virConnectPtr conn = Connect_domv (domv);
1039 b = bv == Val_true ? 1 : 0;
1041 NONBLOCKING (r = virDomainSetAutostart (dom, b));
1042 CHECK_ERROR (r == -1, conn, "virDomainSetAutostart");
1044 CAMLreturn (Val_unit);
1047 /* Automatically generated binding for virNetworkFree.
1048 * In generator.pl this function has signature "net : free".
1052 ocaml_libvirt_network_free (value netv)
1056 virNetworkPtr net = Network_val (netv);
1057 virConnectPtr conn = Connect_netv (netv);
1060 NONBLOCKING (r = virNetworkFree (net));
1061 CHECK_ERROR (r == -1, conn, "virNetworkFree");
1063 /* So that we don't double-free in the finalizer: */
1064 Network_val (netv) = NULL;
1066 CAMLreturn (Val_unit);
1069 /* Automatically generated binding for virNetworkDestroy.
1070 * In generator.pl this function has signature "net : free".
1074 ocaml_libvirt_network_destroy (value netv)
1078 virNetworkPtr net = Network_val (netv);
1079 virConnectPtr conn = Connect_netv (netv);
1082 NONBLOCKING (r = virNetworkDestroy (net));
1083 CHECK_ERROR (r == -1, conn, "virNetworkDestroy");
1085 /* So that we don't double-free in the finalizer: */
1086 Network_val (netv) = NULL;
1088 CAMLreturn (Val_unit);
1091 /* Automatically generated binding for virNetworkLookupByName.
1092 * In generator.pl this function has signature "conn, string : net".
1096 ocaml_libvirt_network_lookup_by_name (value connv, value strv)
1098 CAMLparam2 (connv, strv);
1101 virConnectPtr conn = Connect_val (connv);
1102 char *str = String_val (strv);
1105 NONBLOCKING (r = virNetworkLookupByName (conn, str));
1106 CHECK_ERROR (!r, conn, "virNetworkLookupByName");
1108 rv = Val_network (r, connv);
1113 /* Automatically generated binding for virNetworkLookupByUUID.
1114 * In generator.pl this function has signature "conn, uuid : net".
1118 ocaml_libvirt_network_lookup_by_uuid (value connv, value uuidv)
1120 CAMLparam2 (connv, uuidv);
1123 virConnectPtr conn = Connect_val (connv);
1124 unsigned char *uuid = (unsigned char *) String_val (uuidv);
1127 NONBLOCKING (r = virNetworkLookupByUUID (conn, uuid));
1128 CHECK_ERROR (!r, conn, "virNetworkLookupByUUID");
1130 rv = Val_network (r, connv);
1135 /* Automatically generated binding for virNetworkLookupByUUIDString.
1136 * In generator.pl this function has signature "conn, string : net".
1140 ocaml_libvirt_network_lookup_by_uuid_string (value connv, value strv)
1142 CAMLparam2 (connv, strv);
1145 virConnectPtr conn = Connect_val (connv);
1146 char *str = String_val (strv);
1149 NONBLOCKING (r = virNetworkLookupByUUIDString (conn, str));
1150 CHECK_ERROR (!r, conn, "virNetworkLookupByUUIDString");
1152 rv = Val_network (r, connv);
1157 /* Automatically generated binding for virNetworkGetName.
1158 * In generator.pl this function has signature "net : static string".
1162 ocaml_libvirt_network_get_name (value netv)
1167 virNetworkPtr net = Network_val (netv);
1168 virConnectPtr conn = Connect_netv (netv);
1171 NONBLOCKING (r = virNetworkGetName (net));
1172 CHECK_ERROR (!r, conn, "virNetworkGetName");
1174 rv = caml_copy_string (r);
1178 /* Automatically generated binding for virNetworkGetXMLDesc.
1179 * In generator.pl this function has signature "net, 0 : string".
1183 ocaml_libvirt_network_get_xml_desc (value netv)
1188 virNetworkPtr net = Network_val (netv);
1189 virConnectPtr conn = Connect_netv (netv);
1192 NONBLOCKING (r = virNetworkGetXMLDesc (net, 0));
1193 CHECK_ERROR (!r, conn, "virNetworkGetXMLDesc");
1195 rv = caml_copy_string (r);
1200 /* Automatically generated binding for virNetworkGetBridgeName.
1201 * In generator.pl this function has signature "net : string".
1205 ocaml_libvirt_network_get_bridge_name (value netv)
1210 virNetworkPtr net = Network_val (netv);
1211 virConnectPtr conn = Connect_netv (netv);
1214 NONBLOCKING (r = virNetworkGetBridgeName (net));
1215 CHECK_ERROR (!r, conn, "virNetworkGetBridgeName");
1217 rv = caml_copy_string (r);
1222 /* Automatically generated binding for virNetworkGetUUID.
1223 * In generator.pl this function has signature "net : uuid".
1227 ocaml_libvirt_network_get_uuid (value netv)
1232 virNetworkPtr net = Network_val (netv);
1233 virConnectPtr conn = Connect_netv (netv);
1234 unsigned char uuid[VIR_UUID_BUFLEN];
1237 NONBLOCKING (r = virNetworkGetUUID (net, uuid));
1238 CHECK_ERROR (r == -1, conn, "virNetworkGetUUID");
1240 /* UUIDs are byte arrays with a fixed length. */
1241 rv = caml_alloc_string (VIR_UUID_BUFLEN);
1242 memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
1246 /* Automatically generated binding for virNetworkGetUUIDString.
1247 * In generator.pl this function has signature "net : uuid string".
1251 ocaml_libvirt_network_get_uuid_string (value netv)
1256 virNetworkPtr net = Network_val (netv);
1257 virConnectPtr conn = Connect_netv (netv);
1258 char uuid[VIR_UUID_STRING_BUFLEN];
1261 NONBLOCKING (r = virNetworkGetUUIDString (net, uuid));
1262 CHECK_ERROR (r == -1, conn, "virNetworkGetUUIDString");
1264 rv = caml_copy_string (uuid);
1268 /* Automatically generated binding for virNetworkUndefine.
1269 * In generator.pl this function has signature "net : unit".
1273 ocaml_libvirt_network_undefine (value netv)
1277 virNetworkPtr net = Network_val (netv);
1278 virConnectPtr conn = Connect_netv (netv);
1281 NONBLOCKING (r = virNetworkUndefine (net));
1282 CHECK_ERROR (r == -1, conn, "virNetworkUndefine");
1284 CAMLreturn (Val_unit);
1287 /* Automatically generated binding for virNetworkCreateXML.
1288 * In generator.pl this function has signature "conn, string : net".
1292 ocaml_libvirt_network_create_xml (value connv, value strv)
1294 CAMLparam2 (connv, strv);
1297 virConnectPtr conn = Connect_val (connv);
1298 char *str = String_val (strv);
1301 NONBLOCKING (r = virNetworkCreateXML (conn, str));
1302 CHECK_ERROR (!r, conn, "virNetworkCreateXML");
1304 rv = Val_network (r, connv);
1309 /* Automatically generated binding for virNetworkDefineXML.
1310 * In generator.pl this function has signature "conn, string : net".
1314 ocaml_libvirt_network_define_xml (value connv, value strv)
1316 CAMLparam2 (connv, strv);
1319 virConnectPtr conn = Connect_val (connv);
1320 char *str = String_val (strv);
1323 NONBLOCKING (r = virNetworkDefineXML (conn, str));
1324 CHECK_ERROR (!r, conn, "virNetworkDefineXML");
1326 rv = Val_network (r, connv);
1331 /* Automatically generated binding for virNetworkCreate.
1332 * In generator.pl this function has signature "net : unit".
1336 ocaml_libvirt_network_create (value netv)
1340 virNetworkPtr net = Network_val (netv);
1341 virConnectPtr conn = Connect_netv (netv);
1344 NONBLOCKING (r = virNetworkCreate (net));
1345 CHECK_ERROR (r == -1, conn, "virNetworkCreate");
1347 CAMLreturn (Val_unit);
1350 /* Automatically generated binding for virNetworkGetAutostart.
1351 * In generator.pl this function has signature "net : bool".
1355 ocaml_libvirt_network_get_autostart (value netv)
1359 virNetworkPtr net = Network_val (netv);
1360 virConnectPtr conn = Connect_netv (netv);
1363 NONBLOCKING (r = virNetworkGetAutostart (net, &b));
1364 CHECK_ERROR (r == -1, conn, "virNetworkGetAutostart");
1366 CAMLreturn (b ? Val_true : Val_false);
1369 /* Automatically generated binding for virNetworkSetAutostart.
1370 * In generator.pl this function has signature "net, bool : unit".
1374 ocaml_libvirt_network_set_autostart (value netv, value bv)
1376 CAMLparam2 (netv, bv);
1378 virNetworkPtr net = Network_val (netv);
1379 virConnectPtr conn = Connect_netv (netv);
1382 b = bv == Val_true ? 1 : 0;
1384 NONBLOCKING (r = virNetworkSetAutostart (net, b));
1385 CHECK_ERROR (r == -1, conn, "virNetworkSetAutostart");
1387 CAMLreturn (Val_unit);
1390 /* Automatically generated binding for virStoragePoolFree.
1391 * In generator.pl this function has signature "pool : free".
1395 ocaml_libvirt_storage_pool_free (value poolv)
1399 virStoragePoolPtr pool = Pool_val (poolv);
1400 virConnectPtr conn = Connect_polv (poolv);
1403 NONBLOCKING (r = virStoragePoolFree (pool));
1404 CHECK_ERROR (r == -1, conn, "virStoragePoolFree");
1406 /* So that we don't double-free in the finalizer: */
1407 Pool_val (poolv) = NULL;
1409 CAMLreturn (Val_unit);
1412 /* Automatically generated binding for virStoragePoolDestroy.
1413 * In generator.pl this function has signature "pool : free".
1417 ocaml_libvirt_storage_pool_destroy (value poolv)
1421 virStoragePoolPtr pool = Pool_val (poolv);
1422 virConnectPtr conn = Connect_polv (poolv);
1425 NONBLOCKING (r = virStoragePoolDestroy (pool));
1426 CHECK_ERROR (r == -1, conn, "virStoragePoolDestroy");
1428 /* So that we don't double-free in the finalizer: */
1429 Pool_val (poolv) = NULL;
1431 CAMLreturn (Val_unit);
1434 /* Automatically generated binding for virStoragePoolLookupByName.
1435 * In generator.pl this function has signature "conn, string : pool".
1439 ocaml_libvirt_storage_pool_lookup_by_name (value connv, value strv)
1441 CAMLparam2 (connv, strv);
1444 virConnectPtr conn = Connect_val (connv);
1445 char *str = String_val (strv);
1446 virStoragePoolPtr r;
1448 NONBLOCKING (r = virStoragePoolLookupByName (conn, str));
1449 CHECK_ERROR (!r, conn, "virStoragePoolLookupByName");
1451 rv = Val_pool (r, connv);
1456 /* Automatically generated binding for virStoragePoolLookupByUUID.
1457 * In generator.pl this function has signature "conn, uuid : pool".
1461 ocaml_libvirt_storage_pool_lookup_by_uuid (value connv, value uuidv)
1463 CAMLparam2 (connv, uuidv);
1466 virConnectPtr conn = Connect_val (connv);
1467 unsigned char *uuid = (unsigned char *) String_val (uuidv);
1468 virStoragePoolPtr r;
1470 NONBLOCKING (r = virStoragePoolLookupByUUID (conn, uuid));
1471 CHECK_ERROR (!r, conn, "virStoragePoolLookupByUUID");
1473 rv = Val_pool (r, connv);
1478 /* Automatically generated binding for virStoragePoolLookupByUUIDString.
1479 * In generator.pl this function has signature "conn, string : pool".
1483 ocaml_libvirt_storage_pool_lookup_by_uuid_string (value connv, value strv)
1485 CAMLparam2 (connv, strv);
1488 virConnectPtr conn = Connect_val (connv);
1489 char *str = String_val (strv);
1490 virStoragePoolPtr r;
1492 NONBLOCKING (r = virStoragePoolLookupByUUIDString (conn, str));
1493 CHECK_ERROR (!r, conn, "virStoragePoolLookupByUUIDString");
1495 rv = Val_pool (r, connv);
1500 /* Automatically generated binding for virStoragePoolGetName.
1501 * In generator.pl this function has signature "pool : static string".
1505 ocaml_libvirt_storage_pool_get_name (value poolv)
1510 virStoragePoolPtr pool = Pool_val (poolv);
1511 virConnectPtr conn = Connect_polv (poolv);
1514 NONBLOCKING (r = virStoragePoolGetName (pool));
1515 CHECK_ERROR (!r, conn, "virStoragePoolGetName");
1517 rv = caml_copy_string (r);
1521 /* Automatically generated binding for virStoragePoolGetXMLDesc.
1522 * In generator.pl this function has signature "pool, 0U : string".
1526 ocaml_libvirt_storage_pool_get_xml_desc (value poolv)
1531 virStoragePoolPtr pool = Pool_val (poolv);
1532 virConnectPtr conn = Connect_polv (poolv);
1535 NONBLOCKING (r = virStoragePoolGetXMLDesc (pool, 0));
1536 CHECK_ERROR (!r, conn, "virStoragePoolGetXMLDesc");
1538 rv = caml_copy_string (r);
1543 /* Automatically generated binding for virStoragePoolGetUUID.
1544 * In generator.pl this function has signature "pool : uuid".
1548 ocaml_libvirt_storage_pool_get_uuid (value poolv)
1553 virStoragePoolPtr pool = Pool_val (poolv);
1554 virConnectPtr conn = Connect_polv (poolv);
1555 unsigned char uuid[VIR_UUID_BUFLEN];
1558 NONBLOCKING (r = virStoragePoolGetUUID (pool, uuid));
1559 CHECK_ERROR (r == -1, conn, "virStoragePoolGetUUID");
1561 /* UUIDs are byte arrays with a fixed length. */
1562 rv = caml_alloc_string (VIR_UUID_BUFLEN);
1563 memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
1567 /* Automatically generated binding for virStoragePoolGetUUIDString.
1568 * In generator.pl this function has signature "pool : uuid string".
1572 ocaml_libvirt_storage_pool_get_uuid_string (value poolv)
1577 virStoragePoolPtr pool = Pool_val (poolv);
1578 virConnectPtr conn = Connect_polv (poolv);
1579 char uuid[VIR_UUID_STRING_BUFLEN];
1582 NONBLOCKING (r = virStoragePoolGetUUIDString (pool, uuid));
1583 CHECK_ERROR (r == -1, conn, "virStoragePoolGetUUIDString");
1585 rv = caml_copy_string (uuid);
1589 /* Automatically generated binding for virStoragePoolCreateXML.
1590 * In generator.pl this function has signature "conn, string, 0U : pool".
1594 ocaml_libvirt_storage_pool_create_xml (value connv, value strv)
1596 CAMLparam2 (connv, strv);
1599 virConnectPtr conn = Connect_val (connv);
1600 char *str = String_val (strv);
1601 virStoragePoolPtr r;
1603 NONBLOCKING (r = virStoragePoolCreateXML (conn, str, 0));
1604 CHECK_ERROR (!r, conn, "virStoragePoolCreateXML");
1606 rv = Val_pool (r, connv);
1611 /* Automatically generated binding for virStoragePoolDefineXML.
1612 * In generator.pl this function has signature "conn, string, 0U : pool".
1616 ocaml_libvirt_storage_pool_define_xml (value connv, value strv)
1618 CAMLparam2 (connv, strv);
1621 virConnectPtr conn = Connect_val (connv);
1622 char *str = String_val (strv);
1623 virStoragePoolPtr r;
1625 NONBLOCKING (r = virStoragePoolDefineXML (conn, str, 0));
1626 CHECK_ERROR (!r, conn, "virStoragePoolDefineXML");
1628 rv = Val_pool (r, connv);
1633 /* Automatically generated binding for virStoragePoolBuild.
1634 * In generator.pl this function has signature "pool, uint : unit".
1638 ocaml_libvirt_storage_pool_build (value poolv, value iv)
1640 CAMLparam2 (poolv, iv);
1642 virStoragePoolPtr pool = Pool_val (poolv);
1643 virConnectPtr conn = Connect_polv (poolv);
1644 unsigned int i = Int_val (iv);
1647 NONBLOCKING (r = virStoragePoolBuild (pool, i));
1648 CHECK_ERROR (r == -1, conn, "virStoragePoolBuild");
1650 CAMLreturn (Val_unit);
1653 /* Automatically generated binding for virStoragePoolUndefine.
1654 * In generator.pl this function has signature "pool : unit".
1658 ocaml_libvirt_storage_pool_undefine (value poolv)
1662 virStoragePoolPtr pool = Pool_val (poolv);
1663 virConnectPtr conn = Connect_polv (poolv);
1666 NONBLOCKING (r = virStoragePoolUndefine (pool));
1667 CHECK_ERROR (r == -1, conn, "virStoragePoolUndefine");
1669 CAMLreturn (Val_unit);
1672 /* Automatically generated binding for virStoragePoolCreate.
1673 * In generator.pl this function has signature "pool, 0U : unit".
1677 ocaml_libvirt_storage_pool_create (value poolv)
1681 virStoragePoolPtr pool = Pool_val (poolv);
1682 virConnectPtr conn = Connect_polv (poolv);
1685 NONBLOCKING (r = virStoragePoolCreate (pool, 0));
1686 CHECK_ERROR (r == -1, conn, "virStoragePoolCreate");
1688 CAMLreturn (Val_unit);
1691 /* Automatically generated binding for virStoragePoolDelete.
1692 * In generator.pl this function has signature "pool, uint : unit".
1696 ocaml_libvirt_storage_pool_delete (value poolv, value iv)
1698 CAMLparam2 (poolv, iv);
1700 virStoragePoolPtr pool = Pool_val (poolv);
1701 virConnectPtr conn = Connect_polv (poolv);
1702 unsigned int i = Int_val (iv);
1705 NONBLOCKING (r = virStoragePoolDelete (pool, i));
1706 CHECK_ERROR (r == -1, conn, "virStoragePoolDelete");
1708 CAMLreturn (Val_unit);
1711 /* Automatically generated binding for virStoragePoolRefresh.
1712 * In generator.pl this function has signature "pool, 0U : unit".
1716 ocaml_libvirt_storage_pool_refresh (value poolv)
1720 virStoragePoolPtr pool = Pool_val (poolv);
1721 virConnectPtr conn = Connect_polv (poolv);
1724 NONBLOCKING (r = virStoragePoolRefresh (pool, 0));
1725 CHECK_ERROR (r == -1, conn, "virStoragePoolRefresh");
1727 CAMLreturn (Val_unit);
1730 /* Automatically generated binding for virStoragePoolGetAutostart.
1731 * In generator.pl this function has signature "pool : bool".
1735 ocaml_libvirt_storage_pool_get_autostart (value poolv)
1739 virStoragePoolPtr pool = Pool_val (poolv);
1740 virConnectPtr conn = Connect_polv (poolv);
1743 NONBLOCKING (r = virStoragePoolGetAutostart (pool, &b));
1744 CHECK_ERROR (r == -1, conn, "virStoragePoolGetAutostart");
1746 CAMLreturn (b ? Val_true : Val_false);
1749 /* Automatically generated binding for virStoragePoolSetAutostart.
1750 * In generator.pl this function has signature "pool, bool : unit".
1754 ocaml_libvirt_storage_pool_set_autostart (value poolv, value bv)
1756 CAMLparam2 (poolv, bv);
1758 virStoragePoolPtr pool = Pool_val (poolv);
1759 virConnectPtr conn = Connect_polv (poolv);
1762 b = bv == Val_true ? 1 : 0;
1764 NONBLOCKING (r = virStoragePoolSetAutostart (pool, b));
1765 CHECK_ERROR (r == -1, conn, "virStoragePoolSetAutostart");
1767 CAMLreturn (Val_unit);
1770 /* Automatically generated binding for virStoragePoolNumOfVolumes.
1771 * In generator.pl this function has signature "pool : int".
1775 ocaml_libvirt_storage_pool_num_of_volumes (value poolv)
1779 virStoragePoolPtr pool = Pool_val (poolv);
1780 virConnectPtr conn = Connect_polv (poolv);
1783 NONBLOCKING (r = virStoragePoolNumOfVolumes (pool));
1784 CHECK_ERROR (r == -1, conn, "virStoragePoolNumOfVolumes");
1786 CAMLreturn (Val_int (r));
1789 /* Automatically generated binding for virStoragePoolListVolumes.
1790 * In generator.pl this function has signature "pool, int : string array".
1794 ocaml_libvirt_storage_pool_list_volumes (value poolv, value iv)
1796 CAMLparam2 (poolv, iv);
1798 CAMLlocal2 (rv, strv);
1799 virStoragePoolPtr pool = Pool_val (poolv);
1800 virConnectPtr conn = Connect_polv (poolv);
1801 int i = Int_val (iv);
1805 /* Some libvirt List* functions still throw exceptions if i == 0,
1806 * so catch that and return an empty array directly. This changes
1807 * the semantics slightly (masking other failures) but it's
1808 * unlikely anyone will care. RWMJ 2008/06/10
1811 rv = caml_alloc (0, 0);
1815 NONBLOCKING (r = virStoragePoolListVolumes (pool, names, i));
1816 CHECK_ERROR (r == -1, conn, "virStoragePoolListVolumes");
1818 rv = caml_alloc (r, 0);
1819 for (i = 0; i < r; ++i) {
1820 strv = caml_copy_string (names[i]);
1821 Store_field (rv, i, strv);
1828 /* Automatically generated binding for virStorageVolFree.
1829 * In generator.pl this function has signature "vol : free".
1833 ocaml_libvirt_storage_vol_free (value volv)
1837 virStorageVolPtr vol = Volume_val (volv);
1838 virConnectPtr conn = Connect_volv (volv);
1841 NONBLOCKING (r = virStorageVolFree (vol));
1842 CHECK_ERROR (r == -1, conn, "virStorageVolFree");
1844 /* So that we don't double-free in the finalizer: */
1845 Volume_val (volv) = NULL;
1847 CAMLreturn (Val_unit);
1850 /* Automatically generated binding for virStorageVolDelete.
1851 * In generator.pl this function has signature "vol, uint : unit".
1855 ocaml_libvirt_storage_vol_delete (value volv, value iv)
1857 CAMLparam2 (volv, iv);
1859 virStorageVolPtr vol = Volume_val (volv);
1860 virConnectPtr conn = Connect_volv (volv);
1861 unsigned int i = Int_val (iv);
1864 NONBLOCKING (r = virStorageVolDelete (vol, i));
1865 CHECK_ERROR (r == -1, conn, "virStorageVolDelete");
1867 CAMLreturn (Val_unit);
1870 /* Automatically generated binding for virStorageVolLookupByName.
1871 * In generator.pl this function has signature "pool, string : vol from pool".
1875 ocaml_libvirt_storage_vol_lookup_by_name (value poolv, value strv)
1877 CAMLparam2 (poolv, strv);
1879 CAMLlocal2 (rv, connv);
1880 virStoragePoolPtr pool = Pool_val (poolv);
1881 virConnectPtr conn = Connect_polv (poolv);
1882 char *str = String_val (strv);
1885 NONBLOCKING (r = virStorageVolLookupByName (pool, str));
1886 CHECK_ERROR (!r, conn, "virStorageVolLookupByName");
1888 connv = Field (poolv, 1);
1889 rv = Val_volume (r, connv);
1894 /* Automatically generated binding for virStorageVolLookupByKey.
1895 * In generator.pl this function has signature "conn, string : vol".
1899 ocaml_libvirt_storage_vol_lookup_by_key (value connv, value strv)
1901 CAMLparam2 (connv, strv);
1904 virConnectPtr conn = Connect_val (connv);
1905 char *str = String_val (strv);
1908 NONBLOCKING (r = virStorageVolLookupByKey (conn, str));
1909 CHECK_ERROR (!r, conn, "virStorageVolLookupByKey");
1911 rv = Val_volume (r, connv);
1916 /* Automatically generated binding for virStorageVolLookupByPath.
1917 * In generator.pl this function has signature "conn, string : vol".
1921 ocaml_libvirt_storage_vol_lookup_by_path (value connv, value strv)
1923 CAMLparam2 (connv, strv);
1926 virConnectPtr conn = Connect_val (connv);
1927 char *str = String_val (strv);
1930 NONBLOCKING (r = virStorageVolLookupByPath (conn, str));
1931 CHECK_ERROR (!r, conn, "virStorageVolLookupByPath");
1933 rv = Val_volume (r, connv);
1938 /* Automatically generated binding for virStorageVolCreateXML.
1939 * In generator.pl this function has signature "pool, string, 0U : vol from pool".
1943 ocaml_libvirt_storage_vol_create_xml (value poolv, value strv)
1945 CAMLparam2 (poolv, strv);
1947 CAMLlocal2 (rv, connv);
1948 virStoragePoolPtr pool = Pool_val (poolv);
1949 virConnectPtr conn = Connect_polv (poolv);
1950 char *str = String_val (strv);
1953 NONBLOCKING (r = virStorageVolCreateXML (pool, str, 0));
1954 CHECK_ERROR (!r, conn, "virStorageVolCreateXML");
1956 connv = Field (poolv, 1);
1957 rv = Val_volume (r, connv);
1962 /* Automatically generated binding for virStorageVolGetXMLDesc.
1963 * In generator.pl this function has signature "vol, 0U : string".
1967 ocaml_libvirt_storage_vol_get_xml_desc (value volv)
1972 virStorageVolPtr vol = Volume_val (volv);
1973 virConnectPtr conn = Connect_volv (volv);
1976 NONBLOCKING (r = virStorageVolGetXMLDesc (vol, 0));
1977 CHECK_ERROR (!r, conn, "virStorageVolGetXMLDesc");
1979 rv = caml_copy_string (r);
1984 /* Automatically generated binding for virStorageVolGetPath.
1985 * In generator.pl this function has signature "vol : string".
1989 ocaml_libvirt_storage_vol_get_path (value volv)
1994 virStorageVolPtr vol = Volume_val (volv);
1995 virConnectPtr conn = Connect_volv (volv);
1998 NONBLOCKING (r = virStorageVolGetPath (vol));
1999 CHECK_ERROR (!r, conn, "virStorageVolGetPath");
2001 rv = caml_copy_string (r);
2006 /* Automatically generated binding for virStorageVolGetKey.
2007 * In generator.pl this function has signature "vol : static string".
2011 ocaml_libvirt_storage_vol_get_key (value volv)
2016 virStorageVolPtr vol = Volume_val (volv);
2017 virConnectPtr conn = Connect_volv (volv);
2020 NONBLOCKING (r = virStorageVolGetKey (vol));
2021 CHECK_ERROR (!r, conn, "virStorageVolGetKey");
2023 rv = caml_copy_string (r);
2027 /* Automatically generated binding for virStorageVolGetName.
2028 * In generator.pl this function has signature "vol : static string".
2032 ocaml_libvirt_storage_vol_get_name (value volv)
2037 virStorageVolPtr vol = Volume_val (volv);
2038 virConnectPtr conn = Connect_volv (volv);
2041 NONBLOCKING (r = virStorageVolGetName (vol));
2042 CHECK_ERROR (!r, conn, "virStorageVolGetName");
2044 rv = caml_copy_string (r);
2048 /* Automatically generated binding for virStoragePoolLookupByVolume.
2049 * In generator.pl this function has signature "vol : pool from vol".
2053 ocaml_libvirt_storage_pool_lookup_by_volume (value volv)
2057 CAMLlocal2 (rv, connv);
2058 virStorageVolPtr vol = Volume_val (volv);
2059 virConnectPtr conn = Connect_volv (volv);
2060 virStoragePoolPtr r;
2062 NONBLOCKING (r = virStoragePoolLookupByVolume (vol));
2063 CHECK_ERROR (!r, conn, "virStoragePoolLookupByVolume");
2065 connv = Field (volv, 1);
2066 rv = Val_pool (r, connv);
2071 #include "libvirt_c_epilogue.c"