LCOV - code coverage report
Current view: top level - zephyr/ipc - rpmsg_service.h Hit Total Coverage
Test: new.info Lines: 3 4 75.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2020 Nordic Semiconductor ASA
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_RPMSG_SERVICE_RPMSG_SERVICE_H_
       8             : #define ZEPHYR_INCLUDE_RPMSG_SERVICE_RPMSG_SERVICE_H_
       9             : 
      10             : #include <openamp/open_amp.h>
      11             : 
      12             : #ifdef __cplusplus
      13             : extern "C" {
      14             : #endif
      15             : 
      16             : /**
      17             :  * @brief RPMsg service API
      18             :  * @defgroup rpmsg_service_api RPMsg service APIs
      19             :  * @ingroup ipc
      20             :  * @{
      21             :  */
      22             : 
      23             : /**
      24             :  * @brief Register IPC endpoint
      25             :  *
      26             :  * Registers IPC endpoint to enable communication with a remote device.
      27             :  * The endpoint is created when the slave device registers it.
      28             :  *
      29             :  * The same function registers endpoints for both master and slave devices.
      30             :  *
      31             :  * @param name String containing the name of the endpoint. Must be identical
      32             :  *             for master and slave
      33             :  * @param cb Callback executed when data are available on given endpoint
      34             :  *
      35             :  * @retval >=0 id of registered endpoint on success;
      36             :  * @retval -EINPROGRESS when requested to register an endpoint after endpoints
      37             :  *         creation procedure has started;
      38             :  * @retval -ENOMEM when there is not enough slots to register the endpoint;
      39             :  * @retval <0 an other negative errno code, reported by rpmsg.
      40             :  */
      41           1 : int rpmsg_service_register_endpoint(const char *name, rpmsg_ept_cb cb);
      42             : 
      43             : /**
      44             :  * @brief Send data using given IPC endpoint
      45             :  *
      46             :  * @param endpoint_id Id of registered endpoint, obtained by
      47             :  *                    @ref rpmsg_service_register_endpoint
      48             :  * @param data Pointer to the buffer to send through RPMsg service
      49             :  * @param len Number of bytes to send.
      50             :  *
      51             :  * @retval >=0 number of sent bytes;
      52             :  * @retval <0 an error code, reported by rpmsg.
      53             :  */
      54           1 : int rpmsg_service_send(int endpoint_id, const void *data, size_t len);
      55             : 
      56             : /**
      57             :  * @brief Check if endpoint is bound.
      58             :  *
      59             :  * Checks if remote endpoint has been created
      60             :  * and the master has bound its endpoint to it.
      61             :  *
      62             :  * @param endpoint_id Id of registered endpoint, obtained by
      63             :  *                    @ref rpmsg_service_register_endpoint
      64             :  *
      65             :  * @retval true endpoint is bound
      66             :  * @retval false endpoint not bound
      67             :  */
      68           1 : bool rpmsg_service_endpoint_is_bound(int endpoint_id);
      69             : 
      70             : /**
      71             :  * @}
      72             :  */
      73             : 
      74             : 
      75             : #ifdef __cplusplus
      76             : }
      77             : #endif
      78             : 
      79             : #endif /* ZEPHYR_INCLUDE_RPMSG_SERVICE_RPMSG_SERVICE_H_ */

Generated by: LCOV version 1.14