Both Marcelo's rtc patches and Peter's MemoryRegion patches showed the interest in having link properties with a custom representation and/or a different way to store the property.
Such properties would still be link<>s for the outside world, but the internal implementation in QEMU would be different. This series proposes a way to introduce such custom link properties, using a new property callback "resolve" that generalizes the if/else ladder in object_resolve_path_component. The second patch shows how the mechanism could be used to add a simple immutable "alias" link. Example: $ ./qom-list -s /tmp/m1 /machine @rtc/ # this is an alias i440fx/ fw_cfg/ icc-bridge/ unattached/ peripheral/ peripheral-anon/ ... $ ./qom-get -s /tmp/m1 /machine.rtc /machine/unattached/device[8] # later could become /machine/piix3/rtc # or /machine/ich9/rtc and so on $ ./qom-get -s /tmp/m1 /machine/rtc.date tm_sec: 58 tm_hour: 11 tm_mday: 5 tm_year: 114 tm_mon: 5 tm_min: 16 Paolo Paolo Bonzini (2): qom: add a generic mechanism to resolve paths qom: add object_property_add_alias include/qom/object.h | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ qom/object.c | 68 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 123 insertions(+), 19 deletions(-) -- 1.8.3.1