All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Filip Hejsek <filip.hejsek@gmail.com>
Cc: qemu-devel@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"Amit Shah" <amit@kernel.org>, "Eric Blake" <eblake@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Yanan Wang" <wangyanan55@huawei.com>,
	"Zhao Liu" <zhao1.liu@intel.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Maximilian Immanuel Brandtner" <maxbr@linux.ibm.com>,
	"Szymon Lukasz" <noh4hss@gmail.com>
Subject: Re: [PATCH RFC v5 07/12] qmp: add chardev-window-size-changed command
Date: Mon, 22 Sep 2025 08:45:31 +0200	[thread overview]
Message-ID: <878qi7nfxw.fsf@pond.sub.org> (raw)
In-Reply-To: <20250921-console-resize-v5-7-89e3c6727060@gmail.com> (Filip Hejsek's message of "Sun, 21 Sep 2025 01:45:37 +0200")

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

> From: Szymon Lukasz <noh4hss@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 <noh4hss@gmail.com>
> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> [Filip: rename command, change documentation]
> Signed-off-by: Filip Hejsek <filip.hejsek@gmail.com>
> ---
>  chardev/char.c | 14 ++++++++++++++
>  qapi/char.json | 30 ++++++++++++++++++++++++++++++
>  2 files changed, 44 insertions(+)
>
> diff --git a/chardev/char.c b/chardev/char.c
> index b45d79cb9b57643827eb7479257fdda2cf6b0434..f3aad545afe3d325aac388015b3d5517c2e48f0d 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_window_size_changed(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..93b0d239276077d808af2e5479d539728377a99f 100644
> --- a/qapi/char.json
> +++ b/qapi/char.json
> @@ -874,6 +874,36 @@
>  { 'command': 'chardev-send-break',
>    'data': { 'id': 'str' } }
>  
> +##
> +# @chardev-window-size-changed:
> +#
> +# Notifies a chardev about the current size of the terminal connected
> +# to this chardev. The information will be forwarded to the guest if
> +# the chardev is connected to a virtio console device.
> +#
> +# The initial size is 0x0, which should be interpreted as an unknown size.
> +#
> +# Some backends detect the terminal size automatically, in which case
> +# the size may unpredictably revert to the detected one at any time.

Nicely done now!

docs/devel/qapi-code-gen.rst:

    For legibility, wrap text paragraphs so every line is at most 70
    characters long.

    Separate sentences with two spaces.

> +#
> +# @id: the chardev's ID, must exist

Let's drop ", must exist" for consistency with ID descriptions
elsewhere.

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

Acked-by: Markus Armbruster <armbru@redhat.com>



  reply	other threads:[~2025-09-22  6:46 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-20 23:45 [PATCH RFC v5 00/12] virtio-console: notify about the terminal size Filip Hejsek
2025-09-20 23:45 ` [PATCH RFC v5 01/12] chardev: add cols, rows fields Filip Hejsek
2025-09-22  8:13   ` Daniel P. Berrangé
2025-10-13  5:09   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 02/12] chardev: add CHR_EVENT_RESIZE Filip Hejsek
2025-09-22  8:16   ` Daniel P. Berrangé
2025-10-13  5:11   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 03/12] chardev: add qemu_chr_resize() Filip Hejsek
2025-09-22  8:19   ` Daniel P. Berrangé
2025-10-13  5:12   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 04/12] char-mux: add support for the terminal size Filip Hejsek
2025-09-22  8:21   ` Daniel P. Berrangé
2025-10-13  5:13   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 05/12] main-loop: change the handling of SIGWINCH Filip Hejsek
2025-09-22  8:29   ` Daniel P. Berrangé
2025-10-13  5:13   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 06/12] char-stdio: add support for the terminal size Filip Hejsek
2025-09-22  8:33   ` Daniel P. Berrangé
2025-10-13  5:14   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 07/12] qmp: add chardev-window-size-changed command Filip Hejsek
2025-09-22  6:45   ` Markus Armbruster [this message]
2025-09-22  8:52     ` Filip Hejsek
2025-09-22  9:38       ` Markus Armbruster
2025-09-22  8:35   ` Daniel P. Berrangé
2025-10-13  5:18   ` Dominique Martinet
2025-10-13  5:23   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 08/12] virtio-serial-bus: add terminal resize messages Filip Hejsek
2025-09-22  8:53   ` Daniel P. Berrangé
2025-10-13  5:19   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 09/12] virtio-console: notify the guest about terminal resizes Filip Hejsek
2025-09-22  8:45   ` Daniel P. Berrangé
2025-10-13  5:28   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 10/12] char-win-stdio: add support for terminal size Filip Hejsek
2025-09-22  8:38   ` Daniel P. Berrangé
2025-10-13  5:29   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 11/12] ui/console-vc: forward text console size to vc chardev Filip Hejsek
2025-09-22  8:41   ` Daniel P. Berrangé
2025-10-13  5:29   ` Dominique Martinet
2025-09-20 23:45 ` [PATCH RFC v5 12/12] ui/gtk: forward gtk " Filip Hejsek
2025-09-22  8:41   ` Daniel P. Berrangé
2025-10-13  5:44   ` Dominique Martinet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878qi7nfxw.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=amit@kernel.org \
    --cc=berrange@redhat.com \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=filip.hejsek@gmail.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=maxbr@linux.ibm.com \
    --cc=mst@redhat.com \
    --cc=noh4hss@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=wangyanan55@huawei.com \
    --cc=zhao1.liu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.