diff options
author | Michael Brown <mcb30@ipxe.org> | 2013-12-06 17:47:54 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2013-12-06 17:47:54 +0000 |
commit | 03401f9d2101b5033c67f6d588152c28a1cc7503 (patch) | |
tree | a0885779addd3444b2c5365f04e6a1a95431dd6f /src/core/console.c | |
parent | 1680d0d14d2bf85ebab6c245b28a7b9dcaa81f53 (diff) | |
download | ipxe-03401f9d2101b5033c67f6d588152c28a1cc7503.tar.gz |
[console] Allow consoles to update the recorded console size
Provide a mechanism for consoles to update the recorded console width
and height, and use this width and height to provide the curses COLS
and LINES variables.
We choose not to use ANSI escape sequences to obtain the width and
height, for two reasons:
- iPXE's model is that all output is sent to all consoles; we could
therefore end up with multiple consoles reporting conflicting widths
and heights
- when a serial console is in use, we probably don't want to resize
the output shown on the BIOS console to match the size of the serial
console, since it's likely that the serial console is in use only
for debugging.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core/console.c')
-rw-r--r-- | src/core/console.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/console.c b/src/core/console.c index 5f3c28d84..141d8f0f0 100644 --- a/src/core/console.c +++ b/src/core/console.c @@ -10,6 +10,12 @@ FILE_LICENCE ( GPL2_OR_LATER ); /** Current console usage */ int console_usage = CONSOLE_USAGE_STDOUT; +/** Console width */ +unsigned int console_width = CONSOLE_DEFAULT_WIDTH; + +/** Console height */ +unsigned int console_height = CONSOLE_DEFAULT_HEIGHT; + /** * Write a single character to each console device * @@ -138,6 +144,9 @@ int console_configure ( struct console_configuration *config ) { struct console_driver *console; int rc; + /* Reset console width and height */ + console_set_size ( CONSOLE_DEFAULT_WIDTH, CONSOLE_DEFAULT_HEIGHT ); + /* Try to configure each console */ for_each_table_entry ( console, CONSOLES ) { if ( ( console->configure ) && |