X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm.h;h=db94298c6f017e951ca49df48766f9bdd07e2004;hp=7aba5de14bf1ebca71820c42b03a5696d6a9a8c3;hb=ed88df2e8e304ac4b391521d47c192127ad9bc5a;hpb=e58b54396372b4f32ec569f4d8ce18065c769450 diff --git a/palacios/include/palacios/vmm.h b/palacios/include/palacios/vmm.h index 7aba5de..db94298 100644 --- a/palacios/include/palacios/vmm.h +++ b/palacios/include/palacios/vmm.h @@ -217,12 +217,19 @@ int v3_get_vcore(struct guest_info *); #define V3_CREATE_THREAD_ON_CPU(cpu, fn, arg, name) ({ \ void * thread = NULL; \ extern struct v3_os_hooks * os_hooks; \ - if ((os_hooks) && (os_hooks)->start_thread_on_cpu) { \ - thread = (os_hooks)->start_thread_on_cpu(cpu, fn, arg, name); \ + if ((os_hooks) && (os_hooks)->create_thread_on_cpu) { \ + thread = (os_hooks)->create_thread_on_cpu(cpu, fn, arg, name); \ } \ thread; \ }) +#define V3_START_THREAD(thread) ({ \ + extern struct v3_os_hooks * os_hooks; \ + if((os_hooks) && (os_hooks)->start_thread){ \ + (os_hooks)->start_thread(thread); \ + } \ + }) + #define V3_MOVE_THREAD_TO_CPU(pcpu, thread) ({ \ int ret = -1; \ extern struct v3_os_hooks * os_hooks; \ @@ -354,7 +361,8 @@ struct v3_os_hooks { void * (*start_kernel_thread)(int (*fn)(void * arg), void * arg, char * thread_name); void (*interrupt_cpu)(struct v3_vm_info * vm, int logical_cpu, int vector); void (*call_on_cpu)(int logical_cpu, void (*fn)(void * arg), void * arg); - void * (*start_thread_on_cpu)(int cpu_id, int (*fn)(void * arg), void * arg, char * thread_name); + void * (*create_thread_on_cpu)(int cpu_id, int (*fn)(void * arg), void * arg, char * thread_name); + void (*start_thread)(void * core_thread); int (*move_thread_to_cpu)(int cpu_id, void * thread); };