mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging
QOM device refactorings * Fix QOM and ISA documentation errors * Extend object_initialize() et al. to check the instance size # gpg: Signature made Fri 30 Aug 2013 02:19:48 PM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (14) and others # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: isa: Fix documentation of isa_register_portio_list() qom: Assert instance size in object_initialize_with_type() qom: Pass available size to object_initialize() qdev: Pass size to qbus_create_inplace() virtio-mmio: Pass size to virtio_mmio_bus_new() virtio-ccw: Pass size to virtio_ccw_bus_new() s390-virtio-bus: Pass size to virtio_s390_bus_new() virtio-pci: Pass size to virtio_pci_bus_new() usb: Pass size to usb_bus_new() scsi: Pass size to scsi_bus_new() pci: Pass size to pci_bus_new_inplace() ide: Pass size to ide_bus_new() ipack: Pass size to ipack_bus_new_inplace() intel-hda: Pass size to hda_codec_bus_init() qom: Fix object_initialize_with_type() argument name in documentation virtio: Remove unnecessary OBJECT() casts object: Fix typo in qom/object.h
This commit is contained in:
@@ -40,11 +40,11 @@ static const TypeInfo hda_codec_bus_info = {
|
||||
.instance_size = sizeof(HDACodecBus),
|
||||
};
|
||||
|
||||
void hda_codec_bus_init(DeviceState *dev, HDACodecBus *bus,
|
||||
void hda_codec_bus_init(DeviceState *dev, HDACodecBus *bus, size_t bus_size,
|
||||
hda_codec_response_func response,
|
||||
hda_codec_xfer_func xfer)
|
||||
{
|
||||
qbus_create_inplace(&bus->qbus, TYPE_HDA_BUS, dev, NULL);
|
||||
qbus_create_inplace(bus, bus_size, TYPE_HDA_BUS, dev, NULL);
|
||||
bus->response = response;
|
||||
bus->xfer = xfer;
|
||||
}
|
||||
@@ -1142,7 +1142,7 @@ static int intel_hda_init(PCIDevice *pci)
|
||||
msi_init(&d->pci, 0x50, 1, true, false);
|
||||
}
|
||||
|
||||
hda_codec_bus_init(DEVICE(pci), &d->codecs,
|
||||
hda_codec_bus_init(DEVICE(pci), &d->codecs, sizeof(d->codecs),
|
||||
intel_hda_response, intel_hda_xfer);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -48,7 +48,7 @@ struct HDACodecDevice {
|
||||
uint32_t cad; /* codec address */
|
||||
};
|
||||
|
||||
void hda_codec_bus_init(DeviceState *dev, HDACodecBus *bus,
|
||||
void hda_codec_bus_init(DeviceState *dev, HDACodecBus *bus, size_t bus_size,
|
||||
hda_codec_response_func response,
|
||||
hda_codec_xfer_func xfer);
|
||||
HDACodecDevice *hda_codec_find(HDACodecBus *bus, uint32_t cad);
|
||||
|
||||
+3
-2
@@ -24,11 +24,12 @@ IPackDevice *ipack_device_find(IPackBus *bus, int32_t slot)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void ipack_bus_new_inplace(IPackBus *bus, DeviceState *parent,
|
||||
void ipack_bus_new_inplace(IPackBus *bus, size_t bus_size,
|
||||
DeviceState *parent,
|
||||
const char *name, uint8_t n_slots,
|
||||
qemu_irq_handler handler)
|
||||
{
|
||||
qbus_create_inplace(&bus->qbus, TYPE_IPACK_BUS, parent, name);
|
||||
qbus_create_inplace(bus, bus_size, TYPE_IPACK_BUS, parent, name);
|
||||
bus->n_slots = n_slots;
|
||||
bus->set_irq = handler;
|
||||
}
|
||||
|
||||
+2
-1
@@ -72,7 +72,8 @@ extern const VMStateDescription vmstate_ipack_device;
|
||||
VMSTATE_STRUCT(_field, _state, 1, vmstate_ipack_device, IPackDevice)
|
||||
|
||||
IPackDevice *ipack_device_find(IPackBus *bus, int32_t slot);
|
||||
void ipack_bus_new_inplace(IPackBus *bus, DeviceState *parent,
|
||||
void ipack_bus_new_inplace(IPackBus *bus, size_t bus_size,
|
||||
DeviceState *parent,
|
||||
const char *name, uint8_t n_slots,
|
||||
qemu_irq_handler handler);
|
||||
|
||||
|
||||
+1
-1
@@ -607,7 +607,7 @@ static int tpci200_initfn(PCIDevice *pci_dev)
|
||||
pci_register_bar(&s->dev, 4, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->las2);
|
||||
pci_register_bar(&s->dev, 5, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->las3);
|
||||
|
||||
ipack_bus_new_inplace(&s->bus, DEVICE(&s->dev), NULL,
|
||||
ipack_bus_new_inplace(&s->bus, sizeof(s->bus), DEVICE(pci_dev), NULL,
|
||||
N_MODULES, tpci200_set_irq);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -911,8 +911,8 @@ static int virtio_serial_device_init(VirtIODevice *vdev)
|
||||
sizeof(struct virtio_console_config));
|
||||
|
||||
/* Spawn a new virtio-serial bus on which the ports will ride as devices */
|
||||
qbus_create_inplace(&vser->bus.qbus, TYPE_VIRTIO_SERIAL_BUS, qdev,
|
||||
vdev->bus_name);
|
||||
qbus_create_inplace(&vser->bus, sizeof(vser->bus), TYPE_VIRTIO_SERIAL_BUS,
|
||||
qdev, vdev->bus_name);
|
||||
vser->bus.qbus.allow_hotplug = 1;
|
||||
vser->bus.vser = vser;
|
||||
QTAILQ_INIT(&vser->ports);
|
||||
|
||||
+2
-2
@@ -470,10 +470,10 @@ static void bus_unparent(Object *obj)
|
||||
}
|
||||
}
|
||||
|
||||
void qbus_create_inplace(void *bus, const char *typename,
|
||||
void qbus_create_inplace(void *bus, size_t size, const char *typename,
|
||||
DeviceState *parent, const char *name)
|
||||
{
|
||||
object_initialize(bus, typename);
|
||||
object_initialize(bus, size, typename);
|
||||
qbus_realize(bus, parent, name);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -276,8 +276,8 @@ static void main_system_bus_create(void)
|
||||
/* assign main_system_bus before qbus_create_inplace()
|
||||
* in order to make "if (bus != sysbus_get_default())" work */
|
||||
main_system_bus = g_malloc0(system_bus_info.instance_size);
|
||||
qbus_create_inplace(main_system_bus, TYPE_SYSTEM_BUS, NULL,
|
||||
"main-system-bus");
|
||||
qbus_create_inplace(main_system_bus, system_bus_info.instance_size,
|
||||
TYPE_SYSTEM_BUS, NULL, "main-system-bus");
|
||||
OBJECT(main_system_bus)->free = g_free;
|
||||
object_property_add_child(container_get(qdev_get_machine(),
|
||||
"/unattached"),
|
||||
|
||||
+2
-1
@@ -90,7 +90,8 @@ static void icc_bridge_init(Object *obj)
|
||||
ICCBridgeState *s = ICC_BRIGDE(obj);
|
||||
SysBusDevice *sb = SYS_BUS_DEVICE(obj);
|
||||
|
||||
qbus_create_inplace(&s->icc_bus, TYPE_ICC_BUS, DEVICE(s), "icc");
|
||||
qbus_create_inplace(&s->icc_bus, sizeof(s->icc_bus), TYPE_ICC_BUS,
|
||||
DEVICE(s), "icc");
|
||||
|
||||
/* Do not change order of registering regions,
|
||||
* APIC must be first registered region, board maps it by 0 index
|
||||
|
||||
@@ -579,8 +579,10 @@ static void xilinx_axidma_init(Object *obj)
|
||||
(Object **) &s->tx_control_dev, &errp);
|
||||
assert_no_error(errp);
|
||||
|
||||
object_initialize(&s->rx_data_dev, TYPE_XILINX_AXI_DMA_DATA_STREAM);
|
||||
object_initialize(&s->rx_control_dev, TYPE_XILINX_AXI_DMA_CONTROL_STREAM);
|
||||
object_initialize(&s->rx_data_dev, sizeof(s->rx_data_dev),
|
||||
TYPE_XILINX_AXI_DMA_DATA_STREAM);
|
||||
object_initialize(&s->rx_control_dev, sizeof(s->rx_control_dev),
|
||||
TYPE_XILINX_AXI_DMA_CONTROL_STREAM);
|
||||
object_property_add_child(OBJECT(s), "axistream-connected-target",
|
||||
(Object *)&s->rx_data_dev, &errp);
|
||||
assert_no_error(errp);
|
||||
|
||||
+1
-1
@@ -1175,7 +1175,7 @@ void ahci_init(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports)
|
||||
for (i = 0; i < s->ports; i++) {
|
||||
AHCIDevice *ad = &s->dev[i];
|
||||
|
||||
ide_bus_new(&ad->port, qdev, i, 1);
|
||||
ide_bus_new(&ad->port, sizeof(ad->port), qdev, i, 1);
|
||||
ide_init2(&ad->port, irqs[i]);
|
||||
|
||||
ad->hba = s;
|
||||
|
||||
+1
-1
@@ -289,7 +289,7 @@ static int pci_cmd646_ide_initfn(PCIDevice *dev)
|
||||
|
||||
irq = qemu_allocate_irqs(cmd646_set_irq, d, 2);
|
||||
for (i = 0; i < 2; i++) {
|
||||
ide_bus_new(&d->bus[i], DEVICE(dev), i, 2);
|
||||
ide_bus_new(&d->bus[i], sizeof(d->bus[i]), DEVICE(dev), i, 2);
|
||||
ide_init2(&d->bus[i], irq[i]);
|
||||
|
||||
bmdma_init(&d->bus[i], &d->bmdma[i], d);
|
||||
|
||||
+2
-1
@@ -576,7 +576,8 @@ void ide_atapi_cmd(IDEState *s);
|
||||
void ide_atapi_cmd_reply_end(IDEState *s);
|
||||
|
||||
/* hw/ide/qdev.c */
|
||||
void ide_bus_new(IDEBus *idebus, DeviceState *dev, int bus_id, int max_units);
|
||||
void ide_bus_new(IDEBus *idebus, size_t idebus_size, DeviceState *dev,
|
||||
int bus_id, int max_units);
|
||||
IDEDevice *ide_create_drive(IDEBus *bus, int unit, DriveInfo *drive);
|
||||
|
||||
#endif /* HW_IDE_INTERNAL_H */
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ static void isa_ide_realizefn(DeviceState *dev, Error **errp)
|
||||
ISADevice *isadev = ISA_DEVICE(dev);
|
||||
ISAIDEState *s = ISA_IDE(dev);
|
||||
|
||||
ide_bus_new(&s->bus, dev, 0, 2);
|
||||
ide_bus_new(&s->bus, sizeof(s->bus), dev, 0, 2);
|
||||
ide_init_ioport(&s->bus, isadev, s->iobase, s->iobase2);
|
||||
isa_init_irq(isadev, &s->irq, s->isairq);
|
||||
ide_init2(&s->bus, s->irq);
|
||||
|
||||
+1
-1
@@ -547,7 +547,7 @@ static void macio_ide_initfn(Object *obj)
|
||||
SysBusDevice *d = SYS_BUS_DEVICE(obj);
|
||||
MACIOIDEState *s = MACIO_IDE(obj);
|
||||
|
||||
ide_bus_new(&s->bus, DEVICE(obj), 0, 2);
|
||||
ide_bus_new(&s->bus, sizeof(s->bus), DEVICE(obj), 0, 2);
|
||||
memory_region_init_io(&s->mem, obj, &pmac_ide_ops, s, "pmac-ide", 0x1000);
|
||||
sysbus_init_mmio(d, &s->mem);
|
||||
sysbus_init_irq(d, &s->irq);
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ static void mmio_ide_initfn(Object *obj)
|
||||
SysBusDevice *d = SYS_BUS_DEVICE(obj);
|
||||
MMIOState *s = MMIO_IDE(obj);
|
||||
|
||||
ide_bus_new(&s->bus, DEVICE(obj), 0, 2);
|
||||
ide_bus_new(&s->bus, sizeof(s->bus), DEVICE(obj), 0, 2);
|
||||
sysbus_init_irq(d, &s->irq);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -136,7 +136,7 @@ static void pci_piix_init_ports(PCIIDEState *d) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
ide_bus_new(&d->bus[i], DEVICE(d), i, 2);
|
||||
ide_bus_new(&d->bus[i], sizeof(d->bus[i]), DEVICE(d), i, 2);
|
||||
ide_init_ioport(&d->bus[i], NULL, port_info[i].iobase,
|
||||
port_info[i].iobase2);
|
||||
ide_init2(&d->bus[i], isa_get_irq(NULL, port_info[i].isairq));
|
||||
|
||||
+3
-2
@@ -47,9 +47,10 @@ static const TypeInfo ide_bus_info = {
|
||||
.class_init = ide_bus_class_init,
|
||||
};
|
||||
|
||||
void ide_bus_new(IDEBus *idebus, DeviceState *dev, int bus_id, int max_units)
|
||||
void ide_bus_new(IDEBus *idebus, size_t idebus_size, DeviceState *dev,
|
||||
int bus_id, int max_units)
|
||||
{
|
||||
qbus_create_inplace(&idebus->qbus, TYPE_IDE_BUS, dev, NULL);
|
||||
qbus_create_inplace(idebus, idebus_size, TYPE_IDE_BUS, dev, NULL);
|
||||
idebus->bus_id = bus_id;
|
||||
idebus->max_units = max_units;
|
||||
}
|
||||
|
||||
+1
-1
@@ -159,7 +159,7 @@ static void vt82c686b_init_ports(PCIIDEState *d) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
ide_bus_new(&d->bus[i], DEVICE(d), i, 2);
|
||||
ide_bus_new(&d->bus[i], sizeof(d->bus[i]), DEVICE(d), i, 2);
|
||||
ide_init_ioport(&d->bus[i], NULL, port_info[i].iobase,
|
||||
port_info[i].iobase2);
|
||||
ide_init2(&d->bus[i], isa_get_irq(NULL, port_info[i].isairq));
|
||||
|
||||
+1
-1
@@ -661,7 +661,7 @@ static void xics_realize(DeviceState *dev, Error **errp)
|
||||
icp->ss = g_malloc0(icp->nr_servers*sizeof(ICPState));
|
||||
for (i = 0; i < icp->nr_servers; i++) {
|
||||
char buffer[32];
|
||||
object_initialize(&icp->ss[i], TYPE_ICP);
|
||||
object_initialize(&icp->ss[i], sizeof(icp->ss[i]), TYPE_ICP);
|
||||
snprintf(buffer, sizeof(buffer), "icp[%d]", i);
|
||||
object_property_add_child(OBJECT(icp), buffer, OBJECT(&icp->ss[i]), NULL);
|
||||
qdev_init_nofail(DEVICE(&icp->ss[i]));
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user