X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fvnet%2Fvnet_host.c;h=c03e0fa4f30bf8f278ba741ab3ef3ffab70a5003;hb=de5c2110458436a9300aa0a171dbbe83e415ee4d;hp=2121e7f46c7248b3746164a4f6bf295d8f367573;hpb=e39ac677ad4eb2c2db111ce08eb6172c61f5001f;p=palacios.git diff --git a/palacios/src/vnet/vnet_host.c b/palacios/src/vnet/vnet_host.c index 2121e7f..c03e0fa 100644 --- a/palacios/src/vnet/vnet_host.c +++ b/palacios/src/vnet/vnet_host.c @@ -22,23 +22,17 @@ struct vnet_host_hooks * host_hooks; -int vnet_lock_init(vnet_lock_t * lock) { - if((host_hooks) && host_hooks->mutex_alloc){ - *lock = (addr_t)(host_hooks->mutex_alloc()); - - if (*lock) { - return 0; - } - } - - return -1; -} - - struct vnet_thread * vnet_start_thread(int (*func)(void *), void *arg, char * name){ if((host_hooks) && host_hooks->thread_start){ + struct vnet_thread * thread = Vnet_Malloc(sizeof(struct vnet_thread)); - thread->host_thread = host_hooks->thread_start(func, arg, name); + + if (!thread) { + PrintError(VM_NONE, VCORE_NONE, "Cannot allocate space to create a vnet thread\n"); + return NULL; + } + + thread->host_thread = host_hooks->thread_start(func, arg, name, 0); if(thread->host_thread){ return thread; @@ -50,13 +44,19 @@ struct vnet_thread * vnet_start_thread(int (*func)(void *), void *arg, char * na } - struct vnet_timer * vnet_create_timer(unsigned long interval, void (* timer_fun)(void * priv_data), void * priv_data){ if((host_hooks) && host_hooks->timer_create){ struct vnet_timer * timer = Vnet_Malloc(sizeof(struct vnet_timer)); + + if (!timer) { + PrintError(VM_NONE, VCORE_NONE, "Cannot allocate space to create a vnet timer\n"); + return NULL; + } + timer->host_timer = host_hooks->timer_create(interval, timer_fun, priv_data); + return timer; } @@ -70,3 +70,8 @@ void init_vnet(struct vnet_host_hooks * hooks){ } +void deinit_vnet(){ + v3_deinit_vnet(); + // host_hooks = NULL; +} +