extern int virConnectListAllDomains (virConnectPtr conn,
virDomainPtr **domains,
virDomainInfo **infos,
- int stateflags)
+ unsigned long stateflags,
+ unsigned long flags)
__attribute__((weak));
#endif
#endif
virConnectPtr conn = Connect_val (connv);
virDomainPtr *domains;
virDomainInfo *infos;
- int want_info, i, r, flag, flags = 0;
+ int want_info, i, r, flag;
+ unsigned long flags = 0;
/* ?want_info */
if (wantinfov == Val_int (0)) /* None == true */
flagv = Field (flagsv, 0);
flag = Int_val (flagv);
switch (flag) {
- case 0: flags |= VIR_DOMAIN_LIST_NOSTATE; break;
- case 1: flags |= VIR_DOMAIN_LIST_RUNNING; break;
- case 2: flags |= VIR_DOMAIN_LIST_BLOCKED; break;
- case 3: flags |= VIR_DOMAIN_LIST_PAUSED; break;
- case 4: flags |= VIR_DOMAIN_LIST_SHUTDOWN; break;
- case 5: flags |= VIR_DOMAIN_LIST_SHUTOFF; break;
- case 6: flags |= VIR_DOMAIN_LIST_CRASHED; break;
- case 7: flags |= VIR_DOMAIN_LIST_ACTIVE; break;
- case 8: flags |= VIR_DOMAIN_LIST_INACTIVE; break;
- case 9: flags |= VIR_DOMAIN_LIST_ALL; break;
+ case 0: flags |= VIR_DOMAIN_LIST_ACTIVE; break;
+ case 1: flags |= VIR_DOMAIN_LIST_INACTIVE; break;
+ case 2: flags |= VIR_DOMAIN_LIST_ALL; break;
}
}
WEAK_SYMBOL_CHECK (virConnectListAllDomains);
NONBLOCKING (r = virConnectListAllDomains (conn, &domains,
want_info ? &infos : NULL,
- flags));
+ flags, 0));
CHECK_ERROR (r == -1, conn, "virConnectListAllDomains");
/* Convert the result into a pair of arrays. */
{
CAMLparam1 (domv);
virDomainPtr dom = Domain_val (domv);
- virConnectPtr conn = Connect_domv (domv);
+ /*virConnectPtr conn = Connect_domv (domv);*/
unsigned int r;
NONBLOCKING (r = virDomainGetID (dom));
- /* There's a bug in libvirt which means that if you try to get
- * the ID of a defined-but-not-running domain, it returns -1,
- * and there's no way to distinguish that from an error.
+ /* In theory this could return -1 on error, but in practice
+ * libvirt never does this unless you call it with a corrupted
+ * or NULL dom object. So ignore errors here.
*/
- CHECK_ERROR (r == (unsigned int) -1, conn, "virDomainGetID");
CAMLreturn (Val_int ((int) r));
}
#endif
}
-#ifdef HAVE_WEAK_SYMBOLS
-#ifdef HAVE_VIRJOBGETINFO
-extern int virJobGetInfo(virJobPtr job, virJobInfoPtr info)
- __attribute__((weak));
-#endif
-#endif
-
-CAMLprim value
-ocaml_libvirt_job_get_info (value jobv)
-{
-#if HAVE_VIRJOBGETINFO
- CAMLparam1 (jobv);
- CAMLlocal1 (rv);
- virJobPtr job = Job_val (jobv);
- virConnectPtr conn = Connect_jobv (jobv);
- virJobInfo info;
- int r;
-
- WEAK_SYMBOL_CHECK (virJobGetInfo);
- NONBLOCKING (r = virJobGetInfo (job, &info));
- CHECK_ERROR (r == -1, conn, "virJobGetInfo");
-
- rv = caml_alloc (5, 0);
- Store_field (rv, 0, Val_int (info.type));
- Store_field (rv, 1, Val_int (info.state));
- Store_field (rv, 2, Val_int (info.runningTime));
- Store_field (rv, 3, Val_int (info.remainingTime));
- Store_field (rv, 4, Val_int (info.percentComplete));
-
- CAMLreturn (rv);
-#else
- not_supported ("virJobGetInfo");
-#endif
-}
-
/*----------------------------------------------------------------------*/
CAMLprim value