#include <sys/types.h>
#include <zephyr/types.h>
#include <kernel.h>
Go to the source code of this file.
|
int | tty_init (struct tty_serial *tty, const struct device *uart_dev) |
| Initialize serial port object (classically known as tty). More...
|
|
static void | tty_set_rx_timeout (struct tty_serial *tty, int32_t timeout) |
| Set receive timeout for tty device. More...
|
|
static void | tty_set_tx_timeout (struct tty_serial *tty, int32_t timeout) |
| Set transmit timeout for tty device. More...
|
|
int | tty_set_rx_buf (struct tty_serial *tty, void *buf, size_t size) |
| Set receive buffer for tty device. More...
|
|
int | tty_set_tx_buf (struct tty_serial *tty, void *buf, size_t size) |
| Set transmit buffer for tty device. More...
|
|
ssize_t | tty_read (struct tty_serial *tty, void *buf, size_t size) |
| Read data from a tty device. More...
|
|
ssize_t | tty_write (struct tty_serial *tty, const void *buf, size_t size) |
| Write data to tty device. More...
|
|
◆ tty_init()
Initialize serial port object (classically known as tty).
"tty" device provides support for buffered, interrupt-driven, timeout-controlled access to an underlying UART device. For completeness, it also support non-interrupt-driven, busy-polling access mode. After initialization, tty is in the "most conservative" unbuffered mode with infinite timeouts (this is guaranteed to work on any hardware). Users should configure buffers and timeouts as they need using functions tty_set_rx_buf(), tty_set_tx_buf(), tty_set_rx_timeout(), tty_set_tx_timeout().
- Parameters
-
tty | tty device structure to initialize |
uart_dev | underlying UART device to use (should support interrupt-driven operation) |
- Returns
- 0 on success, error code (<0) otherwise
◆ tty_read()
Read data from a tty device.
- Parameters
-
tty | tty device structure |
buf | buffer to read data to |
size | maximum number of bytes to read |
- Returns
- >0, number of actually read bytes (can be less than size param) =0, for EOF-like condition (e.g., break signaled) <0, in case of error (e.g. -EAGAIN if timeout expired). errno variable is also set.
◆ tty_set_rx_buf()
int tty_set_rx_buf |
( |
struct tty_serial * |
tty, |
|
|
void * |
buf, |
|
|
size_t |
size |
|
) |
| |
Set receive buffer for tty device.
Set receive buffer or switch to unbuffered operation for receive.
- Parameters
-
tty | tty device structure |
buf | buffer, or NULL for unbuffered operation |
size | buffer buffer size, 0 for unbuffered operation |
- Returns
- 0 on success, error code (<0) otherwise: EINVAL: unsupported buffer (size)
◆ tty_set_rx_timeout()
Set receive timeout for tty device.
Set timeout for getchar() operation. Default timeout after device initialization is SYS_FOREVER_MS.
- Parameters
-
tty | tty device structure |
timeout | timeout in milliseconds, or 0, or SYS_FOREVER_MS. |
◆ tty_set_tx_buf()
int tty_set_tx_buf |
( |
struct tty_serial * |
tty, |
|
|
void * |
buf, |
|
|
size_t |
size |
|
) |
| |
Set transmit buffer for tty device.
Set transmit buffer or switch to unbuffered operation for transmit. Note that unbuffered mode is implicitly blocking, i.e. behaves as if tty_set_tx_timeout(SYS_FOREVER_MS) was set.
- Parameters
-
tty | tty device structure |
buf | buffer, or NULL for unbuffered operation |
size | buffer buffer size, 0 for unbuffered operation |
- Returns
- 0 on success, error code (<0) otherwise: EINVAL: unsupported buffer (size)
◆ tty_set_tx_timeout()
Set transmit timeout for tty device.
Set timeout for putchar() operation, for a case when output buffer is full. Default timeout after device initialization is SYS_FOREVER_MS.
- Parameters
-
tty | tty device structure |
timeout | timeout in milliseconds, or 0, or SYS_FOREVER_MS. |
◆ tty_write()
Write data to tty device.
- Parameters
-
tty | tty device structure |
buf | buffer containing data |
size | maximum number of bytes to write |
- Returns
- =>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.