Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /*
* Copyright (c) 2017 Linaro Limited
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_CONSOLE_H_
#define ZEPHYR_INCLUDE_CONSOLE_H_
#include <sys/types.h>
#include <zephyr/types.h>
#include <kernel.h>
#ifdef __cplusplus
extern "C" {
#endif
/** @brief Initialize console device.
*
* This function should be called once to initialize pull-style
* access to console via console_getchar() function and buffered
* output using console_putchar() function. This function supersedes,
* and incompatible with, callback (push-style) console handling
* (via console_input_fn callback, etc.).
*
* @return N/A
*/
void console_init(void);
/**
* @brief Read data from console.
*
* @param dummy ignored, present to follow read() prototype
* @param buf buffer to read data to
* @param size maximum number of bytes to read
* @return >0, number of actually read bytes (can be less than size param)
* =0, in case of EOF
* <0, in case of error (e.g. -EAGAIN if timeout expired). errno
* variable is also set.
*/
ssize_t console_read(void *dummy, void *buf, size_t size);
/**
* @brief Write data to console.
*
* @param dummy ignored, present to follow write() prototype
* @param buf buffer to write data to
* @param size maximum number of bytes to write
* @return =>0, number of actually written bytes (can be less than size param)
* <0, in case of error (e.g. -EAGAIN if timeout expired). errno
* variable is also set.
*/
ssize_t console_write(void *dummy, const void *buf, size_t size);
/** @brief Get next char from console input buffer.
*
* Return next input character from console. If no characters available,
* this function will block. This function is similar to ANSI C
* getchar() function and is intended to ease porting of existing
* software. Before this function can be used, console_getchar_init()
* should be called once. This function is incompatible with native
* Zephyr callback-based console input processing, shell subsystem,
* or console_getline().
*
* @return 0-255: a character read, including control characters.
* <0: error occurred.
*/
int console_getchar(void);
/** @brief Output a char to console (buffered).
*
* Puts a character into console output buffer. It will be sent
* to a console asynchronously, e.g. using an IRQ handler.
*
* @return <0 on error, otherwise 0.
*/
int console_putchar(char c);
/** @brief Initialize console_getline() call.
*
* This function should be called once to initialize pull-style
* access to console via console_getline() function. This function
* supersedes, and incompatible with, callback (push-style) console
* handling (via console_input_fn callback, etc.).
*
* @return N/A
*/
void console_getline_init(void);
/** @brief Get next line from console input buffer.
*
* Return next input line from console. Until full line is available,
* this function will block. This function is similar to ANSI C
* gets() function (except a line is returned in system-owned buffer,
* and system takes care of the buffer overflow checks) and is
* intended to ease porting of existing software. Before this function
* can be used, console_getline_init() should be called once. This
* function is incompatible with native Zephyr callback-based console
* input processing, shell subsystem, or console_getchar().
*
* @return A pointer to a line read, not including EOL character(s).
* A line resides in a system-owned buffer, so an application
* should finish any processing of this line immediately
* after console_getline() call, or the buffer can be reused.
*/
char *console_getline(void);
/** @brief Initialize legacy fifo-based line input
*
* 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.
*
* This is a special-purpose function, it's recommended to use
* console_getchar() or console_getline() functions instead.
*
* @param avail_queue k_fifo queue keeping available line buffers
* @param out_queue k_fifo queue of entered lines which to be processed
* in the application code.
* @param completion callback for tab completion of entered commands
*/
__deprecated void console_register_line_input(struct k_fifo *avail_queue,
struct k_fifo *out_queue,
u8_t (*completion)(char *str, u8_t len));
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_INCLUDE_CONSOLE_H_ */
|