aos/include/spawn/rpc_server.h
Jan Schär 691c295cf9 Implement spawn over URPC
It doesn't work yet because bootinfo is missing on core 1.
2022-04-28 11:25:04 +02:00

39 lines
892 B
C

#ifndef _RPC_SERVER_H_
#define _RPC_SERVER_H_
#include <aos/aos.h>
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_ */