/* * Copyright (c) 2017 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_INCLUDE_DRIVERS_CONSOLE_CONSOLE_H_ #define ZEPHYR_INCLUDE_DRIVERS_CONSOLE_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 word itself, reserve space */ intptr_t _unused; /** Whether this is an mcumgr command */ uint8_t is_mcumgr : 1; /** 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 */ 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 /* ZEPHYR_INCLUDE_DRIVERS_CONSOLE_CONSOLE_H_ */