Cc: libvirt

Filip Hejsek <filip.hej...@gmail.com> writes:

> From: Szymon Lukasz <noh4...@gmail.com>
>
> The managment software can use this command to notify QEMU about the
> size of the terminal connected to a chardev, QEMU can then forward this
> information to the guest if the chardev is connected to a virtio console
> device.
>
> Signed-off-by: Szymon Lukasz <noh4...@gmail.com>
> Suggested-by: Daniel P. Berrangé <berra...@redhat.com>
> Signed-off-by: Filip Hejsek <filip.hej...@gmail.com>
> ---
>  chardev/char.c | 14 ++++++++++++++
>  qapi/char.json | 22 ++++++++++++++++++++++
>  2 files changed, 36 insertions(+)
>
> diff --git a/chardev/char.c b/chardev/char.c
> index 
> b45d79cb9b57643827eb7479257fdda2cf6b0434..6e3ade98614c949be8041ec5905a490ff536dee9
>  100644
> --- a/chardev/char.c
> +++ b/chardev/char.c
> @@ -1269,6 +1269,20 @@ bool qmp_add_client_char(int fd, bool has_skipauth, 
> bool skipauth,
>      return true;
>  }
>  
> +void qmp_chardev_resize(const char *id, uint16_t cols, uint16_t rows,
> +                        Error **errp)
> +{
> +    Chardev *chr;
> +
> +    chr = qemu_chr_find(id);
> +    if (chr == NULL) {
> +        error_setg(errp, "Chardev '%s' not found", id);
> +        return;
> +    }
> +
> +    qemu_chr_resize(chr, cols, rows);
> +}
> +
>  /*
>   * Add a timeout callback for the chardev (in milliseconds), return
>   * the GSource object created. Please use this to add timeout hook for
> diff --git a/qapi/char.json b/qapi/char.json
> index 
> f0a53f742c8bee24c377551803a864fd36ac78cf..0a26c5eee6b71bc5de127a91b253cc69a9fe8ce6
>  100644
> --- a/qapi/char.json
> +++ b/qapi/char.json
> @@ -874,6 +874,28 @@
>  { 'command': 'chardev-send-break',
>    'data': { 'id': 'str' } }
>  
> +##
> +# @chardev-resize:

This name doesn't tell me what is being resized.  PATCH 04 uses
"winsize", which is better.  The (losely) related SIGWINCH suggests
"window change" or "window size change".  Below, you use "terminal
size".

> +#
> +# Notifies a chardev about the current size of the terminal connected
> +# to this chardev.

Yes, but what is it good for?  Your commit message tells: "managment
software can use this command to notify QEMU about the size of the
terminal connected to a chardev, QEMU can then forward this information
to the guest if the chardev is connected to a virtio console device."

> +#
> +# @id: the chardev's ID, must exist
> +# @cols: the number of columns
> +# @rows: the number of rows

Blank lines between the argument descriptions, bease.

What's the initial size?

Do we need a way to query the size?

> +#
> +# Since: 10.2
> +#
> +# .. qmp-example::
> +#
> +#     -> { "execute": "chardev-resize", "arguments": { "id": "foo", "cols": 
> 80, "rows": 24 } }
> +#     <- { "return": {} }
> +##
> +{ 'command': 'chardev-resize',
> +  'data': { 'id': 'str',
> +            'cols': 'uint16',
> +            'rows': 'uint16' } }
> +
>  ##
>  # @VSERPORT_CHANGE:
>  #

Reply via email to