qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Andreas Färber" <afaerber@suse.de>,
	"Anthony Liguori" <aliguori@amazon.com>,
	patches@linaro.org
Subject: [Qemu-devel] [PATCH v2 0/4] Allow QOM struct fields to be marked as private
Date: Fri,  9 May 2014 16:56:00 +0100	[thread overview]
Message-ID: <1399650964-21067-1-git-send-email-peter.maydell@linaro.org> (raw)

This patch series provides infrastructure and documentation
for marking QOM struct fields as private to the class implementation.

Patch 1 is the implementation (which is a trivial five lines!) and
documentation of the code pattern that it's intended to be used with.

Patches 2, 3 and 4 are examples of its use: patch 2 deals with
the ARM GIC classes, as an example of a largish class with some
subclasses. Patches 3 and 4 are conversions of much simpler and
smaller devices, so might be easier to look at first.

A .h file which uses this pattern ends up with half a dozen
extra lines of boilerplate, which is slightly sad but not too
awful. It would be pretty easy to autogenerate (along with the
type macros themselves) if we decided to do that in future, though.

Example of the compiler message if you try to touch a field
which is private:
 arm_gic_kvm.c:559:5: error: ‘iomem’ is deprecated (declared at /root/qemu/include/hw/intc/arm_gic_common.h:105): this field is private [-Werror=deprecated-declarations]


Changes since the RFC back in July last year:
 * name the macro 'qom_private' rather than '__private'
 * redid patch 2 as the GIC code has been rearranged somewhat
 * patches 3 and 4 are new

Peter Maydell (4):
  Provide infrastructure for marking private QOM struct fields
  arm_gic: Use new qom_private macro to mark private fields
  a9scu: Use qom_private to mark private fields
  arm11scu: Use qom_private to mark private fields

 hw/intc/arm_gic.c                |  3 ++
 hw/intc/arm_gic_common.c         |  2 ++
 hw/intc/arm_gic_kvm.c            |  2 ++
 hw/intc/armv7m_nvic.c            |  2 ++
 hw/misc/a9scu.c                  |  2 ++
 hw/misc/arm11scu.c               |  2 ++
 include/hw/intc/arm_gic.h        | 12 ++++++--
 include/hw/intc/arm_gic_common.h | 62 +++++++++++++++++++++++-----------------
 include/hw/misc/a9scu.h          | 16 +++++++----
 include/hw/misc/arm11scu.h       | 14 ++++++---
 include/qemu/compiler.h          | 10 +++++++
 include/qom/object.h             | 47 ++++++++++++++++++++++++++++++
 12 files changed, 136 insertions(+), 38 deletions(-)

-- 
1.9.2

             reply	other threads:[~2014-05-09 16:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-09 15:56 Peter Maydell [this message]
2014-05-09 15:56 ` [Qemu-devel] [PATCH v2 1/4] Provide infrastructure for marking private QOM struct fields Peter Maydell
2014-05-09 15:56 ` [Qemu-devel] [PATCH v2 2/4] arm_gic: Use new qom_private macro to mark private fields Peter Maydell
2014-05-09 15:56 ` [Qemu-devel] [PATCH v2 3/4] a9scu: Use qom_private " Peter Maydell
2014-05-09 15:56 ` [Qemu-devel] [PATCH v2 4/4] arm11scu: " Peter Maydell
2014-05-23 11:13 ` [Qemu-devel] [PATCH v2 0/4] Allow QOM struct fields to be marked as private Peter Maydell
2014-05-23 11:23   ` Andreas Färber
2014-05-23 11:50     ` Peter Maydell
2014-05-23 14:33       ` Paolo Bonzini
2014-05-23 16:21         ` Peter Maydell
2014-05-23 17:13           ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1399650964-21067-1-git-send-email-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=afaerber@suse.de \
    --cc=aliguori@amazon.com \
    --cc=patches@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).