* [Qemu-devel] [PATCH 0/4] Resend: Fixes for the qemu char layer @ 2009-10-20 7:02 Amit Shah 2009-10-20 7:02 ` [Qemu-devel] [PATCH 1/4] char: check for initial_reset_issued unnecessary Amit Shah 0 siblings, 1 reply; 5+ messages in thread From: Amit Shah @ 2009-10-20 7:02 UTC (permalink / raw) To: qemu-devel; +Cc: Amit Shah Hello, These are fixes for qemu's char layer. All of the patches have been sent earlier, this is just a resend with the fix for console char devs included in the series that was sent separately earlier. Amit Shah (4): char: check for initial_reset_issued unnecessary char: rename CHR_EVENT_RESET to CHR_EVENT_OPENED console: call qemu_chr_reset() in text_console_init char: emit the OPENED event only when a new char connection is opened console.c | 1 + gdbstub.c | 2 +- hw/baum.c | 2 +- hw/usb-serial.c | 2 +- monitor.c | 2 +- qemu-char.c | 12 +++++++----- qemu-char.h | 4 +++- 7 files changed, 15 insertions(+), 10 deletions(-) ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 1/4] char: check for initial_reset_issued unnecessary 2009-10-20 7:02 [Qemu-devel] [PATCH 0/4] Resend: Fixes for the qemu char layer Amit Shah @ 2009-10-20 7:02 ` Amit Shah 2009-10-20 7:03 ` [Qemu-devel] [PATCH 2/4] char: rename CHR_EVENT_RESET to CHR_EVENT_OPENED Amit Shah 0 siblings, 1 reply; 5+ messages in thread From: Amit Shah @ 2009-10-20 7:02 UTC (permalink / raw) To: qemu-devel; +Cc: Amit Shah At init, qemu_chr_reset is always called with initial_reset_issued set to 1. So checking for it to be set is not necessary. Signed-off-by: Amit Shah <amit.shah@redhat.com> --- qemu-char.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index 8084a67..8f7f81c 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -108,7 +108,6 @@ static QTAILQ_HEAD(CharDriverStateHead, CharDriverState) chardevs = QTAILQ_HEAD_INITIALIZER(chardevs); -static int initial_reset_issued; static void qemu_chr_event(CharDriverState *s, int event) { @@ -127,7 +126,7 @@ static void qemu_chr_reset_bh(void *opaque) void qemu_chr_reset(CharDriverState *s) { - if (s->bh == NULL && initial_reset_issued) { + if (s->bh == NULL) { s->bh = qemu_bh_new(qemu_chr_reset_bh, s); qemu_bh_schedule(s->bh); } @@ -137,8 +136,6 @@ void qemu_chr_initial_reset(void) { CharDriverState *chr; - initial_reset_issued = 1; - QTAILQ_FOREACH(chr, &chardevs, next) { qemu_chr_reset(chr); } -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 2/4] char: rename CHR_EVENT_RESET to CHR_EVENT_OPENED 2009-10-20 7:02 ` [Qemu-devel] [PATCH 1/4] char: check for initial_reset_issued unnecessary Amit Shah @ 2009-10-20 7:03 ` Amit Shah 2009-10-20 7:03 ` [Qemu-devel] [PATCH 3/4] console: call qemu_chr_reset() in text_console_init Amit Shah 0 siblings, 1 reply; 5+ messages in thread From: Amit Shah @ 2009-10-20 7:03 UTC (permalink / raw) To: qemu-devel; +Cc: Amit Shah The char event RESET is emitted when a char device is opened. Give it a better name. Signed-off-by: Amit Shah <amit.shah@redhat.com> --- gdbstub.c | 2 +- hw/baum.c | 2 +- hw/usb-serial.c | 2 +- monitor.c | 2 +- qemu-char.c | 2 +- qemu-char.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 315f606..055093f 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -2447,7 +2447,7 @@ static void gdb_chr_receive(void *opaque, const uint8_t *buf, int size) static void gdb_chr_event(void *opaque, int event) { switch (event) { - case CHR_EVENT_RESET: + case CHR_EVENT_OPENED: vm_stop(EXCP_INTERRUPT); gdb_has_xml = 0; break; diff --git a/hw/baum.c b/hw/baum.c index 665deab..c66e737 100644 --- a/hw/baum.c +++ b/hw/baum.c @@ -475,7 +475,7 @@ static void baum_send_event(CharDriverState *chr, int event) switch (event) { case CHR_EVENT_BREAK: break; - case CHR_EVENT_RESET: + case CHR_EVENT_OPENED: /* Reset state */ baum->in_buf_used = 0; break; diff --git a/hw/usb-serial.c b/hw/usb-serial.c index e2379c4..d02f6b2 100644 --- a/hw/usb-serial.c +++ b/hw/usb-serial.c @@ -516,7 +516,7 @@ static void usb_serial_event(void *opaque, int event) break; case CHR_EVENT_FOCUS: break; - case CHR_EVENT_RESET: + case CHR_EVENT_OPENED: usb_serial_reset(s); /* TODO: Reset USB port */ break; diff --git a/monitor.c b/monitor.c index 3424e60..2566f4a 100644 --- a/monitor.c +++ b/monitor.c @@ -3470,7 +3470,7 @@ static void monitor_event(void *opaque, int event) mon->mux_out = 1; break; - case CHR_EVENT_RESET: + case CHR_EVENT_OPENED: monitor_printf(mon, "QEMU %s monitor - type 'help' for more " "information\n", QEMU_VERSION); if (!mon->mux_out) { diff --git a/qemu-char.c b/qemu-char.c index 8f7f81c..4757689 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -119,7 +119,7 @@ static void qemu_chr_event(CharDriverState *s, int event) static void qemu_chr_reset_bh(void *opaque) { CharDriverState *s = opaque; - qemu_chr_event(s, CHR_EVENT_RESET); + qemu_chr_event(s, CHR_EVENT_OPENED); qemu_bh_delete(s->bh); s->bh = NULL; } diff --git a/qemu-char.h b/qemu-char.h index c0654bc..05fe15d 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -10,7 +10,7 @@ #define CHR_EVENT_BREAK 0 /* serial break char */ #define CHR_EVENT_FOCUS 1 /* focus to this terminal (modal input needed) */ -#define CHR_EVENT_RESET 2 /* new connection established */ +#define CHR_EVENT_OPENED 2 /* new connection established */ #define CHR_EVENT_MUX_IN 3 /* mux-focus was set to this terminal */ #define CHR_EVENT_MUX_OUT 4 /* mux-focus will move on */ #define CHR_EVENT_CLOSED 5 /* connection closed */ -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 3/4] console: call qemu_chr_reset() in text_console_init 2009-10-20 7:03 ` [Qemu-devel] [PATCH 2/4] char: rename CHR_EVENT_RESET to CHR_EVENT_OPENED Amit Shah @ 2009-10-20 7:03 ` Amit Shah 2009-10-20 7:03 ` [Qemu-devel] [PATCH 4/4] char: emit the OPENED event only when a new char connection is opened Amit Shah 0 siblings, 1 reply; 5+ messages in thread From: Amit Shah @ 2009-10-20 7:03 UTC (permalink / raw) To: qemu-devel; +Cc: Amit Shah text_console_init is called as the initialiser function for the 'vc' char backend. This function doesn't call qemu_chr_reset(), that emits the OPENED event. This fixes the help text and initial prompt display when the monitor is started in its default options -- as a vc backend to sdl or vnc. Signed-off-by: Amit Shah <amit.shah@redhat.com> --- console.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/console.c b/console.c index 9bbef59..a4e0d64 100644 --- a/console.c +++ b/console.c @@ -1403,6 +1403,7 @@ CharDriverState *text_console_init(QemuOpts *opts) text_console_opts[n_text_consoles] = opts; n_text_consoles++; + qemu_chr_reset(chr); return chr; } -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 4/4] char: emit the OPENED event only when a new char connection is opened 2009-10-20 7:03 ` [Qemu-devel] [PATCH 3/4] console: call qemu_chr_reset() in text_console_init Amit Shah @ 2009-10-20 7:03 ` Amit Shah 0 siblings, 0 replies; 5+ messages in thread From: Amit Shah @ 2009-10-20 7:03 UTC (permalink / raw) To: qemu-devel; +Cc: Amit Shah The OPENED event gets sent also when qemu resets its state initially. The consumers of the event aren't interested in receiving this event on reset. Signed-off-by: Amit Shah <amit.shah@redhat.com> --- qemu-char.c | 7 ++++++- qemu-char.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index 4757689..0fd402c 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -119,7 +119,12 @@ static void qemu_chr_event(CharDriverState *s, int event) static void qemu_chr_reset_bh(void *opaque) { CharDriverState *s = opaque; - qemu_chr_event(s, CHR_EVENT_OPENED); + + if (s->initial_reset_issued) { + qemu_chr_event(s, CHR_EVENT_OPENED); + } else { + s->initial_reset_issued = true; + } qemu_bh_delete(s->bh); s->bh = NULL; } diff --git a/qemu-char.h b/qemu-char.h index 05fe15d..409961d 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -1,6 +1,7 @@ #ifndef QEMU_CHAR_H #define QEMU_CHAR_H +#include <stdbool.h> #include "qemu-common.h" #include "qemu-queue.h" #include "qemu-option.h" @@ -66,6 +67,7 @@ struct CharDriverState { QEMUBH *bh; char *label; char *filename; + bool initial_reset_issued; QTAILQ_ENTRY(CharDriverState) next; }; -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-10-20 7:04 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-10-20 7:02 [Qemu-devel] [PATCH 0/4] Resend: Fixes for the qemu char layer Amit Shah 2009-10-20 7:02 ` [Qemu-devel] [PATCH 1/4] char: check for initial_reset_issued unnecessary Amit Shah 2009-10-20 7:03 ` [Qemu-devel] [PATCH 2/4] char: rename CHR_EVENT_RESET to CHR_EVENT_OPENED Amit Shah 2009-10-20 7:03 ` [Qemu-devel] [PATCH 3/4] console: call qemu_chr_reset() in text_console_init Amit Shah 2009-10-20 7:03 ` [Qemu-devel] [PATCH 4/4] char: emit the OPENED event only when a new char connection is opened Amit Shah
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).