drivers/console: Making console input generic
Input line length can be modified via Kconfig. Change-Id: I3423fce9814e04b11d11e5d391f85fe1efbe8d17 Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This commit is contained in:
parent
fb9810978f
commit
3e65158936
|
@ -12,6 +12,13 @@ menuconfig CONSOLE
|
|||
|
||||
if CONSOLE
|
||||
|
||||
config CONSOLE_INPUT_MAX_LINE_LEN
|
||||
int "Console maximum input line length"
|
||||
default 128
|
||||
help
|
||||
This option can be used to modify the maximum length a console input
|
||||
can be.
|
||||
|
||||
config CONSOLE_HAS_DRIVER
|
||||
bool
|
||||
default n
|
||||
|
|
49
include/drivers/console/console.h
Normal file
49
include/drivers/console/console.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Copyright (c) 2017 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef __CONSOLE_H__
|
||||
#define __CONSOLE_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define CONSOLE_MAX_LINE_LEN CONFIG_CONSOLE_INPUT_MAX_LINE_LEN
|
||||
|
||||
/** @brief Console input representation
|
||||
*
|
||||
* This struct is used to represent an input line from a console.
|
||||
* Recorded line must be NULL terminated.
|
||||
*/
|
||||
struct console_input {
|
||||
/** FIFO uses first 4 bytes itself, reserve space */
|
||||
int _unused;
|
||||
/** Buffer where the input line is recorded */
|
||||
char line[CONSOLE_MAX_LINE_LEN];
|
||||
};
|
||||
|
||||
/** @brief Console input processing handler signature
|
||||
*
|
||||
* Input processing is started when string is typed in the console.
|
||||
* Carriage return is translated to NULL making string always NULL
|
||||
* terminated. Application before calling register function need to
|
||||
* initialize two fifo queues mentioned below.
|
||||
*
|
||||
* @param avail k_fifo queue keeping available input slots
|
||||
* @param lines k_fifo queue of entered lines which to be processed
|
||||
* in the application code.
|
||||
* @param completion callback for tab completion of entered commands
|
||||
*
|
||||
* @return N/A
|
||||
*/
|
||||
typedef void (*console_input_fn)(struct k_fifo *avail, struct k_fifo *lines,
|
||||
uint8_t (*completion)(char *str, uint8_t len));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __CONSOLE_H__ */
|
Loading…
Reference in a new issue