123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*
- * Copyright (c) 2021 Nordic Semiconductor ASA
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #ifndef ZEPHYR_INCLUDE_IPC_SERVICE_IPC_SERVICE_BACKEND_H_
- #define ZEPHYR_INCLUDE_IPC_SERVICE_IPC_SERVICE_BACKEND_H_
- #include <ipc/ipc_service.h>
- #include <stdio.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * @brief IPC Service backend
- * @ingroup ipc_service_api
- * @{
- */
- /** @brief IPC backend configuration structure.
- *
- * This structure is used for configuration backend during registration.
- */
- struct ipc_service_backend {
- /** @brief Name of the IPC backend. */
- const char *name;
- /** @brief Pointer to the function that will be used to send data to the endpoint.
- *
- * @param ept Registered endpoint.
- * @param data Pointer to the buffer to send.
- * @param len Number of bytes to send.
- *
- * @retval Status code.
- */
- int (*send)(struct ipc_ept *ept, const void *data, size_t len);
- /** @brief Pointer to the function that will be used to register endpoints.
- *
- * @param ept Endpoint object.
- * @param cfg Endpoint configuration.
- *
- * @retval Status code.
- */
- int (*register_endpoint)(struct ipc_ept **ept, const struct ipc_ept_cfg *cfg);
- };
- /** @brief IPC backend registration.
- *
- * Registration must be done before using IPC Service.
- *
- * @param backend Configuration of the backend.
- *
- * @retval -EALREADY The backend is already registered.
- * @retval -EINVAL The backend configuration is incorrect.
- * @retval Zero on success.
- *
- */
- int ipc_service_register_backend(const struct ipc_service_backend *backend);
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* ZEPHYR_INCLUDE_IPC_SERVICE_IPC_SERVICE_BACKEND_H_ */
|