qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com
Subject: [Qemu-devel] [PATCH v3 00/17] qapi: add #if pre-processor conditions to generated code (part 3)
Date: Wed,  6 Feb 2019 19:17:08 +0100	[thread overview]
Message-ID: <20190206181725.14337-1-armbru@redhat.com> (raw)

Marc-André posted a v1 that relies on a QAPI schema language extension
'top-unit' to permit splitting the generated code.  Here is his cover
letter:

    The thrid and last part (of "[PATCH v2 00/54] qapi: add #if
    pre-processor conditions to generated code") is about adding schema
    conditions based on the target.

    For now, the qapi code is compiled in common objects (common to all
    targets). This makes it impossible to add #if TARGET_ARM for example.

    The patch "RFC: qapi: learn to split the schema by 'top-unit'"
    proposes to split the schema by "top-unit", so that generated code can
    be built either in common objects or per-target. That patch is a bit
    rough, I would like to get some feedback about the approach before
    trying to improve it. The following patches demonstrate usage of
    target-based #if conditions, and getting rid of the
    qmp_unregister_command() hack.

We already have a way to split generated code: QAPI modules.  I took
the liberty to rework Marc-André's series to use a target module
instead.  Less code, no change to the QAPI language.

v3:
* PATCH v2 01+02 have been merged
* PATCH 01-04: New
* PATCH 05: Rebase of PATCH v2 03
* PATCH 06-17: Trivially rebased, R-by and such retained

Marc-André Lureau (9):
  build-sys: move qmp-introspect per target
  qapi: make rtc-reset-reinjection and SEV depend on TARGET_I386
  qapi: make s390 commands depend on TARGET_S390X
  target.json: add a note about query-cpu* not being s390x-specific
  qapi: make query-gic-capabilities depend on TARGET_ARM
  qapi: make query-cpu-model-expansion depend on s390 or x86
  qapi: make query-cpu-definitions depend on specific targets
  qapi: remove qmp_unregister_command()
  qapi: move RTC_CHANGE to the target schema

Markus Armbruster (8):
  qapi: Belatedly document modular code generation
  qapi: Fix up documentation for recent commit a95291007b2
  qapi: Clean up modular built-in code generation a bit
  qapi: Prepare for system modules other than 'builtin'
  qapi: Generate QAPIEvent stuff into separate files
  qapi: New module target.json
  Revert "qapi-events: add 'if' condition to implicit event enum"
  qmp: Deprecate query-events in favor of query-qmp-schema

 .gitignore                               |   1 +
 Makefile                                 |   1 +
 Makefile.objs                            |  23 +-
 Makefile.target                          |  12 +
 docs/devel/qapi-code-gen.txt             |  82 +++-
 hw/ppc/spapr_rtc.c                       |   2 +-
 hw/s390x/s390-skeys.c                    |   2 +-
 hw/timer/mc146818rtc.c                   |   4 +-
 include/qapi/qmp/dispatch.h              |   1 -
 include/sysemu/arch_init.h               |  11 -
 monitor.c                                |  88 +---
 qapi/misc.json                           | 485 +--------------------
 qapi/qapi-schema.json                    |   1 +
 qapi/qmp-registry.c                      |   8 -
 qapi/target.json                         | 514 +++++++++++++++++++++++
 qemu-deprecated.texi                     |   5 +
 qmp.c                                    |  26 --
 scripts/qapi/commands.py                 |   2 +-
 scripts/qapi/common.py                   |  55 ++-
 scripts/qapi/events.py                   |  38 +-
 scripts/qapi/types.py                    |   4 +-
 scripts/qapi/visit.py                    |   4 +-
 stubs/Makefile.objs                      |   4 -
 stubs/arch-query-cpu-def.c               |  11 -
 stubs/arch-query-cpu-model-baseline.c    |  13 -
 stubs/arch-query-cpu-model-comparison.c  |  13 -
 stubs/arch-query-cpu-model-expansion.c   |  13 -
 stubs/monitor.c                          |   2 +-
 target/arm/helper.c                      |   3 +-
 target/arm/monitor.c                     |   2 +-
 target/i386/cpu.c                        |   7 +-
 target/i386/sev_i386.h                   |   2 +-
 target/ppc/translate_init.inc.c          |   3 +-
 target/s390x/cpu_models.c                |   9 +-
 tests/qapi-schema/comments.out           |   1 +
 tests/qapi-schema/doc-bad-section.out    |   1 +
 tests/qapi-schema/doc-good.out           |   1 +
 tests/qapi-schema/empty.out              |   1 +
 tests/qapi-schema/event-case.out         |   1 +
 tests/qapi-schema/ident-with-escape.out  |   1 +
 tests/qapi-schema/include-relpath.out    |   1 +
 tests/qapi-schema/include-repetition.out |   1 +
 tests/qapi-schema/include-simple.out     |   1 +
 tests/qapi-schema/indented-expr.out      |   1 +
 tests/qapi-schema/qapi-schema-test.out   |   1 +
 tests/test-qmp-event.c                   |   1 +
 tests/test-qobject-input-visitor.c       |   1 -
 ui/vnc.c                                 |   3 +-
 48 files changed, 730 insertions(+), 737 deletions(-)
 create mode 100644 qapi/target.json
 delete mode 100644 stubs/arch-query-cpu-def.c
 delete mode 100644 stubs/arch-query-cpu-model-baseline.c
 delete mode 100644 stubs/arch-query-cpu-model-comparison.c
 delete mode 100644 stubs/arch-query-cpu-model-expansion.c

-- 
2.17.2

             reply	other threads:[~2019-02-06 18:17 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-06 18:17 Markus Armbruster [this message]
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 01/17] qapi: Belatedly document modular code generation Markus Armbruster
2019-02-06 18:26   ` Marc-André Lureau
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 02/17] qapi: Fix up documentation for recent commit a95291007b2 Markus Armbruster
2019-02-06 18:19   ` Marc-André Lureau
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 03/17] qapi: Clean up modular built-in code generation a bit Markus Armbruster
2019-02-07 11:15   ` Marc-André Lureau
2019-02-07 12:46     ` Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 04/17] qapi: Prepare for system modules other than 'builtin' Markus Armbruster
2019-02-07 11:16   ` Marc-André Lureau
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 05/17] qapi: Generate QAPIEvent stuff into separate files Markus Armbruster
2019-02-07 11:16   ` Marc-André Lureau
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 06/17] build-sys: move qmp-introspect per target Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 07/17] qapi: New module target.json Markus Armbruster
2019-02-07 11:16   ` Marc-André Lureau
2019-02-07 14:58   ` Eric Blake
2019-02-07 16:32     ` Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 08/17] qapi: make rtc-reset-reinjection and SEV depend on TARGET_I386 Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 09/17] qapi: make s390 commands depend on TARGET_S390X Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 10/17] target.json: add a note about query-cpu* not being s390x-specific Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 11/17] qapi: make query-gic-capabilities depend on TARGET_ARM Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 12/17] qapi: make query-cpu-model-expansion depend on s390 or x86 Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 13/17] qapi: make query-cpu-definitions depend on specific targets Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 14/17] qapi: remove qmp_unregister_command() Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 15/17] Revert "qapi-events: add 'if' condition to implicit event enum" Markus Armbruster
2019-02-06 18:30   ` Marc-André Lureau
2019-02-06 20:08     ` Markus Armbruster
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 16/17] qmp: Deprecate query-events in favor of query-qmp-schema Markus Armbruster
2019-02-06 18:42   ` Eric Blake
2019-02-07 12:29     ` [Qemu-devel] [libvirt] " Peter Krempa
2019-02-07 13:46       ` Markus Armbruster
2019-02-08 11:17         ` Peter Krempa
2019-02-07 11:19   ` [Qemu-devel] " Marc-André Lureau
2019-02-06 18:17 ` [Qemu-devel] [PATCH v3 17/17] qapi: move RTC_CHANGE to the target schema Markus Armbruster
2019-02-06 18:40   ` Eric Blake
2019-02-06 20:09     ` Markus Armbruster

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=20190206181725.14337-1-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --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).