17MOS_RPC_USERFS_MANAGER_SERVER(userfs_manager)
30 resp->result.success =
true;
43 pr_emerg(
"fs_rpc_execute_server exited");
#define USERFS_SERVER_RPC_NAME
MOSAPI void linked_list_init(list_node_t *head_node)
Initialise a circular double linked list.
#define list_node(element)
Get the ‘list_node’ of a list element. This is exactly the reverse of ‘list_entry’ above.
void vfs_register_filesystem(filesystem_t *fs)
Thread * kthread_create(thread_entry_t entry, void *arg, const char *name)
Create a kernel-mode thread.
#define MOS_ARRAY_SIZE(x)
mos::basic_string< char, mos::default_allocator > string
T * create(Args &&...args)
#define pr_emerg(fmt,...)
@ RPC_RESULT_SERVER_INTERNAL_ERROR
MOSAPI rpc_server_t * rpc_server_create(const char *server_name, void *data)
Create a new RPC server.
MOSAPI bool rpc_server_register_functions(rpc_server_t *server, const rpc_function_info_t *functions, size_t count)
Register multiple functions with the server.
MOSAPI void rpc_server_exec(rpc_server_t *server)
Run the server, this function will not return until the server is destroyed.
#define MOS_INIT(_comp, _fn)
PtrResult< dentry_t >(* mount)(filesystem_t *fs, const char *dev_name, const char *mount_options)
mos::string rpc_server_name
The name of the RPC server.
filesystem_t fs
The filesystem, "userfs.<name>".
PtrResult< dentry_t > userfs_fsop_mount(filesystem_t *fs, const char *device, const char *options)
static void userfs_manager_rpc_init()
static rpc_result_code_t userfs_manager_register_filesystem(rpc_context_t *, mosrpc_userfs_register_request *req, mosrpc_userfs_register_response *resp)
static void userfs_manager_server_exec(void *arg)