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@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Ian Campbell committed 2010-07-27 16:58:26 +01:00
1 parent 4d70c9c556
commit 1e01a066eb
3 files changed
+10 -12

No files matched your search

+6 -7
View File
@@ -702,20 +702,19 @@ int libxl_free_waiter(libxl_waiter *waiter)
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;
}
+1 -1
View File
@@ -393,7 +393,7 @@ int libxl_stop_waiting(struct libxl_ctx *ctx, libxl_waiter *waiter);
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,
+3 -4
View File
@@ -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);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.