From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Lagar-Cavilla Subject: [PATCH 2/7] libxenlight resend: disc and nic destroy calls Date: Wed, 02 Dec 2009 12:59:40 -0500 Message-ID: <4B16AB0C.6080601@lagarcavilla.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000308020206070909000401" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini , Vincent Hanquez , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------000308020206070909000401 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Expose disk and nic device destroy calls, to allow hot unplugging of devices from domains. Signed-off-by: Andres Lagar-Cavilla --------------000308020206070909000401 Content-Type: text/plain; name="02_nic_disk_destroy.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="02_nic_disk_destroy.patch" # HG changeset patch # User Andres Lagar-Cavilla # Date 1259038343 18000 # Node ID 70f6966c89bf7f2c1db78a814452e1de79044962 # Parent 68b17d151db6c9a31ca55c359742f0d3515a0a5a Expose disk and nic device destroy calls, to allow hot unplugging of devices from domains. Signed-off-by: Andres Lagar-Cavilla diff -r 68b17d151db6 -r 70f6966c89bf libxl.c --- a/libxl.c +++ b/libxl.c @@ -1111,6 +1111,23 @@ int libxl_device_disk_add(struct libxl_c return 0; } +int libxl_device_disk_del(struct libxl_ctx *ctx, + libxl_device_disk *disk, int wait) +{ + libxl_device device; + int devid; + + devid = device_disk_dev_number(disk->virtpath); + device.backend_domid = disk->backend_domid; + device.backend_devid = devid; + device.backend_kind = + (disk->phystype == PHYSTYPE_PHY) ? DEVICE_VBD : DEVICE_TAP; + device.domid = disk->domid; + device.devid = devid; + device.kind = DEVICE_VBD; + return libxl_device_del(ctx, &device, wait); +} + int libxl_device_disk_clean_shutdown(struct libxl_ctx *ctx, uint32_t domid) { return ERROR_NI; @@ -1184,6 +1201,21 @@ int libxl_device_nic_add(struct libxl_ct return 0; } +int libxl_device_nic_del(struct libxl_ctx *ctx, + libxl_device_nic *nic, int wait) +{ + libxl_device device; + + device.backend_devid = nic->devid; + device.backend_domid = nic->backend_domid; + device.backend_kind = DEVICE_VIF; + device.devid = nic->devid; + device.domid = nic->domid; + device.kind = DEVICE_VIF; + + return libxl_device_del(ctx, &device, wait); +} + int libxl_device_nic_clean_shutdown(struct libxl_ctx *ctx, uint32_t domid) { return ERROR_NI; diff -r 68b17d151db6 -r 70f6966c89bf libxl.h --- a/libxl.h +++ b/libxl.h @@ -295,10 +295,12 @@ int libxl_detach_device_model(struct lib /* DM is detached even if error is returned */ int libxl_device_disk_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk); +int libxl_device_disk_del(struct libxl_ctx *ctx, libxl_device_disk *disk, int wait); int libxl_device_disk_clean_shutdown(struct libxl_ctx *ctx, uint32_t domid); int libxl_device_disk_hard_shutdown(struct libxl_ctx *ctx, uint32_t domid); int libxl_device_nic_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic); +int libxl_device_nic_del(struct libxl_ctx *ctx, libxl_device_nic *nic, int wait); int libxl_device_nic_clean_shutdown(struct libxl_ctx *ctx, uint32_t domid); int libxl_device_nic_hard_shutdown(struct libxl_ctx *ctx, uint32_t domid); --------------000308020206070909000401 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------000308020206070909000401--