diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 5a8e155..4af95b2 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -304,6 +304,14 @@ redo: } memcpy(&(ptr[index].uuid), info[i].handle, sizeof(xen_domain_handle_t)); ptr[index].domid = info[i].domain; + + if (info[i].flags & XEN_DOMINF_dying) + ptr[index].dying = 1; + else if (info[i].flags & XEN_DOMINF_paused) + ptr[index].paused = 1; + else if (info[i].flags & XEN_DOMINF_blocked || info[i].flags & XEN_DOMINF_running) + ptr[index].running = 1; + first_domain = info[i].domain + 1; index++; } diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 2d82829..3d2843c 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -28,6 +28,9 @@ typedef void (*libxl_log_callback)(void *userdata, int loglevel, const char *fil struct libxl_dominfo { xen_uuid_t uuid; uint32_t domid; + uint8_t dying:1; + uint8_t paused:1; + uint8_t running:1; }; struct libxl_ctx {