Simple function to get the dominfo state of a single domain.
Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
# HG changeset patch
# User Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
# Date 1259857202 18000
# Node ID 3588737e991624290d499c2804959af14b8128de
# Parent 7315ca037a680d18a6c23d030139b5389a73000b
Simple function to get the dominfo state of a single domain.
Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
diff -r 7315ca037a68 -r 3588737e9916 libxl.c
--- a/libxl.c
+++ b/libxl.c
@@ -334,6 +334,31 @@ 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;
+ }
+ if (info->domid != domid) {
+ free(info);
+ XL_LOG(ctx, XL_LOG_ERROR, "Failed to get info for domain %u"
+ ", seems to not exist anymore", 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 7315ca037a68 -r 3588737e9916 libxl.h
--- a/libxl.h
+++ b/libxl.h
@@ -276,6 +276,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,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|