aos/include/spawn/rpc_server.h
Jan Schär 0148df04a0 Partially implement urpc
Allocating memory on core 1 now works, but spawning on core 1 not yet.
2022-04-27 16:31:17 +02:00

38 lines
817 B
C

#ifndef _RPC_SERVER_H_
#define _RPC_SERVER_H_
#include <aos/aos.h>
struct generic_rpc_server {
void *shared_mem;
};
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_ */