Re: [PATCH v4 07/10] qmp: add chardev-resize command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Cc: libvirt

Filip Hejsek <filip.hejsek@xxxxxxxxx> writes:

> From: Szymon Lukasz <noh4hss@xxxxxxxxx>
>
> 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 <noh4hss@xxxxxxxxx>
> Suggested-by: Daniel P. Berrangé <berrange@xxxxxxxxxx>
> Signed-off-by: Filip Hejsek <filip.hejsek@xxxxxxxxx>
> ---
>  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:
>  #





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux