shell: add Kconfig option for configurable autoflush behavior

Introduced a new Kconfig option `SHELL_PRINTF_AUTOFLUSH` to allow
configuring the autoflush behavior of shell printing functions.

Updated `Z_SHELL_FPRINTF_DEFINE` to use the
`CONFIG_SHELL_PRINTF_AUTOFLUSH` setting instead of hardcoding
the autoflush behavior to `true`.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@verkada.com>
This commit is contained in:
Jakub Rzeszutko 2025-01-21 12:33:06 +01:00 committed by Benjamin Cabé
commit 8991b954bc
2 changed files with 8 additions and 1 deletions

View file

@ -952,7 +952,7 @@ extern void z_shell_print_stream(const void *user_ctx, const char *data,
static struct shell_ctx UTIL_CAT(_name, _ctx); \
Z_SHELL_HISTORY_DEFINE(_name##_history, CONFIG_SHELL_HISTORY_BUFFER); \
Z_SHELL_FPRINTF_DEFINE(_name##_fprintf, &_name, _out_buf, CONFIG_SHELL_PRINTF_BUFF_SIZE, \
true, z_shell_print_stream); \
IS_ENABLED(CONFIG_SHELL_PRINTF_AUTOFLUSH), z_shell_print_stream); \
LOG_INSTANCE_REGISTER(shell, _name, CONFIG_SHELL_LOG_LEVEL); \
Z_SHELL_STATS_DEFINE(_name); \
static K_KERNEL_STACK_DEFINE(_name##_stack, CONFIG_SHELL_STACK_SIZE); \

View file

@ -94,6 +94,13 @@ config SHELL_PRINTF_BUFF_SIZE
It is working like stdio buffering in Linux systems
to limit number of peripheral access calls.
config SHELL_PRINTF_AUTOFLUSH
bool "Indicate if the buffer should be automatically flushed"
default y
help
Specify whether the shell's printing functions should automatically
flush the printf buffer.
config SHELL_DEFAULT_TERMINAL_WIDTH
int "Default terminal width"
range 1 $(UINT16_MAX)