blob: 0b18c9016b25f4a0747c773ed246f1f520d14c87 [file] [log] [blame]
Gerd Hoffmannec820262009-08-20 15:22:19 +02001#ifndef HW_IDE_H
2#define HW_IDE_H
3
Markus Armbruster57c88862010-06-24 19:59:29 +02004#include "isa.h"
5#include "pci.h"
Avi Kivity9d7f1b92011-11-09 16:10:07 +02006#include "memory.h"
Gerd Hoffmannec820262009-08-20 15:22:19 +02007
Markus Armbruster27d6bf42011-01-28 11:21:40 +01008#define MAX_IDE_DEVS 2
9
Gerd Hoffmannec820262009-08-20 15:22:19 +020010/* ide-isa.c */
Hervé Poussineau48a18b32011-12-15 22:09:51 +010011ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq,
Markus Armbruster57c88862010-06-24 19:59:29 +020012 DriveInfo *hd0, DriveInfo *hd1);
Gerd Hoffmannec820262009-08-20 15:22:19 +020013
Gerd Hoffmann977e1242009-08-20 15:22:20 +020014/* ide-pci.c */
Gerd Hoffmannf455e982009-08-28 15:47:03 +020015void pci_cmd646_ide_init(PCIBus *bus, DriveInfo **hd_table,
Gerd Hoffmann977e1242009-08-20 15:22:20 +020016 int secondary_ide_enabled);
Stefano Stabellini679f4f82011-07-18 06:07:02 +000017PCIDevice *pci_piix3_xen_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
Markus Armbruster57c88862010-06-24 19:59:29 +020018PCIDevice *pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
19PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
Huacai Chen016512f2010-06-29 10:49:50 +080020void vt82c686b_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
Gerd Hoffmann977e1242009-08-20 15:22:20 +020021
Gerd Hoffmannb8842202009-08-20 15:22:21 +020022/* ide-macio.c */
Avi Kivity23c5e4c2011-08-08 16:09:17 +030023MemoryRegion *pmac_ide_init (DriveInfo **hd_table, qemu_irq irq,
Gerd Hoffmannb8842202009-08-20 15:22:21 +020024 void *dbdma, int channel, qemu_irq dma_irq);
25
Gerd Hoffmann3d2bf4a2009-08-20 15:22:22 +020026/* ide-mmio.c */
Anthony Liguoric227f092009-10-01 16:12:16 -050027void mmio_ide_init (target_phys_addr_t membase, target_phys_addr_t membase2,
Avi Kivity9d7f1b92011-11-09 16:10:07 +020028 MemoryRegion *address_space,
Gerd Hoffmann3d2bf4a2009-08-20 15:22:22 +020029 qemu_irq irq, int shift,
Gerd Hoffmannf455e982009-08-28 15:47:03 +020030 DriveInfo *hd0, DriveInfo *hd1);
Gerd Hoffmann3d2bf4a2009-08-20 15:22:22 +020031
Markus Armbrusterc0897e02010-06-24 19:58:20 +020032void ide_get_bs(BlockDriverState *bs[], BusState *qbus);
33
Isaku Yamahata75717902011-04-03 20:32:46 +090034/* ide/core.c */
35void ide_drive_get(DriveInfo **hd, int max_bus);
36
Gerd Hoffmannec820262009-08-20 15:22:19 +020037#endif /* HW_IDE_H */