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