Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
let the decoupling of main lib and bindings work in supernovae (were multiple definit...
[simgrid.git] / src / simix / smx_context_private.h
index 5c561c1..cce495c 100644 (file)
@@ -1,7 +1,7 @@
 /* a fast and simple context switching library                              */
 
-/* Copyright (c) 2004-2008 the SimGrid team.                                */
-/* All rights reserved.                                                     */
+/* Copyright (c) 2009, 2010. The SimGrid Team.
+ * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 #include "simix/private.h"
 
 SG_BEGIN_DECL()
+/*Hack: let msg load directly the right factory */
+typedef void (*SIMIX_ctx_factory_initializer_t)(smx_context_factory_t *);
+extern SIMIX_ctx_factory_initializer_t factory_initializer_to_use;
 
 /* *********************** */
 /* Context type definition */
 /* *********************** */
 /* the following function pointers types describe the interface that all context
    concepts must implement */
-/* the following function pointers types describe the interface that all context
-   concepts must implement */
-
 /* each context type derive from this structure, so they must contain this structure
  * at their begining -- OOP in C :/ */
 typedef struct s_smx_context {
@@ -38,41 +38,12 @@ int smx_ctx_base_factory_finalize(smx_context_factory_t * factory);
 
 smx_context_t
 smx_ctx_base_factory_create_context_sized(size_t size,
-    xbt_main_func_t code, int argc, char** argv,
-    void_f_pvoid_t cleanup_func, void* cleanup_arg);
+                                          xbt_main_func_t code, int argc,
+                                          char **argv,
+                                          void_f_pvoid_t cleanup_func,
+                                          void *cleanup_arg);
 void smx_ctx_base_free(smx_context_t context);
 void smx_ctx_base_stop(smx_context_t context);
 
-/* Functions of sysv context mecanism: lua inherites them */
-#include "portable.h"
-#ifdef CONTEXT_UCONTEXT
-
-/* lower this if you want to reduce the memory consumption  */
-#ifndef CONTEXT_STACK_SIZE /* allow lua to override this */
-#define CONTEXT_STACK_SIZE 128*1024
-#endif /*CONTEXT_STACK_SIZE */
-
-#include "context_sysv_config.h"        /* loads context system definitions */
-#include <ucontext.h>           /* context relative declarations */
-
-typedef struct s_smx_ctx_sysv {
-  s_smx_ctx_base_t super;       /* Fields of super implementation */
-  ucontext_t uc;                /* the thread that execute the code */
-  char stack[CONTEXT_STACK_SIZE];       /* the thread stack size */
-#ifdef HAVE_VALGRIND_VALGRIND_H
-  unsigned int valgrind_stack_id;       /* the valgrind stack id */
-#endif
-} s_smx_ctx_sysv_t, *smx_ctx_sysv_t;smx_context_t
-smx_ctx_sysv_create_context_sized(size_t size,
-    xbt_main_func_t code, int argc, char** argv,
-    void_f_pvoid_t cleanup_func, void* cleanup_arg);
-void smx_ctx_sysv_free(smx_context_t context);
-void smx_ctx_sysv_stop(smx_context_t context);
-void smx_ctx_sysv_suspend(smx_context_t context);
-void smx_ctx_sysv_resume(smx_context_t new_context);
-#endif
-
 SG_END_DECL()
-#endif /* !_XBT_CONTEXT_PRIVATE_H */
-
-
+#endif                          /* !_XBT_CONTEXT_PRIVATE_H */