- VERB1("Create context %s", (*smx_process)->name);
- smx_ctx_sysv_t context = xbt_new0(s_smx_ctx_sysv_t, 1);
-
- context->code = code;
-
- xbt_assert2(getcontext(&(context->uc)) == 0,
- "Error in context saving: %d (%s)", errno, strerror(errno));
- context->uc.uc_link = NULL;
- context->uc.uc_stack.ss_sp =
- pth_skaddr_makecontext(context->stack, STACK_SIZE);
- context->uc.uc_stack.ss_size =
- pth_sksize_makecontext(context->stack, STACK_SIZE);
-#ifdef HAVE_VALGRIND_VALGRIND_H
- context->valgrind_stack_id =
- VALGRIND_STACK_REGISTER(context->uc.uc_stack.ss_sp,
- ((char *) context->uc.uc_stack.ss_sp) +
- context->uc.uc_stack.ss_size);
-#endif /* HAVE_VALGRIND_VALGRIND_H */
-
- context->exception = xbt_new(ex_ctx_t, 1);
- XBT_CTX_INITIALIZE(context->exception);
- (*smx_process)->context = (smx_context_t)context;
- (*smx_process)->iwannadie = 0;
-
- /* FIXME: Check what should return */
- return 1;
+
+ return smx_ctx_sysv_create_context_sized(sizeof(s_smx_ctx_sysv_t),
+ code, argc, argv, cleanup_func,
+ data);
+