Hi, QDEV_PROP_PTR is marked in multiple places as "FIXME/TODO/remove me". In most cases, it can be easily replaced with QDEV_PROP_LINK when the pointer points to an Object.
There are a few places where such substitution isn't possible. For those places, it seems reasonable to use a specific setter method instead, and keep the user_creatable = false. In other places, proper usage of qemu_irq is the solution. The serial code wasn't converted to qdev, which makes it a bit more archaic to deal with. Let's convert it first, so we can more easily embed it from other devices, and expose properties. v2: - qom-ify serial - embed the serial from sm501, and expose a "chardev" property - add "leon3: use qemu_irq framework instead of callback as property" - add "sparc: move PIL irq handling to cpu.c" - add "cris: improve passing PIC interrupt vector to the CPU" - misc comment/todo changes, add r-b tags Marc-André Lureau (28): chardev: generate an internal id when none given serial-pci-multi: factor out multi_serial_get_nr_ports serial: initial qom-ification serial: register vmsd with DeviceClass serial: add and set "chardev" property serial: make SerialMMState actually a different type serial: add and set "regshift" property serial: convert irq to qdev gpio properties serial: add "baudbase" property serial: add "base" property serial: realize the serial device serial: replace serial_exit_core() with unrealize serial: factor out serial_mm_connect sm501: embed the serial device vmmouse: replace PROP_PTR with PROP_LINK lance: replace PROP_PTR with PROP_LINK etraxfs: remove PROP_PTR usage dp8393x: replace PROP_PTR with PROP_LINK leon3: use qemu_irq framework instead of callback as property sparc: move PIL irq handling to cpu.c RFC: mips/cps: fix setting saar property cris: improve passing PIC interrupt vector to the CPU smbus-eeprom: remove PROP_PTR omap-intc: remove PROP_PTR omap-i2c: remove PROP_PTR omap-gpio: remove PROP_PTR qdev: remove PROP_MEMORY_REGION Remove QDEV_PROP_PTR chardev/char.c | 32 ++++++--- hw/arm/omap1.c | 8 +-- hw/arm/omap2.c | 25 +++---- hw/char/serial-isa.c | 11 ++- hw/char/serial-pci-multi.c | 45 +++++++++---- hw/char/serial-pci.c | 17 ++++- hw/char/serial.c | 127 +++++++++++++++++++++++++++-------- hw/core/qdev-properties.c | 18 ----- hw/cris/axis_dev88.c | 4 -- hw/display/sm501.c | 27 +++++--- hw/dma/sparc32_dma.c | 2 +- hw/gpio/omap_gpio.c | 42 +++++------- hw/i2c/omap_i2c.c | 19 ++++-- hw/i2c/smbus_eeprom.c | 17 +++-- hw/i386/pc.c | 6 +- hw/i386/vmmouse.c | 8 +-- hw/input/pckbd.c | 8 +-- hw/intc/etraxfs_pic.c | 26 +------ hw/intc/grlib_irqmp.c | 35 ++-------- hw/intc/omap_intc.c | 17 +++-- hw/mips/cps.c | 2 +- hw/mips/mips_jazz.c | 3 +- hw/net/dp8393x.c | 7 +- hw/net/etraxfs_eth.c | 44 +++++++++--- hw/net/lance.c | 5 +- hw/net/pcnet-pci.c | 2 +- hw/net/pcnet.h | 2 +- hw/sh4/r2d.c | 2 +- hw/sparc/leon3.c | 38 +---------- hw/sparc/trace-events | 4 -- include/hw/arm/omap.h | 52 ++++++++++++++ include/hw/char/serial.h | 25 +++++-- include/hw/cris/etraxfs.h | 20 +----- include/hw/input/i8042.h | 4 +- include/hw/qdev-properties.h | 24 ------- include/qemu/id.h | 1 + target/cris/cpu.c | 8 +++ target/cris/cpu.h | 1 + target/sparc/cpu.c | 39 +++++++++++ target/sparc/cpu.h | 1 + target/sparc/trace-events | 4 ++ util/id.c | 1 + 42 files changed, 451 insertions(+), 332 deletions(-) -- 2.23.0.606.g08da6496b6