#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)
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);
- }
- }
}
}
-
-