mirror of https://github.com/xemu-project/xemu.git
qdev: kill off DeviceInfo
It is no longer used in the tree since everything is done natively through QEMU Object Model. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
39bffca203
commit
d307af795d
2
hw/i2c.c
2
hw/i2c.c
|
@ -196,7 +196,7 @@ const VMStateDescription vmstate_i2c_slave = {
|
|||
}
|
||||
};
|
||||
|
||||
static int i2c_slave_qdev_init(DeviceState *dev, DeviceInfo *base)
|
||||
static int i2c_slave_qdev_init(DeviceState *dev)
|
||||
{
|
||||
I2CSlave *s = I2C_SLAVE_FROM_QDEV(dev);
|
||||
I2CSlaveClass *sc = I2C_SLAVE_GET_CLASS(s);
|
||||
|
|
|
@ -53,7 +53,7 @@ static char *idebus_get_fw_dev_path(DeviceState *dev)
|
|||
return strdup(path);
|
||||
}
|
||||
|
||||
static int ide_qdev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int ide_qdev_init(DeviceState *qdev)
|
||||
{
|
||||
IDEDevice *dev = IDE_DEVICE(qdev);
|
||||
IDEDeviceClass *dc = IDE_DEVICE_GET_CLASS(dev);
|
||||
|
|
|
@ -47,7 +47,7 @@ void hda_codec_bus_init(DeviceState *dev, HDACodecBus *bus,
|
|||
bus->xfer = xfer;
|
||||
}
|
||||
|
||||
static int hda_codec_dev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int hda_codec_dev_init(DeviceState *qdev)
|
||||
{
|
||||
HDACodecBus *bus = DO_UPCAST(HDACodecBus, qbus, qdev->parent_bus);
|
||||
HDACodecDevice *dev = DO_UPCAST(HDACodecDevice, qdev, qdev);
|
||||
|
|
|
@ -110,7 +110,7 @@ void isa_register_portio_list(ISADevice *dev, uint16_t start,
|
|||
portio_list_add(piolist, isabus->address_space_io, start);
|
||||
}
|
||||
|
||||
static int isa_qdev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int isa_qdev_init(DeviceState *qdev)
|
||||
{
|
||||
ISADevice *dev = ISA_DEVICE(qdev);
|
||||
ISADeviceClass *klass = ISA_DEVICE_GET_CLASS(dev);
|
||||
|
|
2
hw/pci.c
2
hw/pci.c
|
@ -1453,7 +1453,7 @@ PCIDevice *pci_find_device(PCIBus *bus, int bus_num, uint8_t devfn)
|
|||
return bus->devices[devfn];
|
||||
}
|
||||
|
||||
static int pci_qdev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int pci_qdev_init(DeviceState *qdev)
|
||||
{
|
||||
PCIDevice *pci_dev = (PCIDevice *)qdev;
|
||||
PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(pci_dev);
|
||||
|
|
70
hw/qdev.c
70
hw/qdev.c
|
@ -43,49 +43,6 @@ static BusState *qbus_find_recursive(BusState *bus, const char *name,
|
|||
static BusState *qbus_find(const char *path);
|
||||
|
||||
/* Register a new device type. */
|
||||
static void qdev_subclass_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
DeviceInfo *info = data;
|
||||
|
||||
if (info->fw_name) {
|
||||
dc->fw_name = info->fw_name;
|
||||
}
|
||||
if (info->alias) {
|
||||
dc->alias = info->alias;
|
||||
}
|
||||
if (info->desc) {
|
||||
dc->desc = info->desc;
|
||||
}
|
||||
if (info->props) {
|
||||
dc->props = info->props;
|
||||
}
|
||||
if (info->no_user) {
|
||||
dc->no_user = info->no_user;
|
||||
}
|
||||
if (info->reset) {
|
||||
dc->reset = info->reset;
|
||||
}
|
||||
if (info->vmsd) {
|
||||
dc->vmsd = info->vmsd;
|
||||
}
|
||||
if (info->init) {
|
||||
dc->init = info->init;
|
||||
}
|
||||
if (info->unplug) {
|
||||
dc->unplug = info->unplug;
|
||||
}
|
||||
if (info->exit) {
|
||||
dc->exit = info->exit;
|
||||
}
|
||||
if (info->bus_info) {
|
||||
dc->bus_info = info->bus_info;
|
||||
}
|
||||
if (info->class_init) {
|
||||
info->class_init(klass, data);
|
||||
}
|
||||
}
|
||||
|
||||
const VMStateDescription *qdev_get_vmsd(DeviceState *dev)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_GET_CLASS(dev);
|
||||
|
@ -117,30 +74,6 @@ const char *qdev_fw_name(DeviceState *dev)
|
|||
return object_get_typename(OBJECT(dev));
|
||||
}
|
||||
|
||||
static void qdev_do_register_subclass(DeviceInfo *info, const char *parent,
|
||||
const char *name)
|
||||
{
|
||||
TypeInfo type_info = {};
|
||||
|
||||
assert(info->size >= sizeof(DeviceState));
|
||||
|
||||
type_info.name = name;
|
||||
type_info.parent = parent;
|
||||
type_info.instance_size = info->size;
|
||||
type_info.class_init = qdev_subclass_init;
|
||||
type_info.class_data = info;
|
||||
|
||||
type_register_static(&type_info);
|
||||
}
|
||||
|
||||
void qdev_register_subclass(DeviceInfo *info, const char *parent)
|
||||
{
|
||||
qdev_do_register_subclass(info, parent, info->name);
|
||||
if (info->alias) {
|
||||
qdev_do_register_subclass(info, parent, info->alias);
|
||||
}
|
||||
}
|
||||
|
||||
bool qdev_exists(const char *name)
|
||||
{
|
||||
return !!object_class_by_name(name);
|
||||
|
@ -406,8 +339,7 @@ int qdev_init(DeviceState *dev)
|
|||
|
||||
assert(dev->state == DEV_STATE_CREATED);
|
||||
|
||||
/* FIXME hopefully this doesn't break anything */
|
||||
rc = dc->init(dev, NULL);
|
||||
rc = dc->init(dev);
|
||||
if (rc < 0) {
|
||||
qdev_free(dev);
|
||||
return rc;
|
||||
|
|
33
hw/qdev.h
33
hw/qdev.h
|
@ -14,8 +14,6 @@ typedef struct PropertyInfo PropertyInfo;
|
|||
|
||||
typedef struct CompatProperty CompatProperty;
|
||||
|
||||
typedef struct DeviceInfo DeviceInfo;
|
||||
|
||||
typedef struct BusState BusState;
|
||||
|
||||
typedef struct BusInfo BusInfo;
|
||||
|
@ -72,7 +70,7 @@ typedef struct DeviceProperty
|
|||
#define DEVICE_CLASS(klass) OBJECT_CLASS_CHECK(DeviceClass, (klass), TYPE_DEVICE)
|
||||
#define DEVICE_GET_CLASS(obj) OBJECT_GET_CLASS(DeviceClass, (obj), TYPE_DEVICE)
|
||||
|
||||
typedef int (*qdev_initfn)(DeviceState *dev, DeviceInfo *info);
|
||||
typedef int (*qdev_initfn)(DeviceState *dev);
|
||||
typedef int (*qdev_event)(DeviceState *dev);
|
||||
typedef void (*qdev_resetfn)(DeviceState *dev);
|
||||
|
||||
|
@ -233,35 +231,6 @@ BusState *qdev_get_child_bus(DeviceState *dev, const char *name);
|
|||
|
||||
/*** Device API. ***/
|
||||
|
||||
struct DeviceInfo {
|
||||
const char *name;
|
||||
const char *fw_name;
|
||||
const char *alias;
|
||||
const char *desc;
|
||||
size_t size;
|
||||
Property *props;
|
||||
int no_user;
|
||||
|
||||
/* callbacks */
|
||||
qdev_resetfn reset;
|
||||
|
||||
/* device state */
|
||||
const VMStateDescription *vmsd;
|
||||
|
||||
/**
|
||||
* See #TypeInfo::class_init()
|
||||
*/
|
||||
void (*class_init)(ObjectClass *klass, void *data);
|
||||
|
||||
/* Private to qdev / bus. */
|
||||
qdev_initfn init;
|
||||
qdev_event unplug;
|
||||
qdev_event exit;
|
||||
BusInfo *bus_info;
|
||||
};
|
||||
|
||||
void qdev_register_subclass(DeviceInfo *info, const char *parent);
|
||||
|
||||
/* Register device properties. */
|
||||
/* GPIO inputs also double as IRQ sinks. */
|
||||
void qdev_init_gpio_in(DeviceState *dev, qemu_irq_handler handler, int n);
|
||||
|
|
|
@ -410,7 +410,7 @@ static TypeInfo s390_virtio_serial = {
|
|||
.class_init = s390_virtio_serial_class_init,
|
||||
};
|
||||
|
||||
static int s390_virtio_busdev_init(DeviceState *dev, DeviceInfo *info)
|
||||
static int s390_virtio_busdev_init(DeviceState *dev)
|
||||
{
|
||||
VirtIOS390Device *_dev = (VirtIOS390Device *)dev;
|
||||
VirtIOS390DeviceClass *_info = VIRTIO_S390_DEVICE_GET_CLASS(dev);
|
||||
|
|
|
@ -115,7 +115,7 @@ static void scsi_dma_restart_cb(void *opaque, int running, RunState state)
|
|||
}
|
||||
}
|
||||
|
||||
static int scsi_qdev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int scsi_qdev_init(DeviceState *qdev)
|
||||
{
|
||||
SCSIDevice *dev = SCSI_DEVICE(qdev);
|
||||
SCSIBus *bus = DO_UPCAST(SCSIBus, qbus, dev->qdev.parent_bus);
|
||||
|
|
|
@ -649,7 +649,7 @@ static int spapr_vio_check_reg(VIOsPAPRDevice *sdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int spapr_vio_busdev_init(DeviceState *qdev, DeviceInfo *qinfo)
|
||||
static int spapr_vio_busdev_init(DeviceState *qdev)
|
||||
{
|
||||
VIOsPAPRDevice *dev = (VIOsPAPRDevice *)qdev;
|
||||
VIOsPAPRDeviceClass *pc = VIO_SPAPR_DEVICE_GET_CLASS(dev);
|
||||
|
|
2
hw/ssi.c
2
hw/ssi.c
|
@ -21,7 +21,7 @@ static struct BusInfo ssi_bus_info = {
|
|||
.size = sizeof(SSIBus),
|
||||
};
|
||||
|
||||
static int ssi_slave_init(DeviceState *dev, DeviceInfo *base_info)
|
||||
static int ssi_slave_init(DeviceState *dev)
|
||||
{
|
||||
SSISlave *s = SSI_SLAVE(dev);
|
||||
SSISlaveClass *ssc = SSI_SLAVE_GET_CLASS(s);
|
||||
|
|
|
@ -105,7 +105,7 @@ void sysbus_init_ioports(SysBusDevice *dev, pio_addr_t ioport, pio_addr_t size)
|
|||
}
|
||||
}
|
||||
|
||||
static int sysbus_device_init(DeviceState *dev, DeviceInfo *base)
|
||||
static int sysbus_device_init(DeviceState *dev)
|
||||
{
|
||||
SysBusDevice *sd = SYS_BUS_DEVICE(dev);
|
||||
SysBusDeviceClass *sbc = SYS_BUS_DEVICE_GET_CLASS(sd);
|
||||
|
|
|
@ -156,7 +156,7 @@ void usb_device_set_interface(USBDevice *dev, int interface,
|
|||
}
|
||||
}
|
||||
|
||||
static int usb_qdev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int usb_qdev_init(DeviceState *qdev)
|
||||
{
|
||||
USBDevice *dev = USB_DEVICE(qdev);
|
||||
int rc;
|
||||
|
|
|
@ -1161,7 +1161,7 @@ static int ccid_card_exit(DeviceState *qdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int ccid_card_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int ccid_card_init(DeviceState *qdev)
|
||||
{
|
||||
CCIDCardState *card = CCID_CARD(qdev);
|
||||
USBCCIDState *s =
|
||||
|
|
|
@ -748,7 +748,7 @@ static void remove_port(VirtIOSerial *vser, uint32_t port_id)
|
|||
send_control_event(port, VIRTIO_CONSOLE_PORT_REMOVE, 1);
|
||||
}
|
||||
|
||||
static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base)
|
||||
static int virtser_port_qdev_init(DeviceState *qdev)
|
||||
{
|
||||
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev);
|
||||
VirtIOSerialPortClass *vsc = VIRTIO_SERIAL_PORT_GET_CLASS(port);
|
||||
|
|
Loading…
Reference in New Issue