# HG changeset patch # User Andres Lagar-Cavilla # Date 1259285614 18000 # Node ID 39484f864ecb79a6541aee97748c8887f4e6f0cd # Parent a5f6b5cd5472fe914b57ef8aa7a97887c2aa9aab Simple function to get the dominfo state of a single domain. Signed-off-by: Andres Lagar-Cavilla diff -r a5f6b5cd5472 -r 39484f864ecb libxl.c --- a/libxl.c +++ b/libxl.c @@ -362,6 +362,26 @@ static int libxl_save_device_model(struc return 0; } +xc_dominfo_t *libxl_domain_info(struct libxl_ctx *ctx, uint32_t domid) +{ + xc_dominfo_t *info; + int rc; + + info = (xc_dominfo_t *) calloc(1, sizeof(xc_dominfo_t)); + if (!info) { + return NULL; + } + + rc = xc_domain_getinfo(ctx->xch, domid, 1, info); + if (rc != 1) { + free(info); + XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to get info for domain %u", + domid); + return NULL; + } + + return info; +} int libxl_domain_suspend(struct libxl_ctx *ctx, libxl_domain_suspend_info *info, uint32_t domid, int fd) { diff -r a5f6b5cd5472 -r 39484f864ecb libxl.h --- a/libxl.h +++ b/libxl.h @@ -283,6 +283,7 @@ int libxl_console_attach(struct libxl_ct struct libxl_dominfo * libxl_domain_list(struct libxl_ctx *ctx, int *nb_domain); xc_dominfo_t * libxl_domain_infolist(struct libxl_ctx *ctx, int *nb_domain); +xc_dominfo_t * libxl_domain_info(struct libxl_ctx *ctx, uint32_t domid); typedef struct libxl_device_model_starting libxl_device_model_starting; int libxl_create_device_model(struct libxl_ctx *ctx,