Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ipc_service.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_IPC_SERVICE_H_
8#define ZEPHYR_INCLUDE_IPC_IPC_SERVICE_H_
9
10#include <stdio.h>
11#include <device.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
71 void (*bound)(void *priv);
72
79 void (*received)(const void *data, size_t len, void *priv);
80
86 void (*error)(const char *message, void *priv);
87};
88
94struct ipc_ept {
95
97 const struct device *instance;
98
100 void *token;
101};
102
105
107 const char *name;
108
110 int prio;
111
114
116 void *priv;
117};
118
131int ipc_service_open_instance(const struct device *instance);
132
133
152int ipc_service_register_endpoint(const struct device *instance,
153 struct ipc_ept *ept,
154 const struct ipc_ept_cfg *cfg);
155
171int ipc_service_send(struct ipc_ept *ept, const void *data, size_t len);
172
177#ifdef __cplusplus
178}
179#endif
180
181#endif /* ZEPHYR_INCLUDE_IPC_IPC_SERVICE_H_ */
int ipc_service_register_endpoint(const struct device *instance, struct ipc_ept *ept, const struct ipc_ept_cfg *cfg)
Register IPC endpoint onto an instance.
int ipc_service_send(struct ipc_ept *ept, const void *data, size_t len)
Send data using given IPC endpoint.
int ipc_service_open_instance(const struct device *instance)
Open an instance.
Runtime device structure (in ROM) per driver instance.
Definition: device.h:450
Endpoint configuration structure.
Definition: ipc_service.h:104
struct ipc_service_cb cb
Definition: ipc_service.h:113
void * priv
Definition: ipc_service.h:116
const char * name
Definition: ipc_service.h:107
int prio
Definition: ipc_service.h:110
Endpoint instance.
Definition: ipc_service.h:94
void * token
Definition: ipc_service.h:100
const struct device * instance
Definition: ipc_service.h:97
Event callback structure.
Definition: ipc_service.h:66
void(* bound)(void *priv)
Bind was successful.
Definition: ipc_service.h:71
void(* received)(const void *data, size_t len, void *priv)
New packet arrived.
Definition: ipc_service.h:79
void(* error)(const char *message, void *priv)
An error occurred.
Definition: ipc_service.h:86
static fdata_t data[2]
Definition: test_fifo_contexts.c:15