# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1280225498 -3600
# Node ID 8774eec37219f6f8c1f9dd35e648910e7398a51c
# Parent 74371f414f2012adebba8a8617ddef957f5e3ae0
libxl: return libxl_dominfo from libxl_event_get_domain_death_info
Removes a libxc data type from the libxl interface.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
diff -r 74371f414f20 -r 8774eec37219 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Tue Jul 27 11:11:33 2010 +0100
+++ b/tools/libxl/libxl.c Tue Jul 27 11:11:38 2010 +0100
@@ -702,20 +702,19 @@ int libxl_free_waiter(libxl_waiter *wait
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 = libxl_domain_info(ctx, info, domid);
- 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)))
+ 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;
}
diff -r 74371f414f20 -r 8774eec37219 tools/libxl/libxl.h
--- a/tools/libxl/libxl.h Tue Jul 27 11:11:33 2010 +0100
+++ b/tools/libxl/libxl.h Tue Jul 27 11:11:38 2010 +0100
@@ -393,7 +393,7 @@ int libxl_free_event(libxl_event *event)
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,
diff -r 74371f414f20 -r 8774eec37219 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Tue Jul 27 11:11:33 2010 +0100
+++ b/tools/libxl/xl_cmdimpl.c Tue Jul 27 11:11:38 2010 +0100
@@ -1335,7 +1335,7 @@ start:
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));
@@ -1351,11 +1351,10 @@ start:
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);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|