[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 08/11] blockdev: Factor drive_index_to_{bus, unit
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 08/11] blockdev: Factor drive_index_to_{bus, unit}_id out of drive_init() |
Date: |
Fri, 28 Jan 2011 11:21:43 +0100 |
Signed-off-by: Markus Armbruster <address@hidden>
---
blockdev.c | 22 ++++++++++++++--------
1 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index a5e56ee..f0bed2e 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -75,6 +75,18 @@ void blockdev_auto_del(BlockDriverState *bs)
}
}
+static int drive_index_to_bus_id(BlockInterfaceType type, int index)
+{
+ int max_devs = if_max_devs[type];
+ return max_devs ? index / max_devs : 0;
+}
+
+static int drive_index_to_unit_id(BlockInterfaceType type, int index)
+{
+ int max_devs = if_max_devs[type];
+ return max_devs ? index % max_devs : index;
+}
+
QemuOpts *drive_def(const char *optstr)
{
return qemu_opts_parse(qemu_find_opts("drive"), optstr, 0);
@@ -376,14 +388,8 @@ DriveInfo *drive_init(QemuOpts *opts, int default_to_scsi,
int *fatal_error)
error_report("index cannot be used with bus and unit");
return NULL;
}
- if (max_devs == 0)
- {
- unit_id = index;
- bus_id = 0;
- } else {
- unit_id = index % max_devs;
- bus_id = index / max_devs;
- }
+ bus_id = drive_index_to_bus_id(type, index);
+ unit_id = drive_index_to_unit_id(type, index);
}
/* if user doesn't specify a unit_id,
--
1.7.2.3
- [Qemu-devel] [PATCH v2 00/11] -drive/drive_add fixes and cleanups, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 01/11] scsi hotplug: Set DriveInfo member bus correctly, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 03/11] blockdev: Move BlockInterfaceType from qemu-common.h to blockdev.h, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 02/11] blockdev: New drive_get_next(), replacing qdev_init_bdrv(), Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 08/11] blockdev: Factor drive_index_to_{bus, unit}_id out of drive_init(),
Markus Armbruster <=
- [Qemu-devel] [PATCH v2 05/11] blockdev: Fix regression in -drive if=scsi, index=N, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 09/11] blockdev: New drive_get_by_index(), Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 07/11] blockdev: Replace drive_add()'s fmt, ... by optstr parameter, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 11/11] blockdev: Fix drive_add for drives without media, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 10/11] blockdev: Reject multiple definitions for the same drive, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 06/11] blockdev: Make drive_add() take explicit type, index parameters, Markus Armbruster, 2011/01/28
- [Qemu-devel] [PATCH v2 04/11] blockdev: Put BlockInterfaceType names and max_devs in tables, Markus Armbruster, 2011/01/28
- [Qemu-devel] Re: [PATCH v2 00/11] -drive/drive_add fixes and cleanups, Kevin Wolf, 2011/01/31