mirror of
https://github.com/qemu/qemu.git
synced 2024-12-13 22:43:32 +08:00
hw/ide/isa: Extract TYPE_ISA_IDE declarations to 'hw/ide/isa.h'
"hw/ide.h" is a mixed bag of lost IDE declarations. Extract isa_ide_init() and the TYPE_ISA_IDE QOM declarations to a new "hw/ide/isa.h" header. Rename ISAIDEState::isairq as 'irqnum' to emphasize this is not a qemu_irq object but the number (index) of an ISA IRQ. Message-Id: <20230215112712.23110-5-philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Bernhard Beschow <shentey@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
01c43405d6
commit
794093e80a
@ -39,6 +39,7 @@
|
||||
#include "hw/pci/pci_ids.h"
|
||||
#include "hw/usb.h"
|
||||
#include "net/net.h"
|
||||
#include "hw/ide/isa.h"
|
||||
#include "hw/ide/pci.h"
|
||||
#include "hw/ide/piix.h"
|
||||
#include "hw/irq.h"
|
||||
|
14
hw/ide/isa.c
14
hw/ide/isa.c
@ -31,22 +31,20 @@
|
||||
#include "qemu/module.h"
|
||||
#include "sysemu/dma.h"
|
||||
|
||||
#include "hw/ide/isa.h"
|
||||
#include "hw/ide/internal.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
/***********************************************************/
|
||||
/* ISA IDE definitions */
|
||||
|
||||
#define TYPE_ISA_IDE "isa-ide"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(ISAIDEState, ISA_IDE)
|
||||
|
||||
struct ISAIDEState {
|
||||
ISADevice parent_obj;
|
||||
|
||||
IDEBus bus;
|
||||
uint32_t iobase;
|
||||
uint32_t iobase2;
|
||||
uint32_t isairq;
|
||||
uint32_t irqnum;
|
||||
qemu_irq irq;
|
||||
};
|
||||
|
||||
@ -75,13 +73,13 @@ static void isa_ide_realizefn(DeviceState *dev, Error **errp)
|
||||
|
||||
ide_bus_init(&s->bus, sizeof(s->bus), dev, 0, 2);
|
||||
ide_init_ioport(&s->bus, isadev, s->iobase, s->iobase2);
|
||||
s->irq = isa_get_irq(isadev, s->isairq);
|
||||
s->irq = isa_get_irq(isadev, s->irqnum);
|
||||
ide_init2(&s->bus, s->irq);
|
||||
vmstate_register(VMSTATE_IF(dev), 0, &vmstate_ide_isa, s);
|
||||
ide_register_restart_cb(&s->bus);
|
||||
}
|
||||
|
||||
ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq,
|
||||
ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int irqnum,
|
||||
DriveInfo *hd0, DriveInfo *hd1)
|
||||
{
|
||||
DeviceState *dev;
|
||||
@ -92,7 +90,7 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq,
|
||||
dev = DEVICE(isadev);
|
||||
qdev_prop_set_uint32(dev, "iobase", iobase);
|
||||
qdev_prop_set_uint32(dev, "iobase2", iobase2);
|
||||
qdev_prop_set_uint32(dev, "irq", isairq);
|
||||
qdev_prop_set_uint32(dev, "irq", irqnum);
|
||||
isa_realize_and_unref(isadev, bus, &error_fatal);
|
||||
|
||||
s = ISA_IDE(dev);
|
||||
@ -108,7 +106,7 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq,
|
||||
static Property isa_ide_properties[] = {
|
||||
DEFINE_PROP_UINT32("iobase", ISAIDEState, iobase, 0x1f0),
|
||||
DEFINE_PROP_UINT32("iobase2", ISAIDEState, iobase2, 0x3f6),
|
||||
DEFINE_PROP_UINT32("irq", ISAIDEState, isairq, 14),
|
||||
DEFINE_PROP_UINT32("irq", ISAIDEState, irqnum, 14),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
|
@ -1,13 +1,8 @@
|
||||
#ifndef HW_IDE_H
|
||||
#define HW_IDE_H
|
||||
|
||||
#include "hw/isa/isa.h"
|
||||
#include "exec/memory.h"
|
||||
|
||||
/* ide-isa.c */
|
||||
ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq,
|
||||
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);
|
||||
|
20
include/hw/ide/isa.h
Normal file
20
include/hw/ide/isa.h
Normal file
@ -0,0 +1,20 @@
|
||||
/*
|
||||
* QEMU IDE Emulation: ISA Bus support.
|
||||
*
|
||||
* Copyright (c) 2003 Fabrice Bellard
|
||||
* Copyright (c) 2006 Openedhand Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
#ifndef HW_IDE_ISA_H
|
||||
#define HW_IDE_ISA_H
|
||||
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_ISA_IDE "isa-ide"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(ISAIDEState, ISA_IDE)
|
||||
|
||||
ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int irqnum,
|
||||
DriveInfo *hd0, DriveInfo *hd1);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user