Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
zbus_proxy_agent_ipc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_ZBUS_PROXY_AGENT_ZBUS_PROXY_AGENT_IPC_H_
8#define ZEPHYR_INCLUDE_ZBUS_PROXY_AGENT_ZBUS_PROXY_AGENT_IPC_H_
9
10#include <zephyr/kernel.h>
11#include <zephyr/device.h>
12#include <zephyr/devicetree.h>
15#include <zephyr/sys/util.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
41
59
65 const struct device *dev;
67 const char *ept_name;
70};
71
73
80#define _ZBUS_PROXY_AGENT_BACKEND_CONFIG_DEFINE_ZBUS_PROXY_AGENT_BACKEND_IPC(_name, \
81 _backend_dt_node) \
82 static struct zbus_proxy_agent_ipc_data _name##_ipc_data = { \
83 .ept_cfg = { \
84 .name = #_name "_ipc_ept", \
85 }, \
86 }; \
87 static const struct zbus_proxy_agent_ipc_config _name##_ipc_config = { \
88 .dev = DEVICE_DT_GET(_backend_dt_node), \
89 .ept_name = #_name "_ipc_ept", \
90 .data = &_name##_ipc_data, \
91 };
92
99#define _ZBUS_PROXY_AGENT_GET_BACKEND_CONFIG_ZBUS_PROXY_AGENT_BACKEND_IPC(_name) \
100 (&_name##_ipc_config)
101
102/* Forward declaration of the IPC backend API */
103extern const struct zbus_proxy_agent_backend_api zbus_proxy_agent_ipc_backend_api;
104
110#define _ZBUS_PROXY_AGENT_GET_BACKEND_API_ZBUS_PROXY_AGENT_BACKEND_IPC \
111 (&zbus_proxy_agent_ipc_backend_api)
112
114
118
119#ifdef __cplusplus
120}
121#endif
122
123#endif /* ZEPHYR_INCLUDE_ZBUS_PROXY_AGENT_ZBUS_PROXY_AGENT_IPC_H_ */
Devicetree main header.
int(* zbus_proxy_agent_recv_cb_t)(const struct zbus_proxy_agent *agent, const struct zbus_proxy_msg *msg)
Type definition for the proxy agent receive callback function.
Definition zbus_proxy_agent.h:111
Public kernel APIs.
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Endpoint configuration structure.
Definition ipc_service.h:208
Semaphore structure.
Definition kernel.h:3798
Backend API structure for proxy agent backends.
Definition zbus_proxy_agent.h:117
Configuration structure for the IPC backend of a Zbus proxy agent.
Definition zbus_proxy_agent_ipc.h:63
const struct device * dev
IPC device.
Definition zbus_proxy_agent_ipc.h:65
const char * ept_name
Endpoint name for IPC.
Definition zbus_proxy_agent_ipc.h:67
struct zbus_proxy_agent_ipc_data * data
Pointer to mutable IPC backend runtime data.
Definition zbus_proxy_agent_ipc.h:69
Mutable runtime data for the IPC backend of a Zbus proxy agent.
Definition zbus_proxy_agent_ipc.h:45
const struct zbus_proxy_agent * recv_cb_config_ptr
pointer to proxy agent config, used as user data for the receive callback
Definition zbus_proxy_agent_ipc.h:55
uint8_t initialized
1 once backend init completes successfully, otherwise 0
Definition zbus_proxy_agent_ipc.h:57
struct ipc_ept_cfg ept_cfg
IPC endpoint configuration.
Definition zbus_proxy_agent_ipc.h:49
struct ipc_ept ipc_ept
IPC endpoint.
Definition zbus_proxy_agent_ipc.h:47
zbus_proxy_agent_recv_cb_t recv_cb
Callback function for received data.
Definition zbus_proxy_agent_ipc.h:53
struct k_sem ept_bound_sem
Semaphore to signal when the IPC endpoint is bound.
Definition zbus_proxy_agent_ipc.h:51
Structure for proxy agent configuration.
Definition zbus_proxy_agent.h:83
Misc utilities.
Zbus Multi-domain API.