Message ID | 1312208590-25502-13-git-send-email-aliguori@us.ibm.com |
---|---|
State | New |
Headers | show |
On Mon, Aug 01, 2011 at 09:23:10AM -0500, Anthony Liguori wrote: > Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Title should be "fe_open", not guest_open. > --- > qemu-char.c | 10 ++++++++++ > qemu-char.h | 2 ++ > 2 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/qemu-char.c b/qemu-char.c > index fb7c937..5e62795 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -206,6 +206,8 @@ int qemu_chr_fe_write(CharDriverState *s, const uint8_t *buf, int len) > int ret; > bool is_empty; > > + assert(s->fe_opened > 0); > + > is_empty = char_queue_get_empty(&s->fe_tx); > > ret = char_queue_write(&s->fe_tx, buf, len); > @@ -228,6 +230,8 @@ int qemu_chr_fe_read(CharDriverState *s, uint8_t *buf, int len) > bool is_full; > int ret; > > + assert(s->fe_opened > 0); > + > is_full = (char_queue_get_avail(&s->be_tx) == 0); > > ret = char_queue_read(&s->be_tx, buf, len); > @@ -249,6 +253,8 @@ void qemu_chr_fe_set_handlers(CharDriverState *s, > IOEventHandler *chr_event, > void *opaque) > { > + assert(s->fe_opened > 0); > + > if (!opaque && !chr_read && !chr_write && !chr_event) { > /* chr driver being released. */ > ++s->avail_connections; > @@ -2822,6 +2828,8 @@ void qemu_chr_set_echo(struct CharDriverState *chr, bool echo) > > void qemu_chr_fe_open(struct CharDriverState *chr) > { > + chr->fe_opened++; > + > if (chr->chr_guest_open) { > chr->chr_guest_open(chr); > } > @@ -2832,6 +2840,8 @@ void qemu_chr_fe_close(struct CharDriverState *chr) > if (chr->chr_guest_close) { > chr->chr_guest_close(chr); > } > + > + chr->fe_opened--; > } > > void qemu_chr_close(CharDriverState *chr) > diff --git a/qemu-char.h b/qemu-char.h > index 8b37fcf..b910c5e 100644 > --- a/qemu-char.h > +++ b/qemu-char.h > @@ -88,6 +88,8 @@ struct CharDriverState { > int opened; > int avail_connections; > > + int fe_opened; > + > CharQueue fe_tx; > CharQueue be_tx; > > -- > 1.7.4.1 > >
On 08/01/2011 10:38 AM, Alon Levy wrote: > On Mon, Aug 01, 2011 at 09:23:10AM -0500, Anthony Liguori wrote: >> Signed-off-by: Anthony Liguori<aliguori@us.ibm.com> > > Title should be "fe_open", not guest_open. Indeed, thanks. Regards, Anthony Liguori > >> --- >> qemu-char.c | 10 ++++++++++ >> qemu-char.h | 2 ++ >> 2 files changed, 12 insertions(+), 0 deletions(-) >> >> diff --git a/qemu-char.c b/qemu-char.c >> index fb7c937..5e62795 100644 >> --- a/qemu-char.c >> +++ b/qemu-char.c >> @@ -206,6 +206,8 @@ int qemu_chr_fe_write(CharDriverState *s, const uint8_t *buf, int len) >> int ret; >> bool is_empty; >> >> + assert(s->fe_opened> 0); >> + >> is_empty = char_queue_get_empty(&s->fe_tx); >> >> ret = char_queue_write(&s->fe_tx, buf, len); >> @@ -228,6 +230,8 @@ int qemu_chr_fe_read(CharDriverState *s, uint8_t *buf, int len) >> bool is_full; >> int ret; >> >> + assert(s->fe_opened> 0); >> + >> is_full = (char_queue_get_avail(&s->be_tx) == 0); >> >> ret = char_queue_read(&s->be_tx, buf, len); >> @@ -249,6 +253,8 @@ void qemu_chr_fe_set_handlers(CharDriverState *s, >> IOEventHandler *chr_event, >> void *opaque) >> { >> + assert(s->fe_opened> 0); >> + >> if (!opaque&& !chr_read&& !chr_write&& !chr_event) { >> /* chr driver being released. */ >> ++s->avail_connections; >> @@ -2822,6 +2828,8 @@ void qemu_chr_set_echo(struct CharDriverState *chr, bool echo) >> >> void qemu_chr_fe_open(struct CharDriverState *chr) >> { >> + chr->fe_opened++; >> + >> if (chr->chr_guest_open) { >> chr->chr_guest_open(chr); >> } >> @@ -2832,6 +2840,8 @@ void qemu_chr_fe_close(struct CharDriverState *chr) >> if (chr->chr_guest_close) { >> chr->chr_guest_close(chr); >> } >> + >> + chr->fe_opened--; >> } >> >> void qemu_chr_close(CharDriverState *chr) >> diff --git a/qemu-char.h b/qemu-char.h >> index 8b37fcf..b910c5e 100644 >> --- a/qemu-char.h >> +++ b/qemu-char.h >> @@ -88,6 +88,8 @@ struct CharDriverState { >> int opened; >> int avail_connections; >> >> + int fe_opened; >> + >> CharQueue fe_tx; >> CharQueue be_tx; >> >> -- >> 1.7.4.1 >> >> >
diff --git a/qemu-char.c b/qemu-char.c index fb7c937..5e62795 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -206,6 +206,8 @@ int qemu_chr_fe_write(CharDriverState *s, const uint8_t *buf, int len) int ret; bool is_empty; + assert(s->fe_opened > 0); + is_empty = char_queue_get_empty(&s->fe_tx); ret = char_queue_write(&s->fe_tx, buf, len); @@ -228,6 +230,8 @@ int qemu_chr_fe_read(CharDriverState *s, uint8_t *buf, int len) bool is_full; int ret; + assert(s->fe_opened > 0); + is_full = (char_queue_get_avail(&s->be_tx) == 0); ret = char_queue_read(&s->be_tx, buf, len); @@ -249,6 +253,8 @@ void qemu_chr_fe_set_handlers(CharDriverState *s, IOEventHandler *chr_event, void *opaque) { + assert(s->fe_opened > 0); + if (!opaque && !chr_read && !chr_write && !chr_event) { /* chr driver being released. */ ++s->avail_connections; @@ -2822,6 +2828,8 @@ void qemu_chr_set_echo(struct CharDriverState *chr, bool echo) void qemu_chr_fe_open(struct CharDriverState *chr) { + chr->fe_opened++; + if (chr->chr_guest_open) { chr->chr_guest_open(chr); } @@ -2832,6 +2840,8 @@ void qemu_chr_fe_close(struct CharDriverState *chr) if (chr->chr_guest_close) { chr->chr_guest_close(chr); } + + chr->fe_opened--; } void qemu_chr_close(CharDriverState *chr) diff --git a/qemu-char.h b/qemu-char.h index 8b37fcf..b910c5e 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -88,6 +88,8 @@ struct CharDriverState { int opened; int avail_connections; + int fe_opened; + CharQueue fe_tx; CharQueue be_tx;
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- qemu-char.c | 10 ++++++++++ qemu-char.h | 2 ++ 2 files changed, 12 insertions(+), 0 deletions(-)