LCOV - code coverage report
Current view: top level - zephyr/drivers/serial - uart_emul.h Hit Total Coverage
Test: new.info Lines: 9 9 100.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2023 Fabian Blatz
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief Backend API for emulated UART
      10             :  */
      11             : 
      12             : #ifndef ZEPHYR_INCLUDE_DRIVERS_SERIAL_UART_EMUL_H_
      13             : #define ZEPHYR_INCLUDE_DRIVERS_SERIAL_UART_EMUL_H_
      14             : 
      15             : #include <zephyr/device.h>
      16             : #include <zephyr/types.h>
      17             : 
      18             : #ifdef __cplusplus
      19             : extern "C" {
      20             : #endif
      21             : 
      22             : /**
      23             :  * @brief Define the application callback function signature for
      24             :  * uart_emul_callback_tx_data_ready_set() function.
      25             :  *
      26             :  * @param dev UART device instance
      27             :  * @param size Number of available bytes in TX buffer
      28             :  * @param user_data Arbitrary user data
      29             :  */
      30           1 : typedef void (*uart_emul_callback_tx_data_ready_t)(const struct device *dev, size_t size,
      31             :                                                    void *user_data);
      32             : 
      33             : /**
      34             :  * @brief Set the TX data ready callback
      35             :  *
      36             :  * This sets up the callback that is called every time data
      37             :  * was appended to the TX buffer.
      38             :  *
      39             :  * @param dev The emulated UART device instance
      40             :  * @param cb Pointer to the callback function
      41             :  * @param user_data Data to pass to callback function
      42             :  */
      43           1 : void uart_emul_callback_tx_data_ready_set(const struct device *dev,
      44             :                                           uart_emul_callback_tx_data_ready_t cb, void *user_data);
      45             : 
      46             : /**
      47             :  * @brief Write (copy) data to RX buffer
      48             :  *
      49             :  * @param dev The emulated UART device instance
      50             :  * @param data The data to append
      51             :  * @param size Number of bytes to append
      52             :  *
      53             :  * @return Number of bytes appended
      54             :  */
      55           1 : uint32_t uart_emul_put_rx_data(const struct device *dev, const uint8_t *data, size_t size);
      56             : 
      57             : /**
      58             :  * @brief Read data from TX buffer
      59             :  *
      60             :  * @param dev The emulated UART device instance
      61             :  * @param data The address of the output buffer
      62             :  * @param size Number of bytes to read
      63             :  *
      64             :  * @return Number of bytes written to the output buffer
      65             :  */
      66           1 : uint32_t uart_emul_get_tx_data(const struct device *dev, uint8_t *data, size_t size);
      67             : 
      68             : /**
      69             :  * @brief Clear RX buffer content
      70             :  *
      71             :  * @param dev The emulated UART device instance
      72             :  *
      73             :  * @return Number of cleared bytes
      74             :  */
      75           1 : uint32_t uart_emul_flush_rx_data(const struct device *dev);
      76             : 
      77             : /**
      78             :  * @brief Clear TX buffer content
      79             :  *
      80             :  * @param dev The emulated UART device instance
      81             :  *
      82             :  * @return Number of cleared bytes
      83             :  */
      84           1 : uint32_t uart_emul_flush_tx_data(const struct device *dev);
      85             : 
      86             : /**
      87             :  * @brief Sets one or more driver errors
      88             :  *
      89             :  * @param dev The emulated UART device instance
      90             :  * @param errors The @ref uart_rx_stop_reason errors to set
      91             :  */
      92           1 : void uart_emul_set_errors(const struct device *dev, int errors);
      93             : 
      94             : /**
      95             :  * @brief Configures if rx buffer should be released on timeout, even when only partially filled.
      96             :  *
      97             :  * @param dev The emulated UART device instance
      98             :  * @param release_on_timeout When true, buffer will be released on timeout
      99             :  */
     100           1 : void uart_emul_set_release_buffer_on_timeout(const struct device *dev, bool release_on_timeout);
     101             : 
     102             : #ifdef __cplusplus
     103             : }
     104             : #endif
     105             : 
     106             : #endif /* ZEPHYR_INCLUDE_DRIVERS_SERIAL_UART_EMUL_H_ */

Generated by: LCOV version 1.14