aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl
diff options
context:
space:
mode:
authorJan Beulich <JBeulich@suse.com>2012-03-13 17:11:09 +0000
committerJan Beulich <JBeulich@suse.com>2012-03-13 17:11:09 +0000
commit6cf4c493d1f781f011af064385b303aa547f755d (patch)
treefa4baa037d87510682c25450c3dc571aab40459e /tools/libxl
parent989794ea65aee77b5f6f412fd2c0c7f6c1ffc93e (diff)
downloadxen-6cf4c493d1f781f011af064385b303aa547f755d.tar.gz
xen-6cf4c493d1f781f011af064385b303aa547f755d.tar.bz2
xen-6cf4c493d1f781f011af064385b303aa547f755d.zip
xl block-detach: allow other than numeric-decimal specification of the disk
... to be in sync with block-attach. And rename the function. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl')
-rw-r--r--tools/libxl/libxl.c8
-rw-r--r--tools/libxl/libxl_utils.h2
-rw-r--r--tools/libxl/xl_cmdimpl.c2
3 files changed, 8 insertions, 4 deletions
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index c0600868fd..53443665d4 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -1476,13 +1476,17 @@ static void libxl__device_disk_from_xs_be(libxl__gc *gc,
disk->format = LIBXL_DISK_FORMAT_UNKNOWN;
}
-int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid,
- int devid, libxl_device_disk *disk)
+int libxl_vdev_to_device_disk(libxl_ctx *ctx, uint32_t domid,
+ const char *vdev, libxl_device_disk *disk)
{
GC_INIT(ctx);
char *dompath, *path;
+ int devid = libxl__device_disk_dev_number(vdev, NULL, NULL);
int rc = ERROR_FAIL;
+ if (devid < 0)
+ return ERROR_INVAL;
+
libxl_device_disk_init(disk);
dompath = libxl__xs_get_dompath(gc, domid);
diff --git a/tools/libxl/libxl_utils.h b/tools/libxl/libxl_utils.h
index a4f5bf2d81..ca53a8a233 100644
--- a/tools/libxl/libxl_utils.h
+++ b/tools/libxl/libxl_utils.h
@@ -61,7 +61,7 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid, int devid,
libxl_device_nic *nic);
-int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid, int devid,
+int libxl_vdev_to_device_disk(libxl_ctx *ctx, uint32_t domid, const char *vdev,
libxl_device_disk *disk);
int libxl_cpumap_alloc(libxl_ctx *ctx, libxl_cpumap *cpumap);
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 47527440ca..553606b8eb 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -4804,7 +4804,7 @@ int main_blockdetach(int argc, char **argv)
fprintf(stderr, "%s is an invalid domain identifier\n", argv[optind]);
return 1;
}
- if (libxl_devid_to_device_disk(ctx, domid, atoi(argv[optind+1]), &disk)) {
+ if (libxl_vdev_to_device_disk(ctx, domid, argv[optind+1], &disk)) {
fprintf(stderr, "Error: Device %s not connected.\n", argv[optind+1]);
return 1;
}