11#ifndef ARES_SERIAL_BACKEND_H
12#define ARES_SERIAL_BACKEND_H
16#include <zephyr/sys/ring_buffer.h>
31 const struct device *
dev;
98#define SERIAL_UART_STRUCT struct serial_uart_int_driven
104#define SERIAL_UART_DEFINE(_name) \
105 static SERIAL_UART_STRUCT _name##_backend_uart; \
106 static struct ares_serial_transport _name = { \
107 .api = &ares_serial_uart_transport_api, .ctx = &_name##_backend_uart}
void(* serial_transport_handler_t)(enum serial_transport_evt evt, void *ctx)
Serial transport event handler prototype.
Definition serial.h:36
const struct ares_serial * ares_serial_backend_uart_get_ptr(void)
Provides pointer to the ares_serial backend instance.
const struct ares_serial_transport_api ares_serial_uart_transport_api
#define SERIAL_BACKEND_TX_RINGBUF_SIZE
Definition serial_common.h:23
#define SERIAL_BACKEND_RX_RINGBUF_SIZE
Definition serial_common.h:35
Unified serial transport interface.
Definition serial.h:48
Ares serial internals.
Definition serial.h:267
Serial transfer layer common internals.
Definition serial_backend.h:27
serial_transport_handler_t handler
Definition serial_backend.h:36
bool block_tx
Definition serial_backend.h:46
atomic_t block_no_usb
Definition serial_backend.h:51
void * context
Definition serial_backend.h:41
const struct device * dev
Definition serial_backend.h:31
Serial interrupt driven transport layer internals.
Definition serial_backend.h:58
struct ring_buf tx_ringbuf
Definition serial_backend.h:67
struct ring_buf rx_ringbuf
Definition serial_backend.h:72
atomic_t tx_busy
Definition serial_backend.h:92
uint8_t rx_buf[SERIAL_BACKEND_RX_RINGBUF_SIZE]
Definition serial_backend.h:82
struct serial_uart_common common
Definition serial_backend.h:62
struct k_timer dtr_timer
Definition serial_backend.h:87
uint8_t tx_buf[SERIAL_BACKEND_TX_RINGBUF_SIZE]
Definition serial_backend.h:77