#ifndef _RPC_SERVER_H_ #define _RPC_SERVER_H_ #include struct generic_rpc_server { void *shared_mem; void (*async_reply)(struct generic_rpc_server *rpc, errval_t ret_err); }; struct aos_rpc_server { struct generic_rpc_server g; struct lmp_chan *chan; struct capref ret_cap; errval_t ret_err; size_t ret_size; uintptr_t ret0; uintptr_t ret1; }; typedef errval_t (*rpc_handler_t)( struct generic_rpc_server *rpc, struct capref arg_cap, size_t arg_size, uintptr_t arg0, uintptr_t arg1, struct capref *ret_cap, size_t *ret_size, uintptr_t *ret0, uintptr_t *ret1 ); /** * Initialize an aos_rpc_server struct. */ void rpc_server_init(struct aos_rpc_server *rpc, struct lmp_chan *chan, void *shared_mem); /** * Start listening for RPCs. */ void rpc_server_register_recv(struct aos_rpc_server *rpc); #endif /* _RPC_SERVER_H_ */