zephyr/subsys/console/line_fifo.c
Paul Sokolovsky f6d8ab8289 subsys: console: Factor out fifo-based console input abstraction
Console subsystem is intended to be a layer between console drivers
and console clients, like e.g. shell. This change factors out code
from shell which dealed with individial console drivers and moves it
to console subsystem, under the name console_register_line_input().

To accommodate for this change, older console subsys Kconfig symbol
is changed from CONFIG_CONSOLE_PULL to CONFIG_CONSOLE_SUBSYS
(CONFIG_CONSOLE is already used by console drivers). This signifies
that console subsystem is intended to deal with all of console
aspects in Zephyr (existing and new), not just provide some "new"
functionality on top of raw console drivers, like it initially
started.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-06-20 15:59:12 -04:00

46 lines
1.1 KiB
C

/*
* Copyright (c) 2018 Linaro Limited.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Legacy fifo-based line input
*/
#include <zephyr.h>
#include <console.h>
#ifdef CONFIG_UART_CONSOLE
#include <drivers/console/uart_console.h>
#endif
#ifdef CONFIG_TELNET_CONSOLE
#include <drivers/console/telnet_console.h>
#endif
#ifdef CONFIG_NATIVE_POSIX_CONSOLE
#include <drivers/console/native_posix_console.h>
#endif
#ifdef CONFIG_WEBSOCKET_CONSOLE
#include <drivers/console/websocket_console.h>
#endif
void console_register_line_input(struct k_fifo *avail_queue,
struct k_fifo *out_queue,
u8_t (*completion)(char *str, u8_t len))
{
/* Register serial console handler */
#ifdef CONFIG_UART_CONSOLE
uart_register_input(avail_queue, out_queue, completion);
#endif
#ifdef CONFIG_TELNET_CONSOLE
telnet_register_input(avail_queue, out_queue, completion);
#endif
#ifdef CONFIG_NATIVE_POSIX_STDIN_CONSOLE
native_stdin_register_input(avail_queue, out_queue, completion);
#endif
#ifdef CONFIG_WEBSOCKET_CONSOLE
ws_register_input(avail_queue, out_queue, completion);
#endif
}