With the multi-target work, the goal is to move to a single unified QOM tree that applies universally across all targets. This complements the migration away from instance level properties to class level properties, which again aims to ensure a fixed QOM object model for each class.
This requires that properties are either unconditionally registered in the class, with invalid options rejected at runtime (for example, during realize()), or that distinct subclasses are used for specialized use cases that need a distinct impl for some targets. Also access target_big_endian is not allowed in class_init, so we can default it to 'unspecified', then call target_big_endian under realize() v1: https://lore.kernel.org/qemu-devel/[email protected]/ Yonggang Luo (4): hw/pci: Avoid guard loadparm with target_s390x() for s390x in class_init hw/scsi: Avoid guard loadparm with target_s390x() for s390x in class_init hw/virtio/virtio-mem: Avoid call to target_info() in class_init hw/microblaze: defer PetaLogix endianness default until init hw/microblaze/petalogix_s3adsp1800_mmu.c | 11 ++++++++--- hw/pci/pci.c | 18 ++++++++++-------- hw/scsi/scsi-disk.c | 18 ++++++++++-------- hw/virtio/virtio-mem.c | 12 +++++------- 4 files changed, 33 insertions(+), 26 deletions(-) -- 2.55.0.windows.3
