From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH 4/6] libxl: introduce libxl__device_disk_add_t Date: Tue, 27 Mar 2012 14:59:30 +0100 Message-ID: <1332856772-30292-4-git-send-email-stefano.stabellini@eu.citrix.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xensource.com Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org Introduce libxl__device_disk_add_t that takes an additional xs_transaction_t paramter. Implement libxl_device_disk_add using libxl__device_disk_add_t. Signed-off-by: Stefano Stabellini --- tools/libxl/libxl.c | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index ce5e7be..fe63fd5 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1278,14 +1278,16 @@ static 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) + +static int libxl__device_disk_add_t(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; @@ -1381,9 +1383,9 @@ 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, &device, - libxl__xs_kvs_of_flexarray(gc, back, back->count), - libxl__xs_kvs_of_flexarray(gc, front, front->count)); + libxl__device_generic_add_t(gc, t, &device, + libxl__xs_kvs_of_flexarray(gc, back, back->count), + libxl__xs_kvs_of_flexarray(gc, front, front->count)); rc = 0; @@ -1391,6 +1393,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_t(gc, domid, XBT_NULL, disk); GC_FREE; return rc; } -- 1.7.2.5