Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
ipc_service_backend.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_IPC_SERVICE_IPC_SERVICE_BACKEND_H_
8#define ZEPHYR_INCLUDE_IPC_SERVICE_IPC_SERVICE_BACKEND_H_
9
11#include <zephyr/kernel.h>
12#include <stdio.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
40 int (*open_instance)(const struct device *instance);
41
52 int (*close_instance)(const struct device *instance);
53
71 int (*send)(const struct device *instance, void *token,
72 const void *data, size_t len);
73
87 int (*register_endpoint)(const struct device *instance,
88 void **token,
89 const struct ipc_ept_cfg *cfg);
90
104 int (*deregister_endpoint)(const struct device *instance, void *token);
105
119 int (*get_tx_buffer_size)(const struct device *instance, void *token);
120
141 int (*get_tx_buffer)(const struct device *instance, void *token,
142 void **data, uint32_t *len, k_timeout_t wait);
143
159 int (*drop_tx_buffer)(const struct device *instance, void *token,
160 const void *data);
161
181 int (*send_nocopy)(const struct device *instance, void *token,
182 const void *data, size_t len);
183
199 int (*hold_rx_buffer)(const struct device *instance, void *token,
200 void *data);
201
217 int (*release_rx_buffer)(const struct device *instance, void *token,
218 void *data);
219};
220
225#ifdef __cplusplus
226}
227#endif
228
229#endif /* ZEPHYR_INCLUDE_IPC_SERVICE_IPC_SERVICE_BACKEND_H_ */
Public kernel APIs.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
Runtime device structure (in ROM) per driver instance.
Definition: device.h:403
Endpoint configuration structure.
Definition: ipc_service.h:191
IPC backend configuration structure.
Definition: ipc_service_backend.h:29
int(* close_instance)(const struct device *instance)
Pointer to the function that will be used to close an instance.
Definition: ipc_service_backend.h:52
int(* deregister_endpoint)(const struct device *instance, void *token)
Pointer to the function that will be used to deregister endpoints.
Definition: ipc_service_backend.h:104
int(* send)(const struct device *instance, void *token, const void *data, size_t len)
Pointer to the function that will be used to send data to the endpoint.
Definition: ipc_service_backend.h:71
int(* hold_rx_buffer)(const struct device *instance, void *token, void *data)
Pointer to the function that will hold the RX buffer.
Definition: ipc_service_backend.h:199
int(* send_nocopy)(const struct device *instance, void *token, const void *data, size_t len)
Pointer to the function that will be used to send data to the endpoint when the TX buffer has been ob...
Definition: ipc_service_backend.h:181
int(* get_tx_buffer)(const struct device *instance, void *token, void **data, uint32_t *len, k_timeout_t wait)
Pointer to the function that will return an empty TX buffer.
Definition: ipc_service_backend.h:141
int(* release_rx_buffer)(const struct device *instance, void *token, void *data)
Pointer to the function that will release the RX buffer.
Definition: ipc_service_backend.h:217
int(* get_tx_buffer_size)(const struct device *instance, void *token)
Pointer to the function that will return the TX buffer size.
Definition: ipc_service_backend.h:119
int(* open_instance)(const struct device *instance)
Pointer to the function that will be used to open an instance.
Definition: ipc_service_backend.h:40
int(* drop_tx_buffer)(const struct device *instance, void *token, const void *data)
Pointer to the function that will drop a TX buffer.
Definition: ipc_service_backend.h:159
int(* register_endpoint)(const struct device *instance, void **token, const struct ipc_ept_cfg *cfg)
Pointer to the function that will be used to register endpoints.
Definition: ipc_service_backend.h:87
Kernel timeout type.
Definition: sys_clock.h:65