Patchwork [1/5] qemu-char: make qemu_chr_event public

login
register
mail settings
Submitter Hans de Goede
Date Aug. 11, 2011, 12:25 p.m.
Message ID <1313065515-3815-1-git-send-email-hdegoede@redhat.com>
Download mbox | patch
Permalink /patch/109603/
State New
Headers show

Comments

Hans de Goede - Aug. 11, 2011, 12:25 p.m.
Make qemu_chr_event public so that it can be used by chardev code
which lives outside of qemu-char.c

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 qemu-char.c |    2 +-
 qemu-char.h |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)
Anthony Liguori - Aug. 12, 2011, 1:57 p.m.
On 08/11/2011 07:25 AM, Hans de Goede wrote:
> Make qemu_chr_event public so that it can be used by chardev code
> which lives outside of qemu-char.c

Normally, qemu_chr_generic_open() would be used to do this.  Of course, 
there is no generic_close().

Are you sure you don't need the BH indirection?

Regards,

Anthony Liguori

>
> Signed-off-by: Hans de Goede<hdegoede@redhat.com>
> ---
>   qemu-char.c |    2 +-
>   qemu-char.h |    1 +
>   2 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 8d39500..5d5a6d5 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -119,7 +119,7 @@ static void char_write_unblocked(void *opaque)
>       chr->chr_write_unblocked(chr->handler_opaque);
>   }
>
> -static void qemu_chr_event(CharDriverState *s, int event)
> +void qemu_chr_event(CharDriverState *s, int event)
>   {
>       /* Keep track if the char device is open */
>       switch (event) {
> diff --git a/qemu-char.h b/qemu-char.h
> index 68e7b5b..77ad62d 100644
> --- a/qemu-char.h
> +++ b/qemu-char.h
> @@ -107,6 +107,7 @@ int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg);
>   void qemu_chr_generic_open(CharDriverState *s);
>   int qemu_chr_can_read(CharDriverState *s);
>   void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len);
> +void qemu_chr_event(CharDriverState *s, int event);
>   int qemu_chr_get_msgfd(CharDriverState *s);
>   void qemu_chr_accept_input(CharDriverState *s);
>   int qemu_chr_add_client(CharDriverState *s, int fd);
Hans de Goede - Sept. 27, 2011, 4:38 p.m.
Hi,

On 08/12/2011 03:57 PM, Anthony Liguori wrote:
> On 08/11/2011 07:25 AM, Hans de Goede wrote:
>> Make qemu_chr_event public so that it can be used by chardev code
>> which lives outside of qemu-char.c
>
> Normally, qemu_chr_generic_open() would be used to do this. Of course, there is no generic_close().
>
> Are you sure you don't need the BH indirection?

A bit of a late reply (I was / am still waiting to see how the new
improved chardev code ends up). Things seem to work fine without
the BH indirection for all the spice cases I've tested (agent and usbredir).

But it might indeed be a good idea to keep the BH indirection, so we
would need some way to have the BH indirection for close to, options:

1) DIY in spice-qemu-char.c
2) Add a generic_close function

I would prefer 2, what do you think?

Thanks & Regards,

Hans

Patch

diff --git a/qemu-char.c b/qemu-char.c
index 8d39500..5d5a6d5 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -119,7 +119,7 @@  static void char_write_unblocked(void *opaque)
     chr->chr_write_unblocked(chr->handler_opaque);
 }
 
-static void qemu_chr_event(CharDriverState *s, int event)
+void qemu_chr_event(CharDriverState *s, int event)
 {
     /* Keep track if the char device is open */
     switch (event) {
diff --git a/qemu-char.h b/qemu-char.h
index 68e7b5b..77ad62d 100644
--- a/qemu-char.h
+++ b/qemu-char.h
@@ -107,6 +107,7 @@  int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg);
 void qemu_chr_generic_open(CharDriverState *s);
 int qemu_chr_can_read(CharDriverState *s);
 void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len);
+void qemu_chr_event(CharDriverState *s, int event);
 int qemu_chr_get_msgfd(CharDriverState *s);
 void qemu_chr_accept_input(CharDriverState *s);
 int qemu_chr_add_client(CharDriverState *s, int fd);