30 #ifndef _LINUX_VIRGOCLOUDEXECSVC_H
31 #define _LINUX_VIRGOCLOUDEXECSVC_H
33 #include <linux/virgo.h>
34 #include <linux/socket.h>
37 int virgo_cloudexec_service(
void* args)
40 try_module_get(virgo_class.m_virgo_owner);
43 printk(KERN_INFO
"virgo_cloudexec_service(): virgo_ops.virgo_create() \n");
44 struct socket* clsock = virgo_ops.virgo_create();
52 struct task_struct *task;
55 printk(KERN_INFO
"virgo_cloudexec_service(): virgo client thread per request \n");
56 task=kthread_create(virgo_client_thread, (
void*)args,
"virgo client thread per virgo_clone request");
57 woken_up=wake_up_process(task);
72 int virgo_client_thread(
void* args)
74 struct socket* clientsock=(
struct socket*)args;
75 printk(KERN_INFO
"virgo_client_thread(): virgo_ops.virgo_recvfrom()\n");
76 virgo_ops.virgo_recvfrom(clientsock);
77 printk(KERN_INFO
"virgo_client_thread(): virgo_ops.virgo_sendto()\n");
78 virgo_ops.virgo_sendto(clientsock);