These fields should be interpreted as the size of the terminal connected to a given chardev.
Signed-off-by: Szymon Lukasz <noh4...@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 f3530a90e6..27f95bfcdf 100644 --- a/chardev/char-fe.c +++ b/chardev/char-fe.c @@ -336,6 +336,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, int fe_open) { Chardev *chr = be->chr; diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h index a553843364..3672b0d97d 100644 --- a/include/chardev/char-fe.h +++ b/include/chardev/char-fe.h @@ -154,6 +154,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: * diff --git a/include/chardev/char.h b/include/chardev/char.h index 00589a6025..0cea33cb9a 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; GSource *gsource; GMainContext *gcontext; DECLARE_BITMAP(features, QEMU_CHAR_FEATURE_LAST); -- 2.27.0