You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.0 KiB
93 lines
2.0 KiB
/** |
|
* @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 */
|
|
|