X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_barrier.h;h=605c814057fb5f42c8c7b07fa72b21be415f8079;hb=659151a0b655c619f3acbb98a45e9eeb8002a4b3;hp=4513c094ff2a3b216adff0716a5241be5916d4fe;hpb=882a72ee6359eb1f28754827a7e41380f275d148;p=palacios.git diff --git a/palacios/include/palacios/vmm_barrier.h b/palacios/include/palacios/vmm_barrier.h index 4513c09..605c814 100644 --- a/palacios/include/palacios/vmm_barrier.h +++ b/palacios/include/palacios/vmm_barrier.h @@ -22,18 +22,39 @@ #ifdef __V3VEE__ +#include +#include -#include -struct v3_barrier { - +struct v3_barrier { int active; // If 1, barrier is active, everyone must wait // If 0, barrier is clear, can proceed + struct v3_bitmap cpu_map; + v3_lock_t lock; }; +struct v3_vm_info; +struct guest_info; + +int v3_init_barrier(struct v3_vm_info * vm_info); +int v3_deinit_barrier(struct v3_vm_info * vm_info); + + +int v3_raise_barrier(struct v3_vm_info * vm_info, struct guest_info * local_core); +int v3_lower_barrier(struct v3_vm_info * vm_info); + +int v3_wait_at_barrier(struct guest_info * core); + + +/* Special Barrier activation functions. + * DO NOT USE THESE UNLESS YOU KNOW WHAT YOU ARE DOING + */ +int v3_raise_barrier_nowait(struct v3_vm_info * vm_info, struct guest_info * local_core); +int v3_wait_for_barrier(struct v3_vm_info * vm_info, struct guest_info * local_core); +/* ** */