kill drives_table
First step cleaning up the drives handling. This one does nothing but
removing drives_table[], still it became seriously big.
drive_get_index() is gone and is replaced by drives_get() which hands
out DriveInfo pointers instead of a table index. This needs adaption in
*tons* of places all over.
The drives are now maintained as linked list.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
diff --git a/hw/gumstix.c b/hw/gumstix.c
index 85b95ee..8fbf64c 100644
--- a/hw/gumstix.c
+++ b/hw/gumstix.c
@@ -47,22 +47,22 @@
const char *initrd_filename, const char *cpu_model)
{
PXA2xxState *cpu;
- int index;
+ DriveInfo *dinfo;
uint32_t connex_rom = 0x01000000;
uint32_t connex_ram = 0x04000000;
cpu = pxa255_init(connex_ram);
- index = drive_get_index(IF_PFLASH, 0, 0);
- if (index == -1) {
+ dinfo = drive_get(IF_PFLASH, 0, 0);
+ if (!dinfo) {
fprintf(stderr, "A flash image must be given with the "
"'pflash' parameter\n");
exit(1);
}
if (!pflash_cfi01_register(0x00000000, qemu_ram_alloc(connex_rom),
- drives_table[index].bdrv, sector_len, connex_rom / sector_len,
+ dinfo->bdrv, sector_len, connex_rom / sector_len,
2, 0, 0, 0, 0)) {
fprintf(stderr, "qemu: Error registering flash memory.\n");
exit(1);
@@ -81,22 +81,22 @@
const char *initrd_filename, const char *cpu_model)
{
PXA2xxState *cpu;
- int index;
+ DriveInfo *dinfo;
uint32_t verdex_rom = 0x02000000;
uint32_t verdex_ram = 0x10000000;
cpu = pxa270_init(verdex_ram, cpu_model ?: "pxa270-c0");
- index = drive_get_index(IF_PFLASH, 0, 0);
- if (index == -1) {
+ dinfo = drive_get(IF_PFLASH, 0, 0);
+ if (!dinfo) {
fprintf(stderr, "A flash image must be given with the "
"'pflash' parameter\n");
exit(1);
}
if (!pflash_cfi01_register(0x00000000, qemu_ram_alloc(verdex_rom),
- drives_table[index].bdrv, sector_len, verdex_rom / sector_len,
+ dinfo->bdrv, sector_len, verdex_rom / sector_len,
2, 0, 0, 0, 0)) {
fprintf(stderr, "qemu: Error registering flash memory.\n");
exit(1);