From 2d0d2837dcf786da415cf4165d37f4ddd684ff57 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Tue, 20 Nov 2012 15:30:34 +0100 Subject: Support default block interfaces per QEMUMachine There are QEMUMachines that have neither IF_IDE nor IF_SCSI as a default/standard interface to their block devices / drives. Therefore, this patch introduces a new field default_block_type per QEMUMachine struct. The prior use_scsi field becomes thereby obsolete and is replaced through .default_block_type = IF_SCSI. This patch also changes the default for s390x to IF_VIRTIO and removes an early hack that converts IF_IDE drives. Other parties have already claimed interest (e.g. IF_SD for exynos) To create a sane default, for machines that dont specify a default_block_type, this patch makes IF_IDE = 0 and IF_NONE = 1. I checked all users of IF_NONE (blockdev.c and ww/device-hotplug.c) as well as IF_IDE and it seems that it is ok to change the defines - in other words, I found no obvious (to me) assumption in the code regarding IF_NONE==0. IF_NONE is only set if there is an explicit if=none. Without if=* the interface becomes IF_DEFAULT. I would suggest to have some additional care, e.g. by letting this patch sit some days in the block tree. Based on an initial patch from Einar Lueck Signed-off-by: Christian Borntraeger CC: Igor Mitsyanko CC: Markus Armbruster CC: Kevin Wolf Reviewed-by: Alexander Graf Acked-by: Igor Mitsyanko Reviewed-by: Markus Armbruster Signed-off-by: Stefan Hajnoczi --- hw/boards.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'hw/boards.h') diff --git a/hw/boards.h b/hw/boards.h index 813d0e5109..c66fa16a9d 100644 --- a/hw/boards.h +++ b/hw/boards.h @@ -3,6 +3,7 @@ #ifndef HW_BOARDS_H #define HW_BOARDS_H +#include "blockdev.h" #include "qdev.h" typedef struct QEMUMachineInitArgs { @@ -24,7 +25,7 @@ typedef struct QEMUMachine { const char *desc; QEMUMachineInitFunc *init; QEMUMachineResetFunc *reset; - int use_scsi; + BlockInterfaceType block_default_type; int max_cpus; unsigned int no_serial:1, no_parallel:1, -- cgit v1.2.3