From: Szymon Lukasz <noh4...@gmail.com> These fields should be interpreted as the size of the terminal connected to a given chardev.
Signed-off-by: Szymon Lukasz <noh4...@gmail.com> Signed-off-by: Filip Hejsek <filip.hej...@gmail.com> --- chardev/char-fe.c | 13 +++++++++++++ include/chardev/char-fe.h | 10 ++++++++++ include/chardev/char.h | 1 + 3 files changed, 24 insertions(+) diff --git a/chardev/char-fe.c b/chardev/char-fe.c index 158a5f4f551ee49120eee6ebdf772fb450739f47..8622898bd414c208b5a0397b439e18a8bf0b8a92 100644 --- a/chardev/char-fe.c +++ b/chardev/char-fe.c @@ -329,6 +329,19 @@ void qemu_chr_fe_set_echo(CharBackend *be, bool echo) } } +void qemu_chr_fe_get_winsize(CharBackend *be, uint16_t *cols, uint16_t *rows) +{ + Chardev *chr = be->chr; + + if (chr) { + *cols = chr->cols; + *rows = chr->rows; + } else { + *cols = 0; + *rows = 0; + } +} + void qemu_chr_fe_set_open(CharBackend *be, bool is_open) { Chardev *chr = be->chr; diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h index 8ef05b3dd095bdcaa51b10482261a29b1e8233c7..02d5606fa343ac64a76f48dcd250b5431a0a7761 100644 --- a/include/chardev/char-fe.h +++ b/include/chardev/char-fe.h @@ -158,6 +158,16 @@ int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp); */ void qemu_chr_fe_set_echo(CharBackend *be, bool echo); +/** + * qemu_chr_fe_get_winsize: + * @cols: the address for storing columns + * @rows: the address for storing rows + * + * Get the size of the terminal connected to the chardev backend. + * Returns *cols = *rows = 0, if no associated Chardev. + */ +void qemu_chr_fe_get_winsize(CharBackend *be, uint16_t *cols, uint16_t *rows); + /** * qemu_chr_fe_set_open: * @be: a CharBackend diff --git a/include/chardev/char.h b/include/chardev/char.h index 429852f8d9d3c5a7e061acea3561b019b15d658f..336b2e68d099e70a9abe71ef842b160bf12ea932 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -65,6 +65,7 @@ struct Chardev { char *filename; int logfd; int be_open; + uint16_t cols, rows; /* used to coordinate the chardev-change special-case: */ bool handover_yank_instance; GSource *gsource; -- 2.51.0