diff --git a/makefiles/stdio.inc.mk b/makefiles/stdio.inc.mk index 63f4ec8e86..462f902a96 100644 --- a/makefiles/stdio.inc.mk +++ b/makefiles/stdio.inc.mk @@ -37,6 +37,7 @@ endif ifneq (,$(filter stdio_uart_rx,$(USEMODULE))) USEMODULE += isrpipe USEMODULE += stdio_uart + USEMODULE += stdio_available endif ifneq (,$(filter stdio_uart,$(USEMODULE))) diff --git a/sys/Kconfig.stdio b/sys/Kconfig.stdio index f167e26988..b204e9b0fd 100644 --- a/sys/Kconfig.stdio +++ b/sys/Kconfig.stdio @@ -49,6 +49,7 @@ config MODULE_STDIO_UART_RX bool depends on MODULE_STDIO_UART select MODULE_ISRPIPE + select MODULE_STDIO_AVAILABLE default y if MODULE_STDIN help Reception when using UART-based STDIO needs to be enabled. diff --git a/sys/stdio_uart/stdio_uart.c b/sys/stdio_uart/stdio_uart.c index 21f715be5b..be6cd8e9b7 100644 --- a/sys/stdio_uart/stdio_uart.c +++ b/sys/stdio_uart/stdio_uart.c @@ -67,6 +67,13 @@ void stdio_init(void) #endif } +#if IS_USED(MODULE_STDIO_AVAILABLE) +int stdio_available(void) +{ + return tsrb_avail(&stdio_uart_isrpipe.tsrb); +} +#endif + ssize_t stdio_read(void* buffer, size_t count) { #ifdef MODULE_STDIO_UART_RX