]> Git Repo - qemu.git/blobdiff - hw/device-hotplug.c
drive cleanup fixes.
[qemu.git] / hw / device-hotplug.c
index e58ecd6dfa81a0031a10bb7e2263024142b182f6..c0cfd31d4decff2d629270f3f91de28b72ca6bce 100644 (file)
 #include "block_int.h"
 #include "sysemu.h"
 
-int add_init_drive(const char *opts)
+DriveInfo *add_init_drive(const char *optstr)
 {
-    int drive_opt_idx, drive_idx;
-    int ret = -1;
+    int fatal_error;
+    DriveInfo *dinfo;
+    QemuOpts *opts;
 
-    drive_opt_idx = drive_add(NULL, "%s", opts);
-    if (!drive_opt_idx)
-        return ret;
+    opts = drive_add(NULL, "%s", optstr);
+    if (!opts)
+        return NULL;
 
-    drive_idx = drive_init(&drives_opt[drive_opt_idx], 0, current_machine);
-    if (drive_idx == -1) {
-        drive_remove(drive_opt_idx);
-        return ret;
+    dinfo = drive_init(opts, current_machine, &fatal_error);
+    if (!dinfo) {
+        qemu_opts_del(opts);
+        return NULL;
     }
 
-    return drive_idx;
+    return dinfo;
 }
 
 void destroy_nic(dev_match_fn *match_fn, void *arg)
@@ -51,35 +52,13 @@ void destroy_nic(dev_match_fn *match_fn, void *arg)
     int i;
     NICInfo *nic;
 
-    for (i = 0; i < MAX_NICS; i++)
+    for (i = 0; i < MAX_NICS; i++) {
         nic = &nd_table[i];
         if (nic->used) {
             if (nic->private && match_fn(nic->private, arg)) {
-                if (nic->vlan) {
-                    VLANClientState *vc;
-                    vc = qemu_find_vlan_client(nic->vlan, nic->private);
-                    if (vc)
-                        qemu_del_vlan_client(vc);
-                }
+                qemu_del_vlan_client(nic->vc);
                 net_client_uninit(nic);
             }
         }
-}
-
-void destroy_bdrvs(dev_match_fn *match_fn, void *arg)
-{
-    int i;
-    struct BlockDriverState *bs;
-
-    for (i = 0; i <= MAX_DRIVES; i++) {
-        bs = drives_table[i].bdrv;
-        if (bs) {
-            if (bs->private && match_fn(bs->private, arg)) {
-                drive_uninit(bs);
-                bdrv_delete(bs);
-            }
-        }
     }
 }
-
-
This page took 0.029274 seconds and 4 git commands to generate.