LCOV - code coverage report
Current view: top level - zephyr/drivers/console - uart_mcumgr.h Coverage Total Hit
Test: new.info Lines: 66.7 % 9 6
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /*
       2              :  * Copyright Runtime.io 2018. All rights reserved.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /** @file
       8              :  * @brief A driver for sending and receiving mcumgr packets over UART.
       9              :  *
      10              :  * @see include/mgmt/serial.h
      11              :  */
      12              : 
      13              : #ifndef ZEPHYR_INCLUDE_DRIVERS_CONSOLE_UART_MCUMGR_H_
      14              : #define ZEPHYR_INCLUDE_DRIVERS_CONSOLE_UART_MCUMGR_H_
      15              : 
      16              : #include <stdlib.h>
      17              : #include <zephyr/types.h>
      18              : 
      19              : #ifdef __cplusplus
      20              : extern "C" {
      21              : #endif
      22              : 
      23              : /**
      24              :  * @brief Contains an mcumgr fragment received over UART.
      25              :  */
      26            1 : struct uart_mcumgr_rx_buf {
      27            0 :         void *fifo_reserved;   /* 1st word reserved for use by fifo */
      28            0 :         uint8_t data[CONFIG_UART_MCUMGR_RX_BUF_SIZE];
      29            0 :         int length;
      30              : };
      31              : 
      32              : /** @typedef uart_mcumgr_recv_fn
      33              :  * @brief Function that gets called when an mcumgr packet is received.
      34              :  *
      35              :  * Function that gets called when an mcumgr packet is received.  This function
      36              :  * gets called in the interrupt context.  Ownership of the specified buffer is
      37              :  * transferred to the callback when this function gets called.
      38              :  *
      39              :  * @param rx_buf                A buffer containing the incoming mcumgr packet.
      40              :  */
      41            1 : typedef void uart_mcumgr_recv_fn(struct uart_mcumgr_rx_buf *rx_buf);
      42              : 
      43              : /**
      44              :  * @brief Sends an mcumgr packet over UART.
      45              :  *
      46              :  * @param data                  Buffer containing the mcumgr packet to send.
      47              :  * @param len                   The length of the buffer, in bytes.
      48              :  *
      49              :  * @return                      0 on success; negative error code on failure.
      50              :  */
      51            1 : int uart_mcumgr_send(const uint8_t *data, int len);
      52              : 
      53              : /**
      54              :  * @brief Frees the supplied receive buffer.
      55              :  *
      56              :  * @param rx_buf                The buffer to free.
      57              :  */
      58            1 : void uart_mcumgr_free_rx_buf(struct uart_mcumgr_rx_buf *rx_buf);
      59              : 
      60              : /**
      61              :  * @brief Registers an mcumgr UART receive handler.
      62              :  *
      63              :  * Configures the mcumgr UART driver to call the specified function when an
      64              :  * mcumgr request packet is received.
      65              :  *
      66              :  * @param cb                    The callback to execute when an mcumgr request
      67              :  *                                  packet is received.
      68              :  */
      69            1 : void uart_mcumgr_register(uart_mcumgr_recv_fn *cb);
      70              : 
      71              : #ifdef __cplusplus
      72              : }
      73              : #endif
      74              : 
      75              : #endif
        

Generated by: LCOV version 2.0-1