diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2019-02-18 14:23:13 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2019-02-18 14:23:13 +0000 |
| commit | a0430dd8abb8a2f31c5ee919daab2e3d76353c04 (patch) | |
| tree | 601f2da2585768ec18e5201bda9acbf0c0bbe021 /docs/devel | |
| parent | 1c5d9d8f111b9cfc0722c7edcdc3b090736972e5 (diff) | |
| parent | 183e4281a30962729b760dfe8bed5aab27238b0c (diff) | |
| download | focaccia-qemu-a0430dd8abb8a2f31c5ee919daab2e3d76353c04.tar.gz focaccia-qemu-a0430dd8abb8a2f31c5ee919daab2e3d76353c04.zip | |
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2019-02-18' into staging
QAPI patches for 2019-02-18 # gpg: Signature made Mon 18 Feb 2019 13:44:30 GMT # gpg: using RSA key 3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-qapi-2019-02-18: qapi: move RTC_CHANGE to the target schema qmp: Deprecate query-events in favor of query-qmp-schema Revert "qapi-events: add 'if' condition to implicit event enum" qapi: remove qmp_unregister_command() qapi: make query-cpu-definitions depend on specific targets qapi: make query-cpu-model-expansion depend on s390 or x86 qapi: make query-gic-capabilities depend on TARGET_ARM target.json: add a note about query-cpu* not being s390x-specific qapi: make s390 commands depend on TARGET_S390X qapi: make rtc-reset-reinjection and SEV depend on TARGET_I386 qapi: New module target.json build: Deal with all of QAPI's .o in qapi/Makefile.objs build-sys: move qmp-introspect per target qapi: Generate QAPIEvent stuff into separate files qapi: Prepare for system modules other than 'builtin' qapi: Clean up modular built-in code generation a bit qapi: Fix up documentation for recent commit a95291007b2 qapi: Belatedly document modular code generation Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'docs/devel')
| -rw-r--r-- | docs/devel/qapi-code-gen.txt | 82 |
1 files changed, 69 insertions, 13 deletions
diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt index 87183d3a09..b517b0cfbf 100644 --- a/docs/devel/qapi-code-gen.txt +++ b/docs/devel/qapi-code-gen.txt @@ -1113,6 +1113,19 @@ Example: [Uninteresting stuff omitted...] +For a modular QAPI schema (see section Include directives), code for +each sub-module SUBDIR/SUBMODULE.json is actually generated into + +SUBDIR/$(prefix)qapi-types-SUBMODULE.h +SUBDIR/$(prefix)qapi-types-SUBMODULE.c + +If qapi-gen.py is run with option --builtins, additional files are +created: + +qapi-builtin-types.h - C types corresponding to built-in types + +qapi-builtin-types.c - Cleanup functions for the above C types + === Code generated for visiting QAPI types === These are the visitor functions used to walk through and convert @@ -1244,6 +1257,19 @@ Example: [Uninteresting stuff omitted...] +For a modular QAPI schema (see section Include directives), code for +each sub-module SUBDIR/SUBMODULE.json is actually generated into + +SUBDIR/$(prefix)qapi-visit-SUBMODULE.h +SUBDIR/$(prefix)qapi-visit-SUBMODULE.c + +If qapi-gen.py is run with option --builtins, additional files are +created: + +qapi-builtin-visit.h - Visitor functions for built-in types + +qapi-builtin-visit.c - Declarations for these visitor functions + === Code generated for commands === These are the marshaling/dispatch functions for the commands defined @@ -1342,6 +1368,12 @@ Example: [Uninteresting stuff omitted...] +For a modular QAPI schema (see section Include directives), code for +each sub-module SUBDIR/SUBMODULE.json is actually generated into + +SUBDIR/$(prefix)qapi-commands-SUBMODULE.h +SUBDIR/$(prefix)qapi-commands-SUBMODULE.c + === Code generated for events === This is the code related to events defined in the schema, providing @@ -1349,11 +1381,15 @@ qapi_event_send_EVENT(). The following files are created: -$(prefix)qapi-events.h - Function prototypes for each event type, plus an - enumeration of all event names +$(prefix)qapi-events.h - Function prototypes for each event type $(prefix)qapi-events.c - Implementation of functions to send an event +$(prefix)qapi-emit-events.h - Enumeration of all event names, and + common event code declarations + +$(prefix)qapi-emit-events.c - Common event code definitions + Example: $ cat qapi-generated/example-qapi-events.h @@ -1365,19 +1401,8 @@ Example: #include "qapi/util.h" #include "example-qapi-types.h" - void qapi_event_send_my_event(void); - typedef enum example_QAPIEvent { - EXAMPLE_QAPI_EVENT_MY_EVENT, - EXAMPLE_QAPI_EVENT__MAX, - } example_QAPIEvent; - - #define example_QAPIEvent_str(val) \ - qapi_enum_lookup(&example_QAPIEvent_lookup, (val)) - - extern const QEnumLookup example_QAPIEvent_lookup; - #endif /* EXAMPLE_QAPI_EVENTS_H */ $ cat qapi-generated/example-qapi-events.c [Uninteresting stuff omitted...] @@ -1393,6 +1418,31 @@ Example: qobject_unref(qmp); } +[Uninteresting stuff omitted...] + $ cat qapi-generated/example-qapi-emit-events.h +[Uninteresting stuff omitted...] + + #ifndef EXAMPLE_QAPI_EMIT_EVENTS_H + #define EXAMPLE_QAPI_EMIT_EVENTS_H + + #include "qapi/util.h" + + typedef enum example_QAPIEvent { + EXAMPLE_QAPI_EVENT_MY_EVENT, + EXAMPLE_QAPI_EVENT__MAX, + } example_QAPIEvent; + + #define example_QAPIEvent_str(val) \ + qapi_enum_lookup(&example_QAPIEvent_lookup, (val)) + + extern const QEnumLookup example_QAPIEvent_lookup; + + void example_qapi_event_emit(example_QAPIEvent event, QDict *qdict); + + #endif /* EXAMPLE_QAPI_EMIT_EVENTS_H */ + $ cat qapi-generated/example-qapi-emit-events.c +[Uninteresting stuff omitted...] + const QEnumLookup example_QAPIEvent_lookup = { .array = (const char *const[]) { [EXAMPLE_QAPI_EVENT_MY_EVENT] = "MY_EVENT", @@ -1402,6 +1452,12 @@ Example: [Uninteresting stuff omitted...] +For a modular QAPI schema (see section Include directives), code for +each sub-module SUBDIR/SUBMODULE.json is actually generated into + +SUBDIR/$(prefix)qapi-events-SUBMODULE.h +SUBDIR/$(prefix)qapi-events-SUBMODULE.c + === Code generated for introspection === The following files are created: |