7#ifndef ZEPHYR_INCLUDE_IPC_SERVICE_IPC_RPMSG_H_
8#define ZEPHYR_INCLUDE_IPC_SERVICE_IPC_RPMSG_H_
11#include <openamp/open_amp.h>
12#include <metal/device.h>
25#define NUM_ENDPOINTS CONFIG_IPC_SERVICE_NUM_ENDPOINTS_PER_INSTANCE
46 struct rpmsg_endpoint
ep;
49 char name[RPMSG_NAME_SIZE];
73 struct rpmsg_virtio_device
rvdev;
108 struct metal_io_region *shm_io,
109 struct virtio_device *vdev,
110 void *shb,
size_t size,
111 rpmsg_ns_bind_cb ns_bind_cb);
int ipc_rpmsg_register_ept(struct ipc_rpmsg_instance *instance, unsigned int role, struct ipc_rpmsg_ept *ept)
Register an endpoint.
int ipc_rpmsg_init(struct ipc_rpmsg_instance *instance, unsigned int role, struct metal_io_region *shm_io, struct virtio_device *vdev, void *shb, size_t size, rpmsg_ns_bind_cb ns_bind_cb)
Init an RPMsg instance.
void(* rpmsg_ept_bound_cb)(struct ipc_rpmsg_ept *ept)
Define the bound callback.
Definition: ipc_rpmsg.h:38
#define NUM_ENDPOINTS
Definition: ipc_rpmsg.h:25
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
Endpoint structure.
Definition: ipc_rpmsg.h:44
char name[RPMSG_NAME_SIZE]
Definition: ipc_rpmsg.h:49
struct rpmsg_endpoint ep
Definition: ipc_rpmsg.h:46
const struct ipc_service_cb * cb
Definition: ipc_rpmsg.h:58
volatile bool bound
Definition: ipc_rpmsg.h:55
void * priv
Definition: ipc_rpmsg.h:61
uint32_t dest
Definition: ipc_rpmsg.h:52
RPMsg instance structure.
Definition: ipc_rpmsg.h:68
struct ipc_rpmsg_ept endpoint[CONFIG_IPC_SERVICE_NUM_ENDPOINTS_PER_INSTANCE]
Definition: ipc_rpmsg.h:70
struct rpmsg_virtio_shm_pool shm_pool
Definition: ipc_rpmsg.h:76
rpmsg_ept_cb cb
Definition: ipc_rpmsg.h:82
rpmsg_ept_bound_cb bound_cb
Definition: ipc_rpmsg.h:79
struct rpmsg_virtio_device rvdev
Definition: ipc_rpmsg.h:73
struct k_mutex mtx
Definition: ipc_rpmsg.h:85
Event callback structure.
Definition: ipc_service.h:66
Definition: kernel.h:2629