On Fri, 2025-09-12 at 16:01 +0200, Markus Armbruster wrote: > 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".
How about chardev-console-resize? That would match the name of the virtio event (VIRTIO_CONSOLE_RESIZE). > > +# > > +# 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." How about: 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. > > +# > > +# @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? 0x0 > Do we need a way to query the size? I don't think it is necessary. What would be the usecase for that? > > +# > > +# 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: > > #