Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Necessity to change the code to implement MSG..
authordonassbr <donassbr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 23 Mar 2007 11:26:22 +0000 (11:26 +0000)
committerdonassbr <donassbr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 23 Mar 2007 11:26:22 +0000 (11:26 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3342 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/include/simix/datatypes.h
src/include/simix/simix.h
src/simix/private.h
src/simix/smx_action.c
src/simix/smx_global.c
src/simix/smx_host.c
src/simix/smx_process.c
src/simix/smx_synchro.c

index abaaf31..d6a59cf 100644 (file)
@@ -17,12 +17,12 @@ SG_BEGIN_DECL()
 /** @defgroup m_datatypes_management_details Details on SIMIX datatypes
     @ingroup  m_datatypes_management*/
 
-typedef struct s_simdata_host *simdata_host_t;
+typedef struct s_smx_simdata_host *smx_simdata_host_t;
 /** @brief Host datatype 
     @ingroup m_datatypes_management_details */
 typedef struct s_smx_host {
   char *name;                  /**< @brief host name if any */
-  simdata_host_t simdata;      /**< @brief simulator data */
+  smx_simdata_host_t simdata;  /**< @brief simulator data */
   void *data;                  /**< @brief user data */
 } s_smx_host_t;
 /** @brief Host datatype  
@@ -48,12 +48,14 @@ typedef struct s_smx_cond *smx_cond_t;
 
 
 /********************************** Action *************************************/
-typedef struct s_simdata_action *simdata_action_t;
+typedef struct s_smx_simdata_action *smx_simdata_action_t;
 /** @brief Action datatype 
     @ingroup m_datatypes_management_details */
 typedef struct s_smx_action {
   char *name;                  /**< @brief action name if any */
-  simdata_action_t simdata;    /**< @brief simulator data */
+  smx_simdata_action_t simdata;        /**< @brief simulator data */
+       xbt_fifo_t cond_list;   /*< conditional variables that must be signaled when the action finish. */
+
   void *data;                  /**< @brief user data */
 } s_smx_action_t;
 
@@ -61,12 +63,12 @@ typedef struct s_smx_action *smx_action_t;
 
 
 /* ****************************** Process *********************************** */
-typedef struct s_simdata_process *simdata_process_t;
+typedef struct s_smx_simdata_process *smx_simdata_process_t;
 /** @brief Process datatype 
     @ingroup m_datatypes_management_details @{ */
 typedef struct s_smx_process {
   char *name;                  /**< @brief process name if any */
-  simdata_process_t simdata;   /**< @brief simulator data */
+  smx_simdata_process_t simdata;       /**< @brief simulator data */
   s_xbt_swag_hookup_t process_hookup;
   s_xbt_swag_hookup_t synchro_hookup;
   s_xbt_swag_hookup_t host_proc_hookup;
index 04a8816..d5effc7 100644 (file)
@@ -105,6 +105,7 @@ XBT_PUBLIC(void) SIMIX_action_cancel(smx_action_t action);
 XBT_PUBLIC(void) SIMIX_action_set_priority(smx_action_t action, double priority);
 XBT_PUBLIC(void) SIMIX_action_destroy(smx_action_t action);
 XBT_PUBLIC(void) SIMIX_register_action_to_condition(smx_action_t action, smx_cond_t cond);
+XBT_PUBLIC(double) SIMIX_action_get_remains(smx_action_t action);
 
 /*Not implemented yet */
 XBT_PUBLIC(smx_action_t) SIMIX_action_parallel_execute(int workstation_nb,      
index 630a5b0..0018fd3 100644 (file)
 
 /********************************** Host ************************************/
 
-typedef struct s_simdata_host {
+typedef struct s_smx_simdata_host {
   void *host;                  /* SURF modeling */
   xbt_swag_t process_list;
-} s_simdata_host_t;
+} s_smx_simdata_host_t;
 
 /********************************* Simix Global ******************************/
 
@@ -42,7 +42,7 @@ extern SIMIX_Global_t simix_global;
 
 /******************************* Process *************************************/
 
-typedef struct s_simdata_process {
+typedef struct s_smx_simdata_process {
   smx_host_t host;                /* the host on which the process is running */
   xbt_context_t context;               /* the context that executes the scheduler fonction */
   int blocked;
@@ -51,7 +51,7 @@ typedef struct s_simdata_process {
   smx_cond_t cond;             /* cond on which the process is blocked  */
   int argc;                     /* arguments number if any */
   char **argv;                  /* arguments table if any */
-} s_simdata_process_t;
+} s_smx_simdata_process_t;
 
 typedef struct process_arg {
   const char *name;
@@ -80,13 +80,12 @@ typedef struct s_smx_cond {
 
 /********************************* Action **************************************/
 
-typedef struct s_simdata_action {
+typedef struct s_smx_simdata_action {
   surf_action_t surf_action;   /* SURF modeling of computation  */
   
-  xbt_fifo_t cond_list;                /* conditional variables that must be signaled when the action finish. */
   smx_host_t source; 
 
-} s_simdata_action_t;
+} s_smx_simdata_action_t;
 
 
 
index 0854c39..98e015a 100644 (file)
@@ -27,9 +27,9 @@ smx_action_t SIMIX_action_communicate(smx_host_t sender,smx_host_t receiver,char
 
        /* alloc structures */
        smx_action_t act = xbt_new0(s_smx_action_t,1);
-       act->simdata = xbt_new0(s_simdata_action_t,1);
-       simdata_action_t simdata = act->simdata;
-       simdata->cond_list = xbt_fifo_new();
+       act->simdata = xbt_new0(s_smx_simdata_action_t,1);
+       smx_simdata_action_t simdata = act->simdata;
+       act->cond_list = xbt_fifo_new();
        
        /* initialize them */
        act->name = xbt_strdup(name);
@@ -52,9 +52,9 @@ smx_action_t SIMIX_action_execute(smx_host_t host, char * name, double amount)
 
        /* alloc structures */
        smx_action_t act = xbt_new0(s_smx_action_t,1);
-       act->simdata = xbt_new0(s_simdata_action_t,1);
-       simdata_action_t simdata = act->simdata;
-       simdata->cond_list = xbt_fifo_new();
+       act->simdata = xbt_new0(s_smx_simdata_action_t,1);
+       smx_simdata_action_t simdata = act->simdata;
+       act->cond_list = xbt_fifo_new();
        
        /* initialize them */
        simdata->source = host;
@@ -81,9 +81,9 @@ smx_action_t SIMIX_action_sleep(smx_host_t host,  double duration)
 
        /* alloc structures */
        smx_action_t act = xbt_new0(s_smx_action_t,1);
-       act->simdata = xbt_new0(s_simdata_action_t,1);
-       simdata_action_t simdata = act->simdata;
-       simdata->cond_list = xbt_fifo_new();
+       act->simdata = xbt_new0(s_smx_simdata_action_t,1);
+       smx_simdata_action_t simdata = act->simdata;
+       act->cond_list = xbt_fifo_new();
        
        /* initialize them */
        simdata->source = host;
@@ -122,12 +122,12 @@ void SIMIX_action_destroy(smx_action_t action)
 
        xbt_assert0((action != NULL), "Invalid parameter");
 
-       xbt_assert1((xbt_fifo_size(action->simdata->cond_list)==0), 
-                       "Conditional list not empty %d. There is a problem. Cannot destroy it now!", xbt_fifo_size(action->simdata->cond_list));
+       xbt_assert1((xbt_fifo_size(action->cond_list)==0), 
+                       "Conditional list not empty %d. There is a problem. Cannot destroy it now!", xbt_fifo_size(action->cond_list));
 
        if(action->name) free(action->name);
 
-       xbt_fifo_free(action->simdata->cond_list);
+       xbt_fifo_free(action->cond_list);
 
        if(action->simdata->surf_action) 
                action->simdata->surf_action->resource_type->common_public->action_free(action->simdata->surf_action);
@@ -142,3 +142,8 @@ void SIMIX_register_action_to_condition(smx_action_t action, smx_cond_t cond)
        xbt_fifo_push(cond->actions,action);
 }
 
+double SIMIX_action_get_remains(smx_action_t action) 
+{
+  xbt_assert0((action != NULL), "Invalid parameter");
+       return action->simdata->surf_action->remains;
+}
index 2b72da8..cbf10cc 100644 (file)
@@ -67,7 +67,7 @@ void __SIMIX_display_process_status(void)
    /*  List the process and their state */
    INFO0("SIMIX: <process> on <host>: <status>.");
    xbt_swag_foreach(process, simix_global->process_list) {
-      simdata_process_t p_simdata = (simdata_process_t) process->simdata;
+      smx_simdata_process_t p_simdata = (smx_simdata_process_t) process->simdata;
      // simdata_host_t h_simdata=(simdata_host_t)p_simdata->host->simdata;
       char *who;
        
@@ -129,14 +129,14 @@ void __SIMIX_main(void)
                        xbt_fifo_item_t _cursor;
 
                        DEBUG1("** %s failed **",smx_action->name);
-                       xbt_fifo_foreach(smx_action->simdata->cond_list,_cursor,cond,smx_cond_t) {
+                       xbt_fifo_foreach(smx_action->cond_list,_cursor,cond,smx_cond_t) {
                                xbt_swag_foreach(process,cond->sleeping) {
                                        DEBUG2("\t preparing to wake up %s on %s",           
                                                        process->name,  process->simdata->host->name);
                                }
                                SIMIX_cond_broadcast(cond);
                                /* remove conditional from action */
-                               xbt_fifo_remove(smx_action->simdata->cond_list,cond);
+                               xbt_fifo_remove(smx_action->cond_list,cond);
                        }
                }
 
@@ -144,14 +144,14 @@ void __SIMIX_main(void)
                        xbt_fifo_item_t _cursor;
 
                        DEBUG1("** %s done **",smx_action->name);
-                       xbt_fifo_foreach(smx_action->simdata->cond_list,_cursor,cond,smx_cond_t) {
+                       xbt_fifo_foreach(smx_action->cond_list,_cursor,cond,smx_cond_t) {
                                xbt_swag_foreach(process,cond->sleeping) {
                                        DEBUG2("\t preparing to wake up %s on %s",           
                                                        process->name,  process->simdata->host->name);
                                }
                                SIMIX_cond_broadcast(cond);
                                /* remove conditional from action */
-                               xbt_fifo_remove(smx_action->simdata->cond_list,cond);
+                               xbt_fifo_remove(smx_action->cond_list,cond);
                        }
                }
        }
index 6501627..8368560 100644 (file)
@@ -30,7 +30,7 @@ smx_host_t __SIMIX_host_create(const char *name,
                         void *workstation,
                         void *data)
 {
-  simdata_host_t simdata = xbt_new0(s_simdata_host_t,1);
+  smx_simdata_host_t simdata = xbt_new0(s_smx_simdata_host_t,1);
   smx_host_t host = xbt_new0(s_smx_host_t,1);
   s_smx_process_t proc;
 
@@ -115,7 +115,7 @@ smx_host_t SIMIX_host_self(void)
  */
 void __SIMIX_host_destroy(smx_host_t host)
 {
-  simdata_host_t simdata = NULL;
+  smx_simdata_host_t simdata = NULL;
 
   xbt_assert0((host != NULL), "Invalid parameters");
 
index 5a5807b..2fc9a93 100644 (file)
@@ -77,7 +77,7 @@ smx_process_t SIMIX_process_create_with_arguments(const char *name,
                                              smx_process_code_t code, void *data,
                                              smx_host_t host, int argc, char **argv)
 {
-  simdata_process_t simdata = xbt_new0(s_simdata_process_t,1);
+  smx_simdata_process_t simdata = xbt_new0(s_smx_simdata_process_t,1);
   smx_process_t process = xbt_new0(s_smx_process_t,1);
   smx_process_t self = NULL;
 
@@ -122,7 +122,7 @@ smx_process_t SIMIX_process_create_with_arguments(const char *name,
 void SIMIX_process_kill(smx_process_t process)
 {
   //int i;
-  simdata_process_t p_simdata = process->simdata;
+  smx_simdata_process_t p_simdata = process->simdata;
   //simdata_host_t h_simdata= p_simdata->host->simdata;
   //int _cursor;
   //smx_process_t proc = NULL;
@@ -244,7 +244,7 @@ smx_process_t SIMIX_process_self(void)
  */
 void SIMIX_process_suspend(smx_process_t process)
 {
-  simdata_process_t simdata = NULL;
+  smx_simdata_process_t simdata = NULL;
        
   xbt_assert0(((process) && (process->simdata)), "Invalid parameters");
 
@@ -300,7 +300,7 @@ void SIMIX_process_suspend(smx_process_t process)
  */
 void SIMIX_process_resume(smx_process_t process)
 {
-  simdata_process_t simdata = NULL;
+  smx_simdata_process_t simdata = NULL;
 
   xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
   CHECK_HOST();
index c14e550..b6d418b 100644 (file)
@@ -212,7 +212,7 @@ void SIMIX_register_condition_to_action(smx_action_t action, smx_cond_t cond)
 {
        xbt_assert0( (action != NULL) && (cond != NULL), "Invalid parameters");
 
-       xbt_fifo_push(action->simdata->cond_list,cond);
+       xbt_fifo_push(action->cond_list,cond);
 }