9139046c16
PC BIOS setup needs IDE geometry information. Get it directly from the device model rather than through the block layer. In preparation of purging geometry from the block layer, which will happen later in this series. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
#ifndef HW_IDE_H
|
|
#define HW_IDE_H
|
|
|
|
#include "isa.h"
|
|
#include "pci.h"
|
|
#include "memory.h"
|
|
|
|
#define MAX_IDE_DEVS 2
|
|
|
|
/* ide-isa.c */
|
|
ISADevice *isa_ide_init(ISABus *bus, 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);
|
|
PCIDevice *pci_piix3_xen_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 */
|
|
MemoryRegion *pmac_ide_init (DriveInfo **hd_table, qemu_irq irq,
|
|
void *dbdma, int channel, qemu_irq dma_irq);
|
|
|
|
/* ide-mmio.c */
|
|
void mmio_ide_init (target_phys_addr_t membase, target_phys_addr_t membase2,
|
|
MemoryRegion *address_space,
|
|
qemu_irq irq, int shift,
|
|
DriveInfo *hd0, DriveInfo *hd1);
|
|
|
|
int ide_get_geometry(BusState *bus, int unit,
|
|
int16_t *cyls, int8_t *heads, int8_t *secs);
|
|
int ide_get_bios_chs_trans(BusState *bus, int unit);
|
|
|
|
/* ide/core.c */
|
|
void ide_drive_get(DriveInfo **hd, int max_bus);
|
|
|
|
#endif /* HW_IDE_H */
|