#!/usr/bin/perl -w
#
# OCaml bindings for libvirt.
-# (C) Copyright 2007-2008 Richard W.M. Jones, Red Hat Inc.
+# (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
# http://libvirt.org/
#
# This library is free software; you can redistribute it and/or
{ name => "virConnectListDefinedStoragePools",
sig => "conn, int : string array" },
{ name => "virConnectGetCapabilities", sig => "conn : string" },
+ { name => "virConnectDomainEventDeregisterAny",
+ sig => "conn, int : unit" },
{ name => "virDomainCreateLinux", sig => "conn, string, 0U : dom" },
+ { name => "virDomainCreateXML", sig => "conn, string, unsigned : dom" },
{ name => "virDomainFree", sig => "dom : free" },
{ name => "virDomainDestroy", sig => "dom : free" },
{ name => "virDomainLookupByName", sig => "conn, string : dom" },
*/
/* OCaml bindings for libvirt.
- * (C) Copyright 2007-2008 Richard W.M. Jones, Red Hat Inc.
+ * (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
* http://libvirt.org/
*
* This library is free software; you can redistribute it and/or
( "$1v", "strv" )
} elsif ($sig =~ /^(\w+), string, 0U? : (\w+)$/) {
( "$1v", "strv" )
+ } elsif ($sig =~ /^(\w+), string, unsigned : (\w+)$/) {
+ ( "$1v", "strv", "uv" )
} elsif ($sig =~ /^(\w+), u?int : (\w+)$/) {
( "$1v", "iv" )
} elsif ($sig =~ /^(\w+), uuid : (\w+)$/) {
if ($_ eq "conn") {
"virConnectPtr conn = Connect_val (connv);"
} elsif ($_ eq "dom") {
- "virDomainPtr dom = Domain_val (domv);\n".
- " virConnectPtr conn = Connect_domv (domv);"
+ "virDomainPtr dom = Domain_val (domv);"
} elsif ($_ eq "net") {
- "virNetworkPtr net = Network_val (netv);\n".
- " virConnectPtr conn = Connect_netv (netv);"
+ "virNetworkPtr net = Network_val (netv);"
} elsif ($_ eq "pool") {
- "virStoragePoolPtr pool = Pool_val (poolv);\n".
- " virConnectPtr conn = Connect_polv (poolv);"
+ "virStoragePoolPtr pool = Pool_val (poolv);"
} elsif ($_ eq "vol") {
- "virStorageVolPtr vol = Volume_val (volv);\n".
- " virConnectPtr conn = Connect_volv (volv);"
+ "virStorageVolPtr vol = Volume_val (volv);"
} else {
die "unknown short name $_"
}
char *r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
rv = caml_copy_string (r);
free (r);
const char *r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
rv = caml_copy_string (r);
CAMLreturn (rv);
int r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (Val_int (r));
"
int r;
NONBLOCKING (r = $c_name ($1, uuid));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
/* UUIDs are byte arrays with a fixed length. */
rv = caml_alloc_string (VIR_UUID_BUFLEN);
int r;
NONBLOCKING (r = $c_name ($1, uuid));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
rv = caml_copy_string (uuid);
CAMLreturn (rv);
int r, b;
NONBLOCKING (r = $c_name ($1, &b));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (b ? Val_true : Val_false);
"
b = bv == Val_true ? 1 : 0;
NONBLOCKING (r = $c_name ($1, b));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (Val_unit);
"
}
NONBLOCKING (r = $c_name (conn, ids, i));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
rv = caml_alloc (r, 0);
for (i = 0; i < r; ++i)
}
NONBLOCKING (r = $c_name ($1, names, i));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
rv = caml_alloc (r, 0);
for (i = 0; i < r; ++i) {
char *r;
NONBLOCKING (r = $c_name ($1, 0));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
rv = caml_copy_string (r);
free (r);
int r;
NONBLOCKING (r = $c_name ($1, 0));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (Val_unit);
"
int r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (Val_unit);
"
int r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
/* So that we don't double-free in the finalizer: */
" . gen_free_arg ($1) . "
int r;
NONBLOCKING (r = $c_name ($1, str));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (Val_unit);
"
int r;
NONBLOCKING (r = $c_name ($1, str, 0));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
CAMLreturn (Val_unit);
"
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str, 0));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
+
+ " . gen_pack_result ($2) . "
+
+ CAMLreturn (rv);
+"
+ } elsif ($sig =~ /^(\w+), string, unsigned : (\w+)$/) {
+ my $c_ret_type = short_name_to_c_type ($2);
+ "\
+ CAMLlocal1 (rv);
+ " . gen_unpack_args ($1) . "
+ char *str = String_val (strv);
+ unsigned int u = Int_val (uv);
+ $c_ret_type r;
+
+ NONBLOCKING (r = $c_name ($1, str, u));
+ CHECK_ERROR (!r, \"$c_name\");
" . gen_pack_result ($2) . "
int r;
NONBLOCKING (r = $c_name ($1, i));
- CHECK_ERROR (r == -1, conn, \"$c_name\");
+ CHECK_ERROR (r == -1, \"$c_name\");
CAMLreturn (Val_unit);
"
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, i));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
" . gen_pack_result ($3) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, uuid));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, 0));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
connv = Field ($3v, 1);
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str, 0));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
connv = Field ($3v, 1);
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, 0));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
connv = Field ($3v, 1);
" . gen_pack_result ($2) . "
$c_ret_type r;
NONBLOCKING (r = $c_name ($1));
- CHECK_ERROR (!r, conn, \"$c_name\");
+ CHECK_ERROR (!r, \"$c_name\");
connv = Field ($3v, 1);
" . gen_pack_result ($2) . "