* to convert it into VIR_*_UNKNOWN (code).
*/
-#define MAX_VIR_CODE VIR_ERR_NO_STORAGE_VOL
-#define MAX_VIR_DOMAIN VIR_FROM_STORAGE
+#define MAX_VIR_CODE 50 /* VIR_ERR_NO_STORAGE_VOL */
+#define MAX_VIR_DOMAIN 17 /* VIR_FROM_STORAGE */
#define MAX_VIR_LEVEL VIR_ERR_ERROR
static inline value
#ifdef HAVE_VIRSTORAGEVOLPTR
static void vol_finalize (value);
#endif
+#ifdef HAVE_VIRJOBPTR
+static void jb_finalize (value);
+#endif
static struct custom_operations conn_custom_operations = {
"conn_custom_operations",
};
#endif
+#ifdef HAVE_VIRJOBPTR
+static struct custom_operations jb_custom_operations = {
+ "jb_custom_operations",
+ jb_finalize,
+ custom_compare_default,
+ custom_hash_default,
+ custom_serialize_default,
+ custom_deserialize_default
+};
+#endif
+
static value
Val_connect (virConnectPtr conn)
{
}
#endif
+#ifdef HAVE_VIRJOBPTR
+static value
+Val_jb (virJobPtr jb)
+{
+ CAMLparam0 ();
+ CAMLlocal1 (rv);
+ rv = caml_alloc_custom (&jb_custom_operations,
+ sizeof (virJobPtr), 0, 1);
+ Jb_val (rv) = jb;
+ CAMLreturn (rv);
+}
+#endif
+
/* No-finalize versions of Val_connect, Val_dom, Val_net ONLY for use
* by virterror wrappers.
*/
}
#endif
+#ifdef HAVE_VIRJOBPTR
+/* This wraps up the (jb, conn) pair (Job.t). */
+static value
+Val_job (virJobPtr jb, value connv)
+{
+ CAMLparam1 (connv);
+ CAMLlocal2 (rv, v);
+
+ rv = caml_alloc_tuple (2);
+ v = Val_jb (jb);
+ Store_field (rv, 0, v);
+ Store_field (rv, 1, connv);
+ CAMLreturn (rv);
+}
+#endif
+
/* No-finalize versions of Val_domain, Val_network ONLY for use by
* virterror wrappers.
*/
if (vol) (void) virStorageVolFree (vol);
}
#endif
+
+#ifdef HAVE_VIRJOBPTR
+static void
+jb_finalize (value jbv)
+{
+ virJobPtr jb = Jb_val (jbv);
+ if (jb) (void) virJobFree (jb);
+}
+#endif