diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2018-12-06 00:37:33 +0400 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2018-12-12 09:55:57 +0100 |
commit | 9ac3788b0be368e2826a8e9adadc1ada87d89273 (patch) | |
tree | a91ff23c71736ba9d91377b0a066ab6fa71364fc /include/chardev | |
parent | ef12a703b7d4894a851cbf3e94cca8fa25fc43f2 (diff) | |
download | qemu-9ac3788b0be368e2826a8e9adadc1ada87d89273.zip qemu-9ac3788b0be368e2826a8e9adadc1ada87d89273.tar.gz qemu-9ac3788b0be368e2826a8e9adadc1ada87d89273.tar.bz2 |
char: add a QEMU_CHAR_FEATURE_GCONTEXT flag
QEMU_CHAR_FEATURE_GCONTEXT declares the character device can switch
GMainContext.
Assert we don't switch context when the character device doesn't
provide this feature. Character device users must not violate this
restriction. In particular, user configurations that violate them
must be rejected.
Existing frontend that rely on context switching would now assert() if
the backend doesn't allow it (instead of silently producing undesired
events in the default context). Following patches improve the
situation by reporting an error earlier instead, on the frontend side.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20181205203737.9011-4-marcandre.lureau@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'include/chardev')
-rw-r--r-- | include/chardev/char.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/chardev/char.h b/include/chardev/char.h index 7becd8c..014566c 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -47,6 +47,9 @@ typedef enum { QEMU_CHAR_FEATURE_FD_PASS, /* Whether replay or record mode is enabled */ QEMU_CHAR_FEATURE_REPLAY, + /* Whether the gcontext can be changed after calling + * qemu_chr_be_update_read_handlers() */ + QEMU_CHAR_FEATURE_GCONTEXT, QEMU_CHAR_FEATURE_LAST, } ChardevFeature; |