From: Szymon Lukasz <[email protected]> This function should be called whenever we learn about a new size of the terminal connected to a chardev.
Signed-off-by: Szymon Lukasz <[email protected]> Reviewed-by: Daniel P. Berrangé <[email protected]> Signed-off-by: Filip Hejsek <[email protected]> Reviewed-by: Dominique Martinet <[email protected]> Tested-by: Dominique Martinet <[email protected]> Reviewed-by: Marc-André Lureau <[email protected]> Message-ID: <[email protected]> --- chardev/char.c | 11 +++++++++++ include/chardev/char.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/chardev/char.c b/chardev/char.c index 40d2180ce74b..8c8386e5b51b 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -386,6 +386,17 @@ int qemu_chr_wait_connected(Chardev *chr, Error **errp) return 0; } +void qemu_chr_resize(Chardev *chr, uint16_t cols, uint16_t rows) +{ + if (cols != chr->cols || rows != chr->rows) { + chr->cols = cols; + chr->rows = rows; + if (chr->be_open) { + qemu_chr_be_event(chr, CHR_EVENT_RESIZE); + } + } +} + QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename, bool permit_mux_mon) { diff --git a/include/chardev/char.h b/include/chardev/char.h index ee9f24038bd0..2616c19cc095 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -235,6 +235,8 @@ int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool write_all); #define qemu_chr_write_all(s, buf, len) qemu_chr_write(s, buf, len, true) int qemu_chr_wait_connected(Chardev *chr, Error **errp); +void qemu_chr_resize(Chardev *chr, uint16_t cols, uint16_t rows); + #define TYPE_CHARDEV "chardev" OBJECT_DECLARE_TYPE(Chardev, ChardevClass, CHARDEV) -- 2.56.0.116.g6de20f6092dc
