8#ifndef RPMSG_RETARGET_H
9#define RPMSG_RETARGET_H
11#include <metal/mutex.h>
15#if defined __cplusplus
20#define OPEN_SYSCALL_ID 0x1UL
21#define CLOSE_SYSCALL_ID 0x2UL
22#define WRITE_SYSCALL_ID 0x3UL
23#define READ_SYSCALL_ID 0x4UL
24#define ACK_STATUS_ID 0x5UL
26#define TERM_SYSCALL_ID 0x6UL
28#define DEFAULT_PROXY_ENDPOINT 0xFFUL
81 const char *ept_name, uint32_t ept_addr,
115 void *req,
size_t len,
116 void *resp,
size_t resp_len);
130#if defined __cplusplus
void(* rpmsg_rpc_shutdown_cb)(struct rpmsg_rpc_data *rpc)
Definition rpmsg_retarget.h:33
void rpmsg_set_default_rpc(struct rpmsg_rpc_data *rpc)
Definition rpmsg_retarget.c:144
int(* rpmsg_rpc_poll)(void *arg)
Definition rpmsg_retarget.h:32
int rpmsg_rpc_init(struct rpmsg_rpc_data *rpc, struct rpmsg_device *rdev, const char *ept_name, uint32_t ept_addr, uint32_t ept_raddr, void *poll_arg, rpmsg_rpc_poll poll, rpmsg_rpc_shutdown_cb shutdown_cb)
Definition rpmsg_retarget.c:69
void rpmsg_rpc_release(struct rpmsg_rpc_data *rpc)
Definition rpmsg_retarget.c:104
int rpmsg_rpc_send(struct rpmsg_rpc_data *rpc, void *req, size_t len, void *resp, size_t resp_len)
Definition rpmsg_retarget.c:119
Representation of a RPMsg device.
Definition rpmsg.h:133
Structure that binds a local RPMsg address to its user.
Definition rpmsg.h:65
Definition rpmsg_retarget.h:46
struct metal_spinlock buflock
Definition rpmsg_retarget.h:56
rpmsg_rpc_shutdown_cb shutdown_cb
Definition rpmsg_retarget.h:54
size_t respbuf_len
Definition rpmsg_retarget.h:51
struct rpmsg_endpoint ept
Definition rpmsg_retarget.h:47
atomic_flag nacked
Definition rpmsg_retarget.h:49
metal_mutex_t lock
Definition rpmsg_retarget.h:55
int ept_destroyed
Definition rpmsg_retarget.h:48
void * poll_arg
Definition rpmsg_retarget.h:53
rpmsg_rpc_poll poll
Definition rpmsg_retarget.h:52
void * respbuf
Definition rpmsg_retarget.h:50
Definition rpmsg_retarget.h:41
struct rpmsg_rpc_syscall_header args
Definition rpmsg_retarget.h:43
uint32_t id
Definition rpmsg_retarget.h:42