aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_utils.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-01-17 18:05:03 +0000
committerKeir Fraser <keir.fraser@citrix.com>2010-01-17 18:05:03 +0000
commit24cdde59ca1ca02ae0fe209a447d6810e2b47849 (patch)
tree54e468f50e1cfdfd67c14850fb2c2d4084e3d6c2 /tools/libxl/libxl_utils.c
parent590ab745d2dcdbd3d51305c7b74e0dae646d6a2e (diff)
downloadxen-24cdde59ca1ca02ae0fe209a447d6810e2b47849.tar.gz
xen-24cdde59ca1ca02ae0fe209a447d6810e2b47849.tar.bz2
xen-24cdde59ca1ca02ae0fe209a447d6810e2b47849.zip
libxenlight: separate logically list_vm and list_domain
previously list_domain was something between listing VM and domains. provide 2 separates API calls to list domains and list vms. the list vms API filters utility domains like stubdomains, and domain 0 change is_stubdom to properly check the integer and also return a boolean value. Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_utils.c')
-rw-r--r--tools/libxl/libxl_utils.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index eca4347924..1ba9431459 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -60,7 +60,7 @@ int libxl_name_to_domid(struct libxl_ctx *ctx, char *name, uint32_t *domid)
char *domname;
struct libxl_dominfo *dominfo;
- dominfo = libxl_domain_list(ctx, &nb_domains);
+ dominfo = libxl_list_domain(ctx, &nb_domains);
if (!dominfo)
return ERROR_NOMEM;
@@ -85,13 +85,20 @@ int libxl_get_stubdom_id(struct libxl_ctx *ctx, int guest_domid)
return 0;
}
-int libxl_is_stubdom(struct libxl_ctx *ctx, int domid)
+int libxl_is_stubdom(struct libxl_ctx *ctx, uint32_t domid, uint32_t *target_domid)
{
- char *target = libxl_xs_read(ctx, XBT_NULL, libxl_sprintf(ctx, "%s/target", libxl_xs_get_dompath(ctx, domid)));
- if (target)
- return atoi(target);
- else
+ char *target, *endptr;
+ uint32_t value;
+
+ target = libxl_xs_read(ctx, XBT_NULL, libxl_sprintf(ctx, "%s/target", libxl_xs_get_dompath(ctx, domid)));
+ if (!target)
+ return 0;
+ value = strtol(target, &endptr, 10);
+ if (*endptr != '\0')
return 0;
+ if (target_domid)
+ *target_domid = value;
+ return 1;
}
int libxl_create_logfile(struct libxl_ctx *ctx, char *name, char **full_name)