diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2012-05-29 16:36:48 +0100 |
---|---|---|
committer | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2012-05-29 16:36:48 +0100 |
commit | cb5ee9d490cd4e6037c64f76debed7a5ccbeb9c9 (patch) | |
tree | 6baed7a574027c4c05e0cdc78cf9ebd64ed8555f /tools/libxl | |
parent | 5d6c0b5d5c719c71096628322bd9d89f36144014 (diff) | |
download | xen-cb5ee9d490cd4e6037c64f76debed7a5ccbeb9c9.tar.gz xen-cb5ee9d490cd4e6037c64f76debed7a5ccbeb9c9.tar.bz2 xen-cb5ee9d490cd4e6037c64f76debed7a5ccbeb9c9.zip |
libxl: introduce libxl__device_disk_add
Introduce libxl__device_disk_add that takes an additional
xs_transaction_t paramter.
Implement libxl_device_disk_add using libxl__device_disk_add.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/libxl')
-rw-r--r-- | tools/libxl/libxl.c | 14 | ||||
-rw-r--r-- | tools/libxl/libxl_internal.h | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 9422d6d722..de71a66ec6 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1367,14 +1367,15 @@ int libxl__device_from_disk(libxl__gc *gc, uint32_t domid, return 0; } -int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk) +int libxl__device_disk_add(libxl__gc *gc, uint32_t domid, + xs_transaction_t t, libxl_device_disk *disk) { - GC_INIT(ctx); flexarray_t *front; flexarray_t *back; char *dev; libxl__device device; int major, minor, rc; + libxl_ctx *ctx = gc->owner; rc = libxl__device_disk_setdefault(gc, disk); if (rc) goto out; @@ -1472,7 +1473,7 @@ int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *dis flexarray_append(front, "device-type"); flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk"); - libxl__device_generic_add(gc, XBT_NULL, &device, + libxl__device_generic_add(gc, t, &device, libxl__xs_kvs_of_flexarray(gc, back, back->count), libxl__xs_kvs_of_flexarray(gc, front, front->count)); @@ -1482,6 +1483,13 @@ out_free: flexarray_free(back); flexarray_free(front); out: + return rc; +} + +int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk) +{ + GC_INIT(ctx); + int rc = libxl__device_disk_add(gc, domid, XBT_NULL, disk); GC_FREE; return rc; } diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index eb41fa2f21..ef23734f10 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -1281,6 +1281,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path); _hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid, libxl_device_disk *disk, libxl__device *device); +_hidden int libxl__device_disk_add(libxl__gc *gc, uint32_t domid, + xs_transaction_t t, libxl_device_disk *disk); /* * Make a disk available in this (the control) domain. Returns path to |