libxenlight: disk and nic destroy calls
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 4 Dec 2009 07:06:47 +0000 (07:06 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 4 Dec 2009 07:06:47 +0000 (07:06 +0000)
Expose disk and nic device destroy calls

Also removes the obsolete device shutdown calls.

Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.com>
tools/libxl/libxl.c
tools/libxl/libxl.h

index 41010ef5df4d0a276ad9d7af0473f1446776a956..b101acb48b2995300641464dc3f157d782837f21 100644 (file)
@@ -1123,14 +1123,21 @@ int libxl_device_disk_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_di
     return 0;
 }
 
-int libxl_device_disk_clean_shutdown(struct libxl_ctx *ctx, uint32_t domid)
+int libxl_device_disk_del(struct libxl_ctx *ctx, 
+                          libxl_device_disk *disk, int wait)
 {
-    return ERROR_NI;
-}
+    libxl_device device;
+    int devid;
 
-int libxl_device_disk_hard_shutdown(struct libxl_ctx *ctx, uint32_t domid)
-{
-    return ERROR_NI;
+    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);
 }
 
 /******************************************************************************/
@@ -1196,14 +1203,19 @@ int libxl_device_nic_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_nic
     return 0;
 }
 
-int libxl_device_nic_clean_shutdown(struct libxl_ctx *ctx, uint32_t domid)
+int libxl_device_nic_del(struct libxl_ctx *ctx, 
+                         libxl_device_nic *nic, int wait)
 {
-    return ERROR_NI;
-}
+    libxl_device device;
 
-int libxl_device_nic_hard_shutdown(struct libxl_ctx *ctx, uint32_t domid)
-{
-    return ERROR_NI;
+    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);
 }
 
 /******************************************************************************/
index dd3d6dbe1eee6b99cb66e79320bb3297505cf7c7..794d1f3384275d0ef67067a1bceb7a7ce611299e 100644 (file)
@@ -295,12 +295,10 @@ int libxl_detach_device_model(struct libxl_ctx *ctx,
   /* 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_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_disk_del(struct libxl_ctx *ctx, libxl_device_disk *disk, int wait);
 
 int libxl_device_nic_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic);
-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);
+int libxl_device_nic_del(struct libxl_ctx *ctx, libxl_device_nic *nic, int wait);
 
 int libxl_device_console_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_console *console);