LCOV - code coverage report
Current view: top level - zephyr/drivers/serial - uart_emul.h Coverage Total Hit
Test: new.info Lines: 100.0 % 9 9
Test Date: 2025-09-05 20:47:19

            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 2.0-1