From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com,
devel@lists.libvirt.org, eblake@redhat.com
Subject: [PATCH 3/4] qapi/char: Make backend types properly conditional
Date: Sat, 3 Feb 2024 09:02:27 +0100 [thread overview]
Message-ID: <20240203080228.2766159-4-armbru@redhat.com> (raw)
In-Reply-To: <20240203080228.2766159-1-armbru@redhat.com>
Character backends are actually QOM types. When a backend's
compile-time conditional QOM type is not compiled in, creation fails
with "'FOO' is not a valid char driver name". Okay, except
introspecting chardev-add with query-qmp-schema doesn't work then: the
backend type is there even though the QOM type isn't.
A management application can work around this issue by using
qom-list-types instead.
Fix the issue anyway: add the conditionals to the QAPI schema.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
qapi/char.json | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/qapi/char.json b/qapi/char.json
index 6c6ad3b10c..2d74e66746 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -472,8 +472,8 @@
##
{ 'enum': 'ChardevBackendKind',
'data': [ 'file',
- 'serial',
- 'parallel',
+ { 'name': 'serial', 'if': 'HAVE_CHARDEV_SERIAL' },
+ { 'name': 'parallel', 'if': 'HAVE_CHARDEV_PARALLEL' },
'pipe',
'socket',
'udp',
@@ -482,10 +482,10 @@
'mux',
'msmouse',
'wctablet',
- 'braille',
+ { 'name': 'braille', 'if': 'CONFIG_BRLAPI' },
'testdev',
'stdio',
- 'console',
+ { 'name': 'console', 'if': 'CONFIG_WIN32' },
{ 'name': 'spicevmc', 'if': 'CONFIG_SPICE' },
{ 'name': 'spiceport', 'if': 'CONFIG_SPICE' },
{ 'name': 'qemu-vdagent', 'if': 'CONFIG_SPICE_PROTOCOL' },
@@ -614,8 +614,10 @@
'base': { 'type': 'ChardevBackendKind' },
'discriminator': 'type',
'data': { 'file': 'ChardevFileWrapper',
- 'serial': 'ChardevHostdevWrapper',
- 'parallel': 'ChardevHostdevWrapper',
+ 'serial': { 'type': 'ChardevHostdevWrapper',
+ 'if': 'HAVE_CHARDEV_SERIAL' },
+ 'parallel': { 'type': 'ChardevHostdevWrapper',
+ 'if': 'HAVE_CHARDEV_PARALLEL' },
'pipe': 'ChardevHostdevWrapper',
'socket': 'ChardevSocketWrapper',
'udp': 'ChardevUdpWrapper',
@@ -624,10 +626,12 @@
'mux': 'ChardevMuxWrapper',
'msmouse': 'ChardevCommonWrapper',
'wctablet': 'ChardevCommonWrapper',
- 'braille': 'ChardevCommonWrapper',
+ 'braille': { 'type': 'ChardevCommonWrapper',
+ 'if': 'CONFIG_BRLAPI' },
'testdev': 'ChardevCommonWrapper',
'stdio': 'ChardevStdioWrapper',
- 'console': 'ChardevCommonWrapper',
+ 'console': { 'type': 'ChardevCommonWrapper',
+ 'if': 'CONFIG_WIN32' },
'spicevmc': { 'type': 'ChardevSpiceChannelWrapper',
'if': 'CONFIG_SPICE' },
'spiceport': { 'type': 'ChardevSpicePortWrapper',
--
2.43.0
next prev parent reply other threads:[~2024-02-03 8:03 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-03 8:02 [PATCH 0/4] char: Minor fixes, and a tighter QAPI schema Markus Armbruster
2024-02-03 8:02 ` [PATCH 1/4] chardev/parallel: Don't close stdin on inappropriate device Markus Armbruster
2024-02-07 19:15 ` Eric Blake
2024-02-08 6:52 ` Markus Armbruster
2024-02-13 13:58 ` Markus Armbruster
2024-02-13 18:25 ` Marc-André Lureau
2024-02-03 8:02 ` [PATCH 2/4] tests/unit/test-char: Fix qemu_socket(), make_udp_socket() check Markus Armbruster
2024-02-07 19:45 ` Eric Blake
2024-02-08 6:52 ` Markus Armbruster
2024-02-03 8:02 ` Markus Armbruster [this message]
2024-02-07 19:47 ` [PATCH 3/4] qapi/char: Make backend types properly conditional Eric Blake
2024-02-03 8:02 ` [PATCH 4/4] qapi/char: Deprecate backend type "memory" Markus Armbruster
2024-02-05 9:37 ` Ján Tomko
2024-02-07 19:48 ` Eric Blake
2024-02-03 11:07 ` [PATCH 0/4] char: Minor fixes, and a tighter QAPI schema Marc-André Lureau
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=20240203080228.2766159-4-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=devel@lists.libvirt.org \
--cc=eblake@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@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).