X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/347b2193ad200d91018ca5be4894a4679fe09e79..2ba24bc5763918ed2a233ce2071324d0d1b9d024:/src/simix/smx_context_raw.c diff --git a/src/simix/smx_context_raw.c b/src/simix/smx_context_raw.c index 239d0a75ff..8a9a6f5c65 100644 --- a/src/simix/smx_context_raw.c +++ b/src/simix/smx_context_raw.c @@ -14,12 +14,6 @@ # include #endif /* HAVE_VALGRIND_VALGRIND_H */ -#ifdef _XBT_WIN32 -#include "win32_ucontext.h" -#else -#include "ucontext.h" -#endif - typedef char * raw_stack_t; typedef void (*rawctx_entry_point_t)(void *); @@ -142,6 +136,10 @@ __asm__ ( " retq\n" ); #else + +/* If you implement raw contextes for other processors, don't forget to + update the definition of HAVE_RAWCTX in buildtools/Cmake/AddTests.cmake */ + raw_stack_t raw_makecontext(char* malloced_stack, int stack_size, rawctx_entry_point_t entry_point, void* arg) { THROW_UNIMPLEMENTED; @@ -244,7 +242,7 @@ static void smx_ctx_raw_free(smx_context_t context) static void smx_ctx_raw_suspend(smx_context_t context) { - smx_current_context = (smx_context_t)maestro_raw_context; + SIMIX_context_set_current((smx_context_t) maestro_raw_context); raw_swapcontext( &((smx_ctx_raw_t) context)->stack_top, ((smx_ctx_raw_t) context)->old_stack_top); @@ -266,7 +264,7 @@ static void smx_ctx_raw_wrapper(smx_ctx_raw_t context) static void smx_ctx_raw_resume(smx_process_t process) { smx_ctx_raw_t context = (smx_ctx_raw_t)process->context; - smx_current_context = (smx_context_t)context; + SIMIX_context_set_current((smx_context_t) context); raw_swapcontext( &((smx_ctx_raw_t) context)->old_stack_top, ((smx_ctx_raw_t) context)->stack_top); @@ -365,7 +363,7 @@ static void smx_ctx_raw_runall_parallel(xbt_dynar_t processes) static smx_context_t smx_ctx_raw_self_parallel(void) { - return smx_current_context; + return SIMIX_context_get_current(); } static int smx_ctx_raw_get_thread_id(){