[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH v2] add close callback for tty-based char device
From: |
David S. Ahern |
Subject: |
[Qemu-devel] Re: [PATCH v2] add close callback for tty-based char device |
Date: |
Thu, 18 Feb 2010 11:14:32 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc11 Thunderbird/3.0.1 |
I have not seen a follow up. I believe the comments regarding whitespace
and coding style have been addressed.
Thanks,
David Ahern
On 02/10/2010 06:27 PM, David Ahern wrote:
> v1 -> v2 coding style changes
>
> Add a tty close callback. Right now if a guest device that is connected
> to a tty-based chardev in the host is removed, the tty is not closed.
> With this patch it is closed.
>
> Example use case is connecting an emulated USB serial cable in the guest
> to ttyS0 of the host using the monitor command:
>
> usb_add serial::/dev/ttyS0
>
> and then removing the device with:
>
> usb_del serial::/dev/ttyS0
>
> Signed-off-by: David Ahern <address@hidden>
> ---
> qemu-char.c | 17 +++++++++++++++++
> 1 files changed, 17 insertions(+), 0 deletions(-)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 75dbf66..4169492 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -1173,6 +1173,22 @@ static int tty_serial_ioctl(CharDriverState *chr, int
> cmd, void *arg)
> return 0;
> }
>
> +static void qemu_chr_close_tty(CharDriverState *chr)
> +{
> + FDCharDriver *s = chr->opaque;
> + int fd = -1;
> +
> + if (s) {
> + fd = s->fd_in;
> + }
> +
> + fd_chr_close(chr);
> +
> + if (fd >= 0) {
> + close(fd);
> + }
> +}
> +
> static CharDriverState *qemu_chr_open_tty(QemuOpts *opts)
> {
> const char *filename = qemu_opt_get(opts, "path");
> @@ -1190,6 +1206,7 @@ static CharDriverState *qemu_chr_open_tty(QemuOpts
> *opts)
> return NULL;
> }
> chr->chr_ioctl = tty_serial_ioctl;
> + chr->chr_close = qemu_chr_close_tty;
> return chr;
> }
> #else /* ! __linux__ && ! __sun__ */