[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 08 of 23] libxl: reimplement devid->disk in terms of from_xs_be function
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1317389247 -3600 # Node ID d78f45247f1c0a0c879e166010df5cdff2b16988 # Parent e65e18b230493e7886654d30838ce74407c36168 libxl: reimplement devid->disk in terms of from_xs_be function. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> diff -r e65e18b23049 -r d78f45247f1c tools/libxl/libxl.c --- a/tools/libxl/libxl.c Fri Sep 30 14:27:27 2011 +0100 +++ b/tools/libxl/libxl.c Fri Sep 30 14:27:27 2011 +0100 @@ -1653,6 +1653,33 @@ static void libxl__device_disk_from_xs_b disk->format = LIBXL_DISK_FORMAT_UNKNOWN; } +int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid, + const char *devid, libxl_device_disk *disk) +{ + libxl__gc gc = LIBXL_INIT_GC(ctx); + char *dompath, *path; + int rc = ERROR_FAIL; + + memset(disk, 0, sizeof (libxl_device_disk)); + dompath = libxl__xs_get_dompath(&gc, domid); + if (!dompath) { + goto out; + } + path = libxl__xs_read(&gc, XBT_NULL, + libxl__sprintf(&gc, "%s/device/vbd/%s/backend", + dompath, devid)); + if (!path) + goto out; + + libxl__device_disk_from_xs_be(&gc, path, disk); + + rc = 0; +out: + libxl__free_all(&gc); + return rc; +} + + static int libxl__append_disk_list_of_type(libxl__gc *gc, uint32_t domid, const char *type, diff -r e65e18b23049 -r d78f45247f1c tools/libxl/libxl_utils.c --- a/tools/libxl/libxl_utils.c Fri Sep 30 14:27:27 2011 +0100 +++ b/tools/libxl/libxl_utils.c Fri Sep 30 14:27:27 2011 +0100 @@ -483,50 +483,6 @@ int libxl_mac_to_device_nic(libxl_ctx *c return rc; } -int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid, - const char *devid, libxl_device_disk *disk) -{ - libxl__gc gc = LIBXL_INIT_GC(ctx); - char *val; - char *dompath, *diskpath, *be_path; - unsigned int devid_n; - int rc = ERROR_INVAL; - - devid_n = libxl__device_disk_dev_number(devid, NULL, NULL); - if (devid_n < 0) { - goto out; - } - rc = ERROR_FAIL; - dompath = libxl__xs_get_dompath(&gc, domid); - diskpath = libxl__sprintf(&gc, "%s/device/vbd/%d", dompath, devid_n); - if (!diskpath) { - goto out; - } - - val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/backend-id", diskpath)); - if (!val) - goto out; - disk->backend_domid = strtoul(val, NULL, 10); - be_path = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/backend", diskpath)); - disk->pdev_path = xs_read(ctx->xsh, XBT_NULL, - libxl__sprintf(&gc, "%s/params", be_path), NULL); - val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/type", be_path)); - libxl_string_to_backend(ctx, val, &(disk->backend)); - disk->vdev = xs_read(ctx->xsh, XBT_NULL, - libxl__sprintf(&gc, "%s/dev", be_path), NULL); - val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/removable", be_path)); - disk->removable = !strcmp(val, "1"); - val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/mode", be_path)); - disk->readwrite = !!strcmp(val, "w"); - val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/device-type", diskpath)); - disk->is_cdrom = !strcmp(val, "cdrom"); - rc = 0; - -out: - libxl__free_all(&gc); - return rc; -} - int libxl_cpumap_alloc(libxl_ctx *ctx, libxl_cpumap *cpumap) { int max_cpus; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |