From c4d8632b034e776d04487bdcd9499a285b9c0a2a Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: <27a73856ecc481c66c7afac8171f753887f32e31.1342518105.git.minovotn@redhat.com> References: <27a73856ecc481c66c7afac8171f753887f32e31.1342518105.git.minovotn@redhat.com> From: Pavel Hrdina Date: Wed, 30 May 2012 19:35:20 +0200 Subject: [PATCH 02/41] add qemu_chr_set_echo RH-Author: Pavel Hrdina Message-id: Patchwork-id: 39859 O-Subject: [RHEL-6.4 qemu-kvm PATCH 2/4] add qemu_chr_set_echo Bugzilla: 806768 RH-Acked-by: Paolo Bonzini RH-Acked-by: Luiz Capitulino RH-Acked-by: Kevin Wolf From: Paolo Bonzini Signed-off-by: Paolo Bonzini Signed-off-by: Anthony Liguori (cherry picked from commit c48855e1404e9b5857e07b7839f806fa98b4abdc) Signed-off-by: Pavel Hrdina --- monitor.c | 1 + qemu-char.c | 7 +++++++ qemu-char.h | 2 ++ 3 files changed, 11 insertions(+), 1 deletions(-) Signed-off-by: Michal Novotny --- monitor.c | 1 + qemu-char.c | 7 +++++++ qemu-char.h | 2 ++ 3 files changed, 10 insertions(+) diff --git a/monitor.c b/monitor.c index ade63ac..f82deca 100644 --- a/monitor.c +++ b/monitor.c @@ -4970,6 +4970,7 @@ void monitor_init(CharDriverState *chr, int flags) /* Control mode requires special handlers */ qemu_chr_add_handlers(chr, &monitor_control_handlers, mon); + qemu_chr_set_echo(chr, true); } else { qemu_chr_add_handlers(chr, &monitor_handlers, mon); } diff --git a/qemu-char.c b/qemu-char.c index e88cec4..ac29e6c 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -2728,6 +2728,13 @@ void qemu_chr_guest_close(struct CharDriverState *chr) } } +void qemu_chr_set_echo(struct CharDriverState *chr, bool echo) +{ + if (chr->chr_set_echo) { + chr->chr_set_echo(chr, echo); + } +} + void qemu_chr_close(CharDriverState *chr) { QTAILQ_REMOVE(&chardevs, chr, next); diff --git a/qemu-char.h b/qemu-char.h index f3f8b56..b6d34b2 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -70,6 +70,7 @@ struct CharDriverState { void (*chr_accept_input)(struct CharDriverState *chr); void (*chr_guest_open)(struct CharDriverState *chr); void (*chr_guest_close)(struct CharDriverState *chr); + void (*chr_set_echo)(struct CharDriverState *chr, bool echo); void *opaque; QEMUBH *bh; char *label; @@ -94,6 +95,7 @@ CharDriverState *qemu_chr_open_opts(QemuOpts *opts, CharDriverState *qemu_chr_open(const char *label, const char *filename, void (*init)(struct CharDriverState *s)); void qemu_chr_guest_open(struct CharDriverState *chr); void qemu_chr_guest_close(struct CharDriverState *chr); +void qemu_chr_set_echo(struct CharDriverState *chr, bool echo); void qemu_chr_close(CharDriverState *chr); void qemu_chr_printf(CharDriverState *s, const char *fmt, ...); int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len); -- 1.7.10.4