diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-10-22 13:09:37 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-10-24 15:46:10 +0200 |
commit | 830896afe3d0ba74f023faba88eac2b5ef91a11b (patch) | |
tree | b0e60b5214996e88e6da9f95acf9735ee639c7b0 | |
parent | 39ab61c6d0757ed95badc9315857effdb64e4aa0 (diff) | |
download | qemu-830896afe3d0ba74f023faba88eac2b5ef91a11b.zip qemu-830896afe3d0ba74f023faba88eac2b5ef91a11b.tar.gz qemu-830896afe3d0ba74f023faba88eac2b5ef91a11b.tar.bz2 |
char: move fe_open in CharBackend
The fe_open state belongs to front end.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20161022100951.19562-1-marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | include/sysemu/char.h | 2 | ||||
-rw-r--r-- | qemu-char.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/include/sysemu/char.h b/include/sysemu/char.h index ae32e1c..2c3060c 100644 --- a/include/sysemu/char.h +++ b/include/sysemu/char.h @@ -81,6 +81,7 @@ typedef struct CharBackend { IOReadHandler *chr_read; void *opaque; int tag; + int fe_open; } CharBackend; struct CharDriverState { @@ -108,7 +109,6 @@ struct CharDriverState { char *filename; int logfd; int be_open; - int fe_open; int explicit_be_open; int avail_connections; int is_mux; diff --git a/qemu-char.c b/qemu-char.c index a1517a4..3b98acf 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -910,6 +910,7 @@ bool qemu_chr_fe_init(CharBackend *b, CharDriverState *s, Error **errp) s->be = b; } + b->fe_open = false; b->tag = tag; b->chr = s; @@ -4216,10 +4217,10 @@ void qemu_chr_fe_set_open(CharBackend *be, int fe_open) return; } - if (chr->fe_open == fe_open) { + if (be->fe_open == fe_open) { return; } - chr->fe_open = fe_open; + be->fe_open = fe_open; if (chr->chr_set_fe_open) { chr->chr_set_fe_open(chr, fe_open); } @@ -4304,7 +4305,7 @@ ChardevInfoList *qmp_query_chardev(Error **errp) info->value = g_malloc0(sizeof(*info->value)); info->value->label = g_strdup(chr->label); info->value->filename = g_strdup(chr->filename); - info->value->frontend_open = chr->fe_open; + info->value->frontend_open = chr->be && chr->be->fe_open; info->next = chr_list; chr_list = info; |