From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com
Subject: [Qemu-devel] [RFC PATCH v2 00/15] qapi: add #if pre-processor conditions to generated code (part 3)
Date: Tue, 18 Dec 2018 19:22:19 +0100 [thread overview]
Message-ID: <20181218182234.28876-1-armbru@redhat.com> (raw)
Marc-André posted 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.
One of the patches (marked WIP) is a total hack. Fixable, but I want
to get this out for discussion first.
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 (6):
qapi: Belatedly update docs for commit 9c2f56e9f9d
qapi: Eliminate indirection through qmp_event_get_func_emit()
qapi: Generate QAPIEvent stuff into separate files WIP
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
Makefile | 1 +
Makefile.objs | 22 +-
Makefile.target | 12 +
docs/devel/qapi-code-gen.txt | 12 +-
hw/ppc/spapr_rtc.c | 2 +-
hw/s390x/s390-skeys.c | 2 +-
hw/timer/mc146818rtc.c | 4 +-
include/qapi/qmp-event.h | 6 -
include/qapi/qmp/dispatch.h | 1 -
include/sysemu/arch_init.h | 11 -
monitor.c | 92 +----
qapi/misc.json | 485 +---------------------
qapi/qapi-schema.json | 1 +
qapi/qmp-event.c | 12 -
qapi/qmp-registry.c | 8 -
qapi/target.json | 514 ++++++++++++++++++++++++
qemu-deprecated.texi | 5 +
qmp.c | 26 --
scripts/qapi/events.py | 51 ++-
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 | 5 +
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/Makefile.include | 4 +-
tests/test-qmp-event.c | 7 +-
tests/test-qobject-input-visitor.c | 1 -
ui/vnc.c | 3 +-
35 files changed, 623 insertions(+), 744 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
next reply other threads:[~2018-12-18 18:22 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-18 18:22 Markus Armbruster [this message]
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 01/15] qapi: Belatedly update docs for commit 9c2f56e9f9d Markus Armbruster
2018-12-18 19:04 ` Marc-André Lureau
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 02/15] qapi: Eliminate indirection through qmp_event_get_func_emit() Markus Armbruster
2018-12-18 19:26 ` Marc-André Lureau
2018-12-18 19:56 ` Eric Blake
2018-12-19 6:56 ` Markus Armbruster
2019-01-11 15:28 ` Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 03/15] qapi: Generate QAPIEvent stuff into separate files WIP Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 04/15] build-sys: move qmp-introspect per target Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 05/15] qapi: New module target.json Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 06/15] qapi: make rtc-reset-reinjection and SEV depend on TARGET_I386 Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 07/15] qapi: make s390 commands depend on TARGET_S390X Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 08/15] target.json: add a note about query-cpu* not being s390x-specific Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 09/15] qapi: make query-gic-capabilities depend on TARGET_ARM Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 10/15] qapi: make query-cpu-model-expansion depend on s390 or x86 Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 11/15] qapi: make query-cpu-definitions depend on specific targets Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 12/15] qapi: remove qmp_unregister_command() Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 13/15] Revert "qapi-events: add 'if' condition to implicit event enum" Markus Armbruster
2018-12-18 19:37 ` Marc-André Lureau
2018-12-19 8:40 ` Markus Armbruster
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 14/15] qmp: Deprecate query-events in favor of query-qmp-schema Markus Armbruster
2018-12-18 19:39 ` Marc-André Lureau
2018-12-18 18:22 ` [Qemu-devel] [RFC PATCH v2 15/15] qapi: move RTC_CHANGE to the target schema Markus Armbruster
2018-12-18 20:35 ` [Qemu-devel] [RFC PATCH v2 00/15] qapi: add #if pre-processor conditions to generated code (part 3) Marc-André Lureau
2018-12-19 8:57 ` Markus Armbruster
2019-01-24 14:36 ` 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=20181218182234.28876-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).