30 #ifndef _LINUX_VIRGOCLOUDEXECMEMPOOLSVC_H
31 #define _LINUX_VIRGOCLOUDEXECMEMPOOLSVC_H
33 #include <linux/virgo_fs.h>
34 #include <linux/socket.h>
37 int virgo_cloudexec_fs_service(
void* args)
40 try_module_get(virgo_fs_class.m_virgo_owner);
43 printk(KERN_INFO
"virgo_cloudexec_fs_service(): virgo_fs_ops.virgo_create() \n");
44 struct socket* clsock = virgo_fs_ops.virgo_fs_create();
52 struct task_struct *task;
55 printk(KERN_INFO
"virgo_cloudexec_fs_service(): virgo fs client thread per request \n");
56 task=kthread_create(virgo_fs_client_thread, (
void*)args,
"virgo fs client thread per virgo_fs syscall request");
57 woken_up=wake_up_process(task);
72 int virgo_fs_client_thread(
void* args)
75 struct socket* clientsock=(
struct socket*)args;
76 printk(KERN_INFO
"virgo_fs_client_thread(): virgo_fs_ops.virgo_fs_recvfrom()\n");
77 char *virgo_fs_ret=(
char*)virgo_fs_ops.virgo_fs_recvfrom(clientsock);
78 printk(KERN_INFO
"virgo_fs_client_thread(): virgo_fs_ops.virgo_fs_sendto()\n");
79 virgo_fs_ops.virgo_fs_sendto(clientsock, virgo_fs_ret);