Commit 57c88866 authored by Markus Armbruster's avatar Markus Armbruster Committed by Kevin Wolf
Browse files

ide: Make PIIX and ISA IDE init functions return the qdev

parent 7d0d6950
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
#ifndef HW_IDE_H
#define HW_IDE_H

#include "qdev.h"
#include "isa.h"
#include "pci.h"

/* 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);

/* ide-pci.c */
void pci_cmd646_ide_init(PCIBus *bus, DriveInfo **hd_table,
                         int secondary_ide_enabled);
void 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_piix3_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);

/* ide-macio.c */
+4 −4
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ static int isa_ide_initfn(ISADevice *dev)
    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)
{
    ISADevice *dev;
@@ -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, "irq",     isairq);
    if (qdev_init(&dev->qdev) < 0)
        return -1;
        return NULL;

    s = DO_UPCAST(ISAIDEState, dev, dev);
    if (hd0)
        ide_create_drive(&s->bus, 0, hd0);
    if (hd1)
        ide_create_drive(&s->bus, 1, hd1);
    return 0;
    return dev;
}

static ISADeviceInfo isa_ide_info = {
+4 −2
Original line number Diff line number Diff line
@@ -160,22 +160,24 @@ static int pci_piix4_ide_initfn(PCIDevice *dev)

/* hd_table must contain 4 block drivers */
/* 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;

    dev = pci_create_simple(bus, devfn, "piix3-ide");
    pci_ide_create_devs(dev, hd_table);
    return dev;
}

/* hd_table must contain 4 block drivers */
/* 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;

    dev = pci_create_simple(bus, devfn, "piix4-ide");
    pci_ide_create_devs(dev, hd_table);
    return dev;
}

static PCIDeviceInfo piix_ide_info[] = {