[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 11 of 27 v3] libxl: reimplement devid->disk in terms of from_xs_be function
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1318941402 -3600 # Node ID a736cdba5d0a091aecbb96ae3696704b492e6728 # Parent 88488c1c2d316b0ab025c40eeec22c4c3e8e2c3b libxl: reimplement devid->disk in terms of from_xs_be function. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> diff -r 88488c1c2d31 -r a736cdba5d0a tools/libxl/libxl.c --- a/tools/libxl/libxl.c Tue Oct 18 13:36:42 2011 +0100 +++ b/tools/libxl/libxl.c Tue Oct 18 13:36:42 2011 +0100 @@ -1656,6 +1656,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 88488c1c2d31 -r a736cdba5d0a tools/libxl/libxl_utils.c --- a/tools/libxl/libxl_utils.c Tue Oct 18 13:36:42 2011 +0100 +++ b/tools/libxl/libxl_utils.c Tue Oct 18 13:36:42 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 |