[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v1 07/12] libxl: add prepare/unprepare operations to the libxl public interface
Add public functions for the prepare/unprepare disk operations. Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> --- tools/libxl/libxl.c | 22 +++++++++++++--------- tools/libxl/libxl.h | 8 ++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 9061fdf..7e67e61 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1688,7 +1688,7 @@ int libxl_vncviewer_exec(libxl_ctx *ctx, uint32_t domid, int autopass) /******************************************************************************/ /* generic callback for devices that only need to set ao_complete */ -static void device_addrm_aocomplete(libxl__egc *egc, libxl__ao_device *aodev) +static void device_aocomplete(libxl__egc *egc, libxl__ao_device *aodev) { STATE_AO_GC(aodev->ao); @@ -3539,7 +3539,7 @@ out: libxl__prepare_ao_device(ao, aodev); \ aodev->action = LIBXL__DEVICE_ACTION_REMOVE; \ aodev->dev = device; \ - aodev->callback = device_addrm_aocomplete; \ + aodev->callback = device_aocomplete; \ aodev->force = f; \ libxl__initiate_device_remove(egc, aodev); \ \ @@ -3580,10 +3580,12 @@ DEFINE_DEVICE_REMOVE(vtpm, destroy, 1) * libxl_device_disk_add * libxl_device_nic_add * libxl_device_vtpm_add + * libxl_device_disk_prepare + * libxl_device_disk_unprepare */ -#define DEFINE_DEVICE_ADD(type) \ - int libxl_device_##type##_add(libxl_ctx *ctx, \ +#define DEFINE_DEVICE_FUNC(type, op) \ + int libxl_device_##type##_##op(libxl_ctx *ctx, \ uint32_t domid, libxl_device_##type *type, \ const libxl_asyncop_how *ao_how) \ { \ @@ -3592,8 +3594,8 @@ DEFINE_DEVICE_REMOVE(vtpm, destroy, 1) \ GCNEW(aodev); \ libxl__prepare_ao_device(ao, aodev); \ - aodev->callback = device_addrm_aocomplete; \ - libxl__device_##type##_add(egc, domid, type, aodev); \ + aodev->callback = device_aocomplete; \ + libxl__device_##type##_##op(egc, domid, type, aodev); \ \ return AO_INPROGRESS; \ } @@ -3601,13 +3603,15 @@ DEFINE_DEVICE_REMOVE(vtpm, destroy, 1) /* Define alladd functions and undef the macro */ /* disk */ -DEFINE_DEVICE_ADD(disk) +DEFINE_DEVICE_FUNC(disk, add) +DEFINE_DEVICE_FUNC(disk, prepare) +DEFINE_DEVICE_FUNC(disk, unprepare) /* nic */ -DEFINE_DEVICE_ADD(nic) +DEFINE_DEVICE_FUNC(nic, add) /* vtpm */ -DEFINE_DEVICE_ADD(vtpm) +DEFINE_DEVICE_FUNC(vtpm, add) #undef DEFINE_DEVICE_ADD diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 72e5efb..eda27e2 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -687,6 +687,10 @@ void libxl_vtpminfo_list_free(libxl_vtpminfo *, int nr_vtpms); */ /* Disks */ +int libxl_device_disk_prepare(libxl_ctx *ctx, uint32_t domid, + libxl_device_disk *disk, + const libxl_asyncop_how *ao_how) + LIBXL_EXTERNAL_CALLERS_ONLY; int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, const libxl_asyncop_how *ao_how) @@ -699,6 +703,10 @@ int libxl_device_disk_destroy(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, const libxl_asyncop_how *ao_how) LIBXL_EXTERNAL_CALLERS_ONLY; +int libxl_device_disk_unprepare(libxl_ctx *ctx, uint32_t domid, + libxl_device_disk *disk, + const libxl_asyncop_how *ao_how) + LIBXL_EXTERNAL_CALLERS_ONLY; libxl_device_disk *libxl_device_disk_list(libxl_ctx *ctx, uint32_t domid, int *num); int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid, -- 1.7.7.5 (Apple Git-26) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |