Mailing List Archive

[PATCH 11 of 27 v3] libxl: reimplement devid->disk in terms of from_xs_be function
# HG changeset patch
# User Ian Campbell <ian.campbell@citrix.com>
# 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@citrix.com>

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@lists.xensource.com
http://lists.xensource.com/xen-devel