From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52971) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WsVmE-0000m4-Th for qemu-devel@nongnu.org; Thu, 05 Jun 2014 07:24:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WsVm4-0003OC-NH for qemu-devel@nongnu.org; Thu, 05 Jun 2014 07:24:10 -0400 Received: from mail-wg0-x22e.google.com ([2a00:1450:400c:c00::22e]:40650) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WsVm4-0003No-GF for qemu-devel@nongnu.org; Thu, 05 Jun 2014 07:24:00 -0400 Received: by mail-wg0-f46.google.com with SMTP id b13so709047wgh.29 for ; Thu, 05 Jun 2014 04:23:59 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Thu, 5 Jun 2014 13:23:53 +0200 Message-Id: <1401967435-17751-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [RFC PATCH 0/2] qom: custom link properties List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.crosthwaite@xilinx.com, mtosatti@redhat.com, afaerber@suse.de 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