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

Submitted by Hans de Goede on Aug. 11, 2011, 12:25 p.m.

Details

Message ID 1313065515-3815-1-git-send-email-hdegoede@redhat.com
State New
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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);