From a803cb8eb8ada1add74f1b393b8a553a7e7f3acf Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 2 Jun 2010 13:31:55 +0200 Subject: [PATCH] blockdev: Hide QEMUMachine from drive_init() To pave the way for moving it out of vl.c. Signed-off-by: Markus Armbruster Signed-off-by: Kevin Wolf --- hw/device-hotplug.c | 2 +- hw/usb-msd.c | 2 +- sysemu.h | 3 ++- vl.c | 12 +++++------- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/hw/device-hotplug.c b/hw/device-hotplug.c index 9cc8376691..a3fe99ea77 100644 --- a/hw/device-hotplug.c +++ b/hw/device-hotplug.c @@ -38,7 +38,7 @@ DriveInfo *add_init_drive(const char *optstr) if (!opts) return NULL; - dinfo = drive_init(opts, current_machine, &fatal_error); + dinfo = drive_init(opts, current_machine->use_scsi, &fatal_error); if (!dinfo) { qemu_opts_del(opts); return NULL; diff --git a/hw/usb-msd.c b/hw/usb-msd.c index c1c2537475..0ba4a64d7c 100644 --- a/hw/usb-msd.c +++ b/hw/usb-msd.c @@ -584,7 +584,7 @@ static USBDevice *usb_msd_init(const char *filename) qemu_opt_set(opts, "if", "none"); /* create host drive */ - dinfo = drive_init(opts, NULL, &fatal_error); + dinfo = drive_init(opts, 0, &fatal_error); if (!dinfo) { qemu_opts_del(opts); return NULL; diff --git a/sysemu.h b/sysemu.h index fd83b7dc1c..46a1b2f87f 100644 --- a/sysemu.h +++ b/sysemu.h @@ -191,7 +191,8 @@ extern BlockInterfaceErrorAction drive_get_on_error( BlockDriverState *qdev_init_bdrv(DeviceState *dev, BlockInterfaceType type); extern QemuOpts *drive_add(const char *file, const char *fmt, ...); -extern DriveInfo *drive_init(QemuOpts *arg, void *machine, int *fatal_error); +extern DriveInfo *drive_init(QemuOpts *arg, int default_to_scsi, + int *fatal_error); /* device-hotplug */ diff --git a/vl.c b/vl.c index 551138f0cc..db1fefd3ff 100644 --- a/vl.c +++ b/vl.c @@ -767,8 +767,7 @@ static int parse_block_error_action(const char *buf, int is_read) } } -DriveInfo *drive_init(QemuOpts *opts, void *opaque, - int *fatal_error) +DriveInfo *drive_init(QemuOpts *opts, int default_to_scsi, int *fatal_error) { const char *buf; const char *file = NULL; @@ -780,7 +779,6 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque, int bus_id, unit_id; int cyls, heads, secs, translation; BlockDriver *drv = NULL; - QEMUMachine *machine = opaque; int max_devs; int index; int ro = 0; @@ -795,7 +793,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque, translation = BIOS_ATA_TRANSLATION_AUTO; - if (machine && machine->use_scsi) { + if (default_to_scsi) { type = IF_SCSI; max_devs = MAX_SCSI_DEVS; pstrcpy(devname, sizeof(devname), "scsi"); @@ -1135,10 +1133,10 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque, static int drive_init_func(QemuOpts *opts, void *opaque) { - QEMUMachine *machine = opaque; + int *use_scsi = opaque; int fatal_error = 0; - if (drive_init(opts, machine, &fatal_error) == NULL) { + if (drive_init(opts, *use_scsi, &fatal_error) == NULL) { if (fatal_error) return 1; } @@ -3641,7 +3639,7 @@ int main(int argc, char **argv, char **envp) /* open the virtual block devices */ if (snapshot) qemu_opts_foreach(&qemu_drive_opts, drive_enable_snapshot, NULL, 0); - if (qemu_opts_foreach(&qemu_drive_opts, drive_init_func, machine, 1) != 0) + if (qemu_opts_foreach(&qemu_drive_opts, drive_init_func, &machine->use_scsi, 1) != 0) exit(1); register_savevm_live("ram", 0, 3, NULL, ram_save_live, NULL,