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

          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 1.14