[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 08/12] libxl: add disk specific remove functions [and 1 more messages]
Roger Pau Monne writes ("Re: [Xen-devel] [PATCH v1 08/12] libxl: add disk specific remove functions"): > On 13/03/13 17:22, Ian Jackson wrote: > > This macro is very similar to DEFINE_DEVICE_REMOVE. The only > > difference seems to be these extra lines: > > > >> + aodev->hotplug.version = type->hotplug_version; \ > >> + LOG(DEBUG, "hotplug version: %d", aodev->hotplug.version); \ > >> + libxl__initiate_device_remove(egc, aodev); \ > > > > Perhaps the right answer would be to add a new formal parameter to > > DEFINE_DEVICE_REMOVE which allows DEFINE_DEVICE_REMOVE's user to > > specify some extra code here ? > > type->hotplug_version is only available in libxl_device_disk, so even if > using something like > > if (param) > aodev->hotplug.version = type->hotplug_version; I see I didn't reply to this and your v2 has this patch unchanged. I still think we need to find a way not to duplicate this code. What I meant above was something like this: #define DEFINE_DEVICE_REMOVE(type, removedestroy, f, extra) \ int libxl_device_##type##_##removedestroy(libxl_ctx *ctx, \ uint32_t domid, libxl_device_##type *type, \ const libxl_asyncop_how *ao_how) \ { \ AO_CREATE(ctx, domid, ao_how); \ libxl__device *device; \ libxl__ao_device *aodev; \ int rc; \ \ GCNEW(device); \ rc = libxl__device_from_##type(gc, domid, type, device); \ if (rc != 0) goto out; \ \ GCNEW(aodev); \ libxl__prepare_ao_device(ao, aodev); \ aodev->action = LIBXL__DEVICE_ACTION_REMOVE; \ aodev->dev = device; \ aodev->callback = device_addrm_aocomplete; \ aodev->force = f; \ extra; \ libxl__initiate_device_remove(egc, aodev); \ \ out: \ if (rc) return AO_ABORT(rc); \ return AO_INPROGRESS; \ } #define DEFINE_DISK_REMOVE(type, removedestroy, f) \ DEFINE_DEVICE_REMOVE(type, removedestroy, f, { aodev->hotplug.version = type->hotplug_version; LOG(DEBUG, "hotplug version: %d", aodev->hotplug.version); }) Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |