Message ID | 1457021813-10704-10-git-send-email-eblake@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Eric Blake <eblake@redhat.com> writes: > Commit d0d7708b made ChardevDummy be an empty wrapper type around > ChardevCommon. But there is no technical reason for this indirection, > so simplify the code by directly using the base type. > > Also change the fallback assignment to assign u.null rather than > u.data, since a future patch will remove the data member of the C > struct generated for QAPI unions. > > Signed-off-by: Eric Blake <eblake@redhat.com> > Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Doesn't compile with MinGW: qemu/qemu-char.c: In function 'qemu_chr_open_win_con': qemu/qemu-char.c:2186:29: warning: implicit declaration of function 'qapi_ChardevDummy_base' [-Wimplicit-function-declaration] ChardevCommon *common = qapi_ChardevDummy_base(backend->u.console); ^ qemu/qemu-char.c:2186:5: warning: nested extern declaration of 'qapi_ChardevDummy_base' [-Wnested-externs] ChardevCommon *common = qapi_ChardevDummy_base(backend->u.console); ^ qemu/qemu-char.c:2186:29: warning: initialization makes pointer from integer without a cast [-Wint-conversion] ChardevCommon *common = qapi_ChardevDummy_base(backend->u.console); ^
On 03/04/2016 07:40 AM, Markus Armbruster wrote: > Eric Blake <eblake@redhat.com> writes: > >> Commit d0d7708b made ChardevDummy be an empty wrapper type around >> ChardevCommon. But there is no technical reason for this indirection, >> so simplify the code by directly using the base type. >> >> Also change the fallback assignment to assign u.null rather than >> u.data, since a future patch will remove the data member of the C >> struct generated for QAPI unions. >> >> Signed-off-by: Eric Blake <eblake@redhat.com> >> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> > > Doesn't compile with MinGW: > > qemu/qemu-char.c: In function 'qemu_chr_open_win_con': > qemu/qemu-char.c:2186:29: warning: implicit declaration of function 'qapi_ChardevDummy_base' [-Wimplicit-function-declaration] > ChardevCommon *common = qapi_ChardevDummy_base(backend->u.console); > ^ The curse of not compiling all the backends, and failing to grep for ChardevDummy. Replacement patch coming up soon.
diff --git a/backends/baum.c b/backends/baum.c index 374562a..c11320e 100644 --- a/backends/baum.c +++ b/backends/baum.c @@ -567,7 +567,7 @@ static CharDriverState *chr_baum_init(const char *id, ChardevReturn *ret, Error **errp) { - ChardevCommon *common = qapi_ChardevDummy_base(backend->u.braille); + ChardevCommon *common = backend->u.braille; BaumDriverState *baum; CharDriverState *chr; brlapi_handle_t *handle; diff --git a/backends/msmouse.c b/backends/msmouse.c index 9a82efd..5e1833c 100644 --- a/backends/msmouse.c +++ b/backends/msmouse.c @@ -68,7 +68,7 @@ static CharDriverState *qemu_chr_open_msmouse(const char *id, ChardevReturn *ret, Error **errp) { - ChardevCommon *common = qapi_ChardevDummy_base(backend->u.msmouse); + ChardevCommon *common = backend->u.msmouse; CharDriverState *chr; chr = qemu_chr_alloc(common, errp); diff --git a/qemu-char.c b/qemu-char.c index af31102..6eb10e6 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -420,7 +420,7 @@ static CharDriverState *qemu_chr_open_null(const char *id, Error **errp) { CharDriverState *chr; - ChardevCommon *common = qapi_ChardevDummy_base(backend->u.null); + ChardevCommon *common = backend->u.null; chr = qemu_chr_alloc(common, errp); if (!chr) { @@ -1366,7 +1366,7 @@ static CharDriverState *qemu_chr_open_pty(const char *id, PtyCharDriver *s; int master_fd, slave_fd; char pty_name[PATH_MAX]; - ChardevCommon *common = qapi_ChardevDummy_base(backend->u.pty); + ChardevCommon *common = backend->u.pty; master_fd = qemu_openpty_raw(&slave_fd, pty_name); if (master_fd < 0) { @@ -3817,7 +3817,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts, } else { ChardevCommon *cc = g_new0(ChardevCommon, 1); qemu_chr_parse_common(opts, cc); - backend->u.data = cc; + backend->u.null = cc; /* Any ChardevCommon member would work */ } ret = qmp_chardev_add(bid ? bid : id, backend, errp); diff --git a/qapi-schema.json b/qapi-schema.json index 42fd61b..362c9d8 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3323,23 +3323,20 @@ # # Since: 1.4 (testdev since 2.2) ## -{ 'struct': 'ChardevDummy', 'data': { }, - 'base': 'ChardevCommon' } - { 'union': 'ChardevBackend', 'data': { 'file' : 'ChardevFile', 'serial' : 'ChardevHostdev', 'parallel': 'ChardevHostdev', 'pipe' : 'ChardevHostdev', 'socket' : 'ChardevSocket', 'udp' : 'ChardevUdp', - 'pty' : 'ChardevDummy', - 'null' : 'ChardevDummy', + 'pty' : 'ChardevCommon', + 'null' : 'ChardevCommon', 'mux' : 'ChardevMux', - 'msmouse': 'ChardevDummy', - 'braille': 'ChardevDummy', - 'testdev': 'ChardevDummy', + 'msmouse': 'ChardevCommon', + 'braille': 'ChardevCommon', + 'testdev': 'ChardevCommon', 'stdio' : 'ChardevStdio', - 'console': 'ChardevDummy', + 'console': 'ChardevCommon', 'spicevmc' : 'ChardevSpiceChannel', 'spiceport' : 'ChardevSpicePort', 'vc' : 'ChardevVC',