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));
+
+ 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);
if(thread->host_thread){
}
-
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;
}
}
+void deinit_vnet(){
+ v3_deinit_vnet();
+ // host_hooks = NULL;
+}
+