ide: Make PIIX and ISA IDE init functions return the qdev
Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7d0d69509a
commit
57c888664b
11
hw/ide.h
11
hw/ide.h
|
@ -1,17 +1,18 @@
|
||||||
#ifndef HW_IDE_H
|
#ifndef HW_IDE_H
|
||||||
#define HW_IDE_H
|
#define HW_IDE_H
|
||||||
|
|
||||||
#include "qdev.h"
|
#include "isa.h"
|
||||||
|
#include "pci.h"
|
||||||
|
|
||||||
/* ide-isa.c */
|
/* ide-isa.c */
|
||||||
int isa_ide_init(int iobase, int iobase2, int isairq,
|
ISADevice *isa_ide_init(int iobase, int iobase2, int isairq,
|
||||||
DriveInfo *hd0, DriveInfo *hd1);
|
DriveInfo *hd0, DriveInfo *hd1);
|
||||||
|
|
||||||
/* ide-pci.c */
|
/* ide-pci.c */
|
||||||
void pci_cmd646_ide_init(PCIBus *bus, DriveInfo **hd_table,
|
void pci_cmd646_ide_init(PCIBus *bus, DriveInfo **hd_table,
|
||||||
int secondary_ide_enabled);
|
int secondary_ide_enabled);
|
||||||
void pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
PCIDevice *pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||||
void pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||||
void vt82c686b_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
void vt82c686b_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||||
|
|
||||||
/* ide-macio.c */
|
/* ide-macio.c */
|
||||||
|
|
|
@ -75,8 +75,8 @@ static int isa_ide_initfn(ISADevice *dev)
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
int isa_ide_init(int iobase, int iobase2, int isairq,
|
ISADevice *isa_ide_init(int iobase, int iobase2, int isairq,
|
||||||
DriveInfo *hd0, DriveInfo *hd1)
|
DriveInfo *hd0, DriveInfo *hd1)
|
||||||
{
|
{
|
||||||
ISADevice *dev;
|
ISADevice *dev;
|
||||||
ISAIDEState *s;
|
ISAIDEState *s;
|
||||||
|
@ -86,14 +86,14 @@ int isa_ide_init(int iobase, int iobase2, int isairq,
|
||||||
qdev_prop_set_uint32(&dev->qdev, "iobase2", iobase2);
|
qdev_prop_set_uint32(&dev->qdev, "iobase2", iobase2);
|
||||||
qdev_prop_set_uint32(&dev->qdev, "irq", isairq);
|
qdev_prop_set_uint32(&dev->qdev, "irq", isairq);
|
||||||
if (qdev_init(&dev->qdev) < 0)
|
if (qdev_init(&dev->qdev) < 0)
|
||||||
return -1;
|
return NULL;
|
||||||
|
|
||||||
s = DO_UPCAST(ISAIDEState, dev, dev);
|
s = DO_UPCAST(ISAIDEState, dev, dev);
|
||||||
if (hd0)
|
if (hd0)
|
||||||
ide_create_drive(&s->bus, 0, hd0);
|
ide_create_drive(&s->bus, 0, hd0);
|
||||||
if (hd1)
|
if (hd1)
|
||||||
ide_create_drive(&s->bus, 1, hd1);
|
ide_create_drive(&s->bus, 1, hd1);
|
||||||
return 0;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ISADeviceInfo isa_ide_info = {
|
static ISADeviceInfo isa_ide_info = {
|
||||||
|
|
|
@ -160,22 +160,24 @@ static int pci_piix4_ide_initfn(PCIDevice *dev)
|
||||||
|
|
||||||
/* hd_table must contain 4 block drivers */
|
/* hd_table must contain 4 block drivers */
|
||||||
/* NOTE: for the PIIX3, the IRQs and IOports are hardcoded */
|
/* NOTE: for the PIIX3, the IRQs and IOports are hardcoded */
|
||||||
void pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn)
|
PCIDevice *pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn)
|
||||||
{
|
{
|
||||||
PCIDevice *dev;
|
PCIDevice *dev;
|
||||||
|
|
||||||
dev = pci_create_simple(bus, devfn, "piix3-ide");
|
dev = pci_create_simple(bus, devfn, "piix3-ide");
|
||||||
pci_ide_create_devs(dev, hd_table);
|
pci_ide_create_devs(dev, hd_table);
|
||||||
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hd_table must contain 4 block drivers */
|
/* hd_table must contain 4 block drivers */
|
||||||
/* NOTE: for the PIIX4, the IRQs and IOports are hardcoded */
|
/* NOTE: for the PIIX4, the IRQs and IOports are hardcoded */
|
||||||
void pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn)
|
PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn)
|
||||||
{
|
{
|
||||||
PCIDevice *dev;
|
PCIDevice *dev;
|
||||||
|
|
||||||
dev = pci_create_simple(bus, devfn, "piix4-ide");
|
dev = pci_create_simple(bus, devfn, "piix4-ide");
|
||||||
pci_ide_create_devs(dev, hd_table);
|
pci_ide_create_devs(dev, hd_table);
|
||||||
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PCIDeviceInfo piix_ide_info[] = {
|
static PCIDeviceInfo piix_ide_info[] = {
|
||||||
|
|
Loading…
Reference in a new issue