Removes a libxc data type from the libxl interface.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
return 0;
}
-int libxl_event_get_domain_death_info(struct libxl_ctx *ctx, uint32_t domid, libxl_event *event, xc_domaininfo_t *info)
+int libxl_event_get_domain_death_info(struct libxl_ctx *ctx, uint32_t domid, libxl_event *event, struct libxl_dominfo *info)
{
int rc = 0, ret;
-
if (event && event->type == LIBXL_EVENT_DOMAIN_DEATH) {
- ret = xc_domain_getinfolist(ctx->xch, domid, 1, info);
- if (ret == 1 && info->domain == domid) {
- if (info->flags & XEN_DOMINF_running ||
- (!(info->flags & XEN_DOMINF_shutdown) && !(info->flags & XEN_DOMINF_dying)))
+ ret = libxl_domain_info(ctx, info, domid);
+
+ if (ret == 0 && info->domid == domid) {
+ if (info->running || (!info->shutdown && !info->dying))
goto out;
rc = 1;
goto out;
}
- memset(info, 0, sizeof(xc_dominfo_t));
+ memset(info, 0, sizeof(*info));
rc = 1;
goto out;
}
int libxl_free_event(libxl_event *event);
int libxl_free_waiter(libxl_waiter *waiter);
-int libxl_event_get_domain_death_info(struct libxl_ctx *ctx, uint32_t domid, libxl_event *event, xc_domaininfo_t *info);
+int libxl_event_get_domain_death_info(struct libxl_ctx *ctx, uint32_t domid, libxl_event *event, struct libxl_dominfo *info);
int libxl_event_get_disk_eject_info(struct libxl_ctx *ctx, uint32_t domid, libxl_event *event, libxl_device_disk *disk);
int libxl_domain_rename(struct libxl_ctx *ctx, uint32_t domid,
while (1) {
int ret;
fd_set rfds;
- xc_domaininfo_t info;
+ struct libxl_dominfo info;
libxl_event event;
libxl_device_disk disk;
memset(&info, 0x00, sizeof(xc_domaininfo_t));
case LIBXL_EVENT_DOMAIN_DEATH:
if (libxl_event_get_domain_death_info(&ctx, domid, &event, &info)) {
LOG("Domain %d is dead", domid);
- if (info.flags & XEN_DOMINF_dying || (info.flags & XEN_DOMINF_shutdown && (((info.flags >> XEN_DOMINF_shutdownshift) & XEN_DOMINF_shutdownmask) != SHUTDOWN_suspend))) {
+ if (info.dying || (info.shutdown && info.shutdown_reason != SHUTDOWN_suspend)) {
LOG("Domain %d needs to be clean: destroying the domain", domid);
libxl_domain_destroy(&ctx, domid, 0);
- if (info.flags & XEN_DOMINF_shutdown &&
- (((info.flags >> XEN_DOMINF_shutdownshift) & XEN_DOMINF_shutdownmask) == SHUTDOWN_reboot)) {
+ if (info.shutdown && info.shutdown_reason == SHUTDOWN_reboot) {
libxl_free_waiter(w1);
libxl_free_waiter(w2);
free(w1);