8 #ifndef RPMSG_RPC_CLIENT_SERVER_H
9 #define RPMSG_RPC_CLIENT_SERVER_H
12 #include <metal/compiler.h>
14 #if defined __cplusplus
18 #define RPMSG_RPC_OK 0
19 #define RPMSG_RPC_INVALID_ID (-1L)
20 #define RPMSG_RPC_SERVICE_NAME "rpmsg-rpc"
27 #define MAX_BUF_LEN 488UL
28 #define MAX_FUNC_ID_LEN sizeof(uint32_t)
184 uint32_t rpc_id,
void *request_param,
185 size_t req_param_size);
203 int status,
void *request_param,
206 #if defined __cplusplus
void(* rpmsg_ns_unbind_cb)(struct rpmsg_endpoint *ept)
Definition: rpmsg.h:55
int rpmsg_rpc_client_init(struct rpmsg_rpc_clt *rpc, struct rpmsg_device *rdev, rpmsg_rpc_shutdown_cb shutdown_cb, const struct rpmsg_rpc_client_services *services, int len)
Definition: rpmsg_rpc_client.c:25
int rpmsg_rpc_server_init(struct rpmsg_rpc_svr *rpcs, struct rpmsg_device *rdev, const struct rpmsg_rpc_services *services, int len, rpmsg_ns_unbind_cb rpmsg_service_server_unbind)
Definition: rpmsg_rpc_server.c:16
METAL_PACKED_BEGIN struct rpmsg_rpc_answer METAL_PACKED_END
int rpmsg_rpc_client_send(struct rpmsg_rpc_clt *rpc, uint32_t rpc_id, void *request_param, size_t req_param_size)
Definition: rpmsg_rpc_client.c:50
int rpmsg_rpc_server_send(struct rpmsg_rpc_svr *rpcs, uint32_t rpc_id, int status, void *request_param, size_t param_size)
Definition: rpmsg_rpc_server.c:82
void(* rpmsg_rpc_shutdown_cb)(struct rpmsg_rpc_clt *rpc)
Definition: rpmsg_rpc_client_server.h:33
#define MAX_BUF_LEN
Definition: rpmsg_rpc_client_server.h:27
int(* rpmsg_rpc_syscall_cb)(void *data, struct rpmsg_rpc_svr *rpcs)
Definition: rpmsg_rpc_client_server.h:36
void(* app_cb)(struct rpmsg_rpc_clt *rpc, int status, void *data, size_t len)
Definition: rpmsg_rpc_client_server.h:34
void rpmsg_rpc_client_release(struct rpmsg_rpc_clt *rpc)
Definition: rpmsg_rpc_client.c:81
Representation of a RPMsg device.
Definition: rpmsg.h:133
Structure that binds a local RPMsg address to its user.
Definition: rpmsg.h:65
RPC request message.
Definition: rpmsg_rpc_client_server.h:52
int32_t status
Status of RPC.
Definition: rpmsg_rpc_client_server.h:57
uint32_t id
Service ID.
Definition: rpmsg_rpc_client_server.h:54
unsigned char params[MAX_BUF_LEN]
Answer params.
Definition: rpmsg_rpc_client_server.h:60
Table for client services.
Definition: rpmsg_rpc_client_server.h:73
app_cb cb
ID callback.
Definition: rpmsg_rpc_client_server.h:78
uint32_t id
Service ID.
Definition: rpmsg_rpc_client_server.h:75
Client remote procedure call data.
Definition: rpmsg_rpc_client_server.h:103
unsigned int n_services
Number of services.
Definition: rpmsg_rpc_client_server.h:114
rpmsg_rpc_shutdown_cb shutdown_cb
Shutdown callback function.
Definition: rpmsg_rpc_client_server.h:108
struct rpmsg_endpoint ept
RPMsg endpoint associated with the call.
Definition: rpmsg_rpc_client_server.h:105
const struct rpmsg_rpc_client_services * services
Service table.
Definition: rpmsg_rpc_client_server.h:111
struct rpmsg_rpc_request - rpc request message
Definition: rpmsg_rpc_client_server.h:45
uint32_t id
Definition: rpmsg_rpc_client_server.h:46
unsigned char params[MAX_BUF_LEN]
Definition: rpmsg_rpc_client_server.h:47
Table for services.
Definition: rpmsg_rpc_client_server.h:64
rpmsg_rpc_syscall_cb cb_function
ID callback.
Definition: rpmsg_rpc_client_server.h:69
uint32_t id
Service ID.
Definition: rpmsg_rpc_client_server.h:66
Server remote procedure call data.
Definition: rpmsg_rpc_client_server.h:86
unsigned int n_services
Number of services.
Definition: rpmsg_rpc_client_server.h:94
struct rpmsg_endpoint ept
RPMsg destination endpoint structure.
Definition: rpmsg_rpc_client_server.h:88
const struct rpmsg_rpc_services * services
Service table.
Definition: rpmsg_rpc_client_server.h:91