Zephyr API Documentation 4.3.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_IPC_H_
8#define ZEPHYR_INCLUDE_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
39
57
63 const struct device *dev;
65 const char *ept_name;
68};
69
71
78#define _ZBUS_PROXY_AGENT_BACKEND_CONFIG_DEFINE_ZBUS_PROXY_AGENT_BACKEND_IPC(_name, \
79 _backend_dt_node) \
80 static struct zbus_proxy_agent_ipc_data _name##_ipc_data = { \
81 .ept_cfg = { \
82 .name = #_name "_ipc_ept", \
83 }, \
84 }; \
85 static const struct zbus_proxy_agent_ipc_config _name##_ipc_config = { \
86 .dev = DEVICE_DT_GET(_backend_dt_node), \
87 .ept_name = #_name "_ipc_ept", \
88 .data = &_name##_ipc_data, \
89 };
90
97#define _ZBUS_PROXY_AGENT_GET_BACKEND_CONFIG_ZBUS_PROXY_AGENT_BACKEND_IPC(_name) \
98 (&_name##_ipc_config)
99
100/* Forward declaration of the IPC backend API */
101extern const struct zbus_proxy_agent_backend_api zbus_proxy_agent_ipc_backend_api;
102
108#define _ZBUS_PROXY_AGENT_GET_BACKEND_API_ZBUS_PROXY_AGENT_BACKEND_IPC \
109 (&zbus_proxy_agent_ipc_backend_api)
110
112
116
117#ifdef __cplusplus
118}
119#endif
120
121#endif /* ZEPHYR_INCLUDE_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:110
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:206
Semaphore structure.
Definition kernel.h:3663
Backend API structure for proxy agent backends.
Definition zbus_proxy_agent.h:116
Configuration structure for the IPC backend of a Zbus proxy agent.
Definition zbus_proxy_agent_ipc.h:61
const struct device * dev
IPC device.
Definition zbus_proxy_agent_ipc.h:63
const char * ept_name
Endpoint name for IPC.
Definition zbus_proxy_agent_ipc.h:65
struct zbus_proxy_agent_ipc_data * data
Pointer to mutable IPC backend runtime data.
Definition zbus_proxy_agent_ipc.h:67
Mutable runtime data for the IPC backend of a Zbus proxy agent.
Definition zbus_proxy_agent_ipc.h:43
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:53
uint8_t initialized
1 once backend init completes successfully, otherwise 0
Definition zbus_proxy_agent_ipc.h:55
struct ipc_ept_cfg ept_cfg
IPC endpoint configuration.
Definition zbus_proxy_agent_ipc.h:47
struct ipc_ept ipc_ept
IPC endpoint.
Definition zbus_proxy_agent_ipc.h:45
zbus_proxy_agent_recv_cb_t recv_cb
Callback function for received data.
Definition zbus_proxy_agent_ipc.h:51
struct k_sem ept_bound_sem
Semaphore to signal when the IPC endpoint is bound.
Definition zbus_proxy_agent_ipc.h:49
Structure for proxy agent configuration.
Definition zbus_proxy_agent.h:80
Misc utilities.
Zbus Multi-domain API.