| /** |
| * @brief "Bottom" of native tty uart driver |
| * |
| * When built with the native_simulator this will be built in the runner context, |
| * that is, with the host C library, and with the host include paths. |
| * |
| * Copyright (c) 2023 Marko Sagadin |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef DRIVERS_SERIAL_UART_NATIVE_TTY_BOTTOM_H |
| #define DRIVERS_SERIAL_UART_NATIVE_TTY_BOTTOM_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <stdint.h> |
| |
| /* Below enums are just differently namespaced copies of uart_config_* enums. Options that are not |
| * supported on the host are not listed. |
| */ |
| enum native_tty_bottom_parity { |
| NTB_PARITY_NONE, |
| NTB_PARITY_ODD, |
| NTB_PARITY_EVEN, |
| }; |
| |
| enum native_tty_bottom_stop_bits { |
| NTB_STOP_BITS_1, |
| NTB_STOP_BITS_2, |
| }; |
| |
| enum native_tty_bottom_data_bits { |
| NTB_DATA_BITS_5, |
| NTB_DATA_BITS_6, |
| NTB_DATA_BITS_7, |
| NTB_DATA_BITS_8, |
| }; |
| |
| enum native_tty_bottom_flow_control { |
| NTB_FLOW_CTRL_NONE, |
| }; |
| |
| struct native_tty_bottom_cfg { |
| uint32_t baudrate; |
| enum native_tty_bottom_parity parity; |
| enum native_tty_bottom_stop_bits stop_bits; |
| enum native_tty_bottom_data_bits data_bits; |
| enum native_tty_bottom_flow_control flow_ctrl; |
| }; |
| |
| /* Note: None of these functions are public interfaces. They are internal to the native tty driver. |
| */ |
| |
| /** |
| * @brief Check for available input on tty file descriptor |
| * |
| * @param fd |
| * |
| * @retval 1 if data is available |
| * @retval 0 if data is not available |
| * @retval <0 on error |
| */ |
| int native_tty_poll_bottom(int fd); |
| |
| /** |
| * @brief Opens tty port on the given pathname |
| * |
| * Returned file descriptor can be then passed to native_tty_configure_bottom to configure it. |
| * |
| * @param pathname |
| * |
| * @return file descriptor |
| */ |
| int native_tty_open_tty_bottom(const char *pathname); |
| |
| /** |
| * @brief Configure tty port |
| * |
| * @param fd File descriptor of the tty port. |
| * @param cfg Configuration struct. |
| * |
| * @retval 0 if successful, |
| * @retval -1 otherwise. |
| */ |
| int native_tty_configure_bottom(int fd, struct native_tty_bottom_cfg *cfg); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* DRIVERS_SERIAL_UART_NATIVE_TTY_BOTTOM_H */ |