X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/995f4b8d55d3c6f2047962c524fdfab415d7a1ac..053352ba13737467be4fc66c9a1c92bd84118bee:/src/simix/private.h diff --git a/src/simix/private.h b/src/simix/private.h index bca64533bb..6e7b3289cf 100644 --- a/src/simix/private.h +++ b/src/simix/private.h @@ -1,7 +1,5 @@ -/* $Id$ */ - -/* Copyright (c) 2007 Arnaud Legrand, Bruno Donnassolo. - All rights reserved. */ +/* Copyright (c) 2007, 2008, 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. */ @@ -17,6 +15,7 @@ #include "xbt/config.h" #include "xbt/function_types.h" #include "xbt/ex_interface.h" +#include "instr/private.h" /******************************** Datatypes ***********************************/ @@ -183,6 +182,10 @@ typedef struct s_smx_action { int refcount; /**< @brief reference counter */ surf_action_t surf_action; /* SURF modeling of computation */ smx_host_t source; +#ifdef HAVE_TRACING + long long int counter; /* simix action unique identifier for instrumentation */ + char *category; /* simix action category for instrumentation */ +#endif } s_smx_action_t; /************************** Configuration support *****************************/ @@ -203,64 +206,16 @@ void __SIMIX_action_display_conditions(smx_action_t action); /******************************** Context *************************************/ -void SIMIX_context_mod_init(void); - -void SIMIX_context_mod_exit(void); - -/* *********************** */ -/* Context type definition */ -/* *********************** */ -/* 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 { - s_xbt_swag_hookup_t hookup; - xbt_main_func_t code; - int argc; - char **argv; - void_f_pvoid_t cleanup_func; - void *cleanup_arg; -} s_smx_ctx_base_t; - -/* *********************** */ -/* factory type definition */ -/* *********************** */ - -/* Each context implementation define its own context factory - * A context factory is responsable of the creation and manipulation of the - * execution context of all the simulated processes (and maestro) using the - * selected implementation. - * - * For example, the context switch based on java thread use the - * java implementation of the context and the java factory to build and control - * the contexts depending on this implementation. - - * The following function pointer types describe the interface that any context - * factory should implement. - */ +/* The following function pointer types describe the interface that any context + factory should implement */ -/* function used to create a new context */ -typedef smx_context_t (*smx_pfn_context_factory_create_context_t) +typedef smx_context_t (*smx_pfn_context_factory_create_context_t) (xbt_main_func_t, int, char**, void_f_pvoid_t, void*); - -/* this function finalize the specified context factory */ typedef int (*smx_pfn_context_factory_finalize_t) (smx_context_factory_t*); - -/* function used to destroy the specified context */ typedef void (*smx_pfn_context_free_t) (smx_context_t); - -/* function used to start the specified context */ typedef void (*smx_pfn_context_start_t) (smx_context_t); - -/* function used to stop the current context */ typedef void (*smx_pfn_context_stop_t) (smx_context_t); - -/* function used to suspend the current context */ typedef void (*smx_pfn_context_suspend_t) (smx_context_t context); - -/* function used to resume the current context */ typedef void (*smx_pfn_context_resume_t) (smx_context_t new_context); /* interface of the context factories */ @@ -274,6 +229,11 @@ typedef struct s_smx_context_factory { const char *name; } s_smx_context_factory_t; + +void SIMIX_context_mod_init(void); + +void SIMIX_context_mod_exit(void); + /* Selects a context factory associated with the name specified by the parameter name. * If successful the function returns 0. Otherwise the function returns the error code. */ @@ -289,7 +249,6 @@ void SIMIX_ctx_thread_factory_init(smx_context_factory_t * factory); void SIMIX_ctx_sysv_factory_init(smx_context_factory_t * factory); void SIMIX_ctx_lua_factory_init(smx_context_factory_t * factory); -void SIMIX_ctx_lua_factory_set_state(void *state); void SIMIX_ctx_java_factory_init(smx_context_factory_t * factory);