Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a little program to help determining which memory chunk were modified during model...
[simgrid.git] / tools / gras / s_smx_simcall_t
diff --git a/tools/gras/s_smx_simcall_t b/tools/gras/s_smx_simcall_t
new file mode 100644 (file)
index 0000000..28ae88f
--- /dev/null
@@ -0,0 +1,424 @@
+typedef struct s_smx_simcall {
+  e_smx_simcall_t call;
+  smx_process_t issuer;
+
+  union {
+
+    struct {
+      const char *name;
+      smx_host_t result;
+    } host_get_by_name;
+
+    struct {
+      smx_host_t host;
+      const char* result;
+    } host_get_name;
+
+    struct {
+      smx_host_t host;
+      xbt_dict_t result;
+    } host_get_properties;
+
+    struct {
+      smx_host_t host;
+      double result;
+    } host_get_speed;
+
+    struct {
+      smx_host_t host;
+      double result;
+    } host_get_available_speed;
+
+    struct {
+      smx_host_t host;
+      int result;
+    } host_get_state;
+
+    struct {
+      smx_host_t host;
+      void* result;
+    } host_get_data;
+
+    struct {
+      smx_host_t host;
+      void* data;
+    } host_set_data;
+
+    struct {
+      const char* name;
+      smx_host_t host;
+      double computation_amount;
+      double priority;
+      smx_action_t result;
+    } host_execute;
+
+    struct {
+      const char *name;
+      int host_nb;
+      smx_host_t *host_list;
+      double *computation_amount;
+      double *communication_amount;
+      double amount;
+      double rate;
+      smx_action_t result;
+    } host_parallel_execute;
+
+    struct {
+      smx_action_t execution;
+    } host_execution_destroy;
+
+    struct {
+      smx_action_t execution;
+    } host_execution_cancel;
+
+    struct {
+      smx_action_t execution;
+      double result;
+    } host_execution_get_remains;
+
+    struct {
+      smx_action_t execution;
+      e_smx_state_t result;
+    } host_execution_get_state;
+
+    struct {
+      smx_action_t execution;
+      double priority;
+    } host_execution_set_priority;
+
+    struct {
+      smx_action_t execution;
+      e_smx_state_t result;
+    } host_execution_wait;
+
+    struct {
+      smx_process_t *process;
+      const char *name;
+      xbt_main_func_t code;
+      void *data;
+      const char *hostname;
+      int argc;
+      char **argv;
+      xbt_dict_t properties;
+    } process_create;
+
+    struct {
+      smx_process_t process;
+    } process_kill;
+
+    struct {
+      smx_process_t process;
+    } process_cleanup;
+
+    struct {
+      smx_process_t process;
+      smx_host_t dest;
+    } process_change_host;
+
+    struct {
+      smx_process_t process;
+    } process_suspend;
+
+    struct {
+      smx_process_t process;
+    } process_resume;
+
+    struct {
+      int result;
+    } process_count;
+
+    struct {
+      smx_process_t process;
+      void* result;
+    } process_get_data;
+
+    struct {
+      smx_process_t process;
+      void* data;
+    } process_set_data;
+
+    struct {
+      smx_process_t process;
+      smx_host_t result;
+    } process_get_host;
+
+    struct {
+      smx_process_t process;
+      const char *result;
+    } process_get_name;
+
+    struct {
+      smx_process_t process;
+      int result;
+    } process_is_suspended;
+
+    struct {
+      smx_process_t process;
+      xbt_dict_t result;
+    } process_get_properties;
+
+    struct {
+      double duration;
+      e_smx_state_t result;
+    } process_sleep;
+
+    struct {
+      const char *name;
+      smx_rdv_t result;
+    } rdv_create;
+
+    struct {
+      smx_rdv_t rdv;
+    } rdv_destroy;
+
+    struct {
+      const char* name;
+      smx_rdv_t result;
+    } rdv_get_by_name;
+
+    struct {
+      smx_rdv_t rdv;
+      smx_host_t host;
+      unsigned int result;
+    } rdv_comm_count_by_host;
+
+    struct {
+      smx_rdv_t rdv;
+      smx_action_t result;
+    } rdv_get_head;
+
+    struct {
+      smx_rdv_t rdv;
+      double task_size;
+      double rate;
+      void *src_buff;
+      size_t src_buff_size;
+      int (*match_fun)(void *, void *);
+      void *data;
+      double timeout;
+    } comm_send;
+
+    struct {
+      smx_rdv_t rdv;
+      double task_size;
+      double rate;
+      void *src_buff;
+      size_t src_buff_size;
+      int (*match_fun)(void *, void *);
+      void (*clean_fun)(void *);
+      void *data;
+      int detached;
+      smx_action_t result;
+    } comm_isend;
+
+    struct {
+      smx_rdv_t rdv;
+      void *dst_buff;
+      size_t *dst_buff_size;
+      int (*match_fun)(void *, void *);
+      void *data;
+      double timeout;
+    } comm_recv;
+
+    struct {
+      smx_rdv_t rdv;
+      void *dst_buff;
+      size_t *dst_buff_size;
+      int (*match_fun)(void *, void *);
+          void *data;
+      smx_action_t result;
+    } comm_irecv;
+
+    struct {
+      smx_action_t comm;
+    } comm_destroy;
+
+    struct {
+      smx_action_t comm;
+    } comm_cancel;
+
+    struct {
+      xbt_dynar_t comms;
+      unsigned int result;
+    } comm_waitany;
+
+    struct {
+      smx_action_t comm;
+      double timeout;
+    } comm_wait;
+
+    struct {
+      smx_action_t comm;
+      int result;
+    } comm_test;
+
+    struct {
+      xbt_dynar_t comms;
+      int result;
+    } comm_testany;
+
+    struct {
+      smx_action_t comm;
+      double result;
+    } comm_get_remains;
+
+    struct {
+      smx_action_t comm;
+      e_smx_state_t result;
+    } comm_get_state;
+
+    struct {
+      smx_action_t comm;
+      void *result;
+    } comm_get_src_data;
+
+    struct {
+      smx_action_t comm;
+      void *result;
+    } comm_get_dst_data;
+
+    struct {
+      smx_action_t comm;
+      smx_process_t result;
+    } comm_get_src_proc;
+
+    struct {
+      smx_action_t comm;
+      smx_process_t result;
+    } comm_get_dst_proc;
+
+    struct {
+      smx_action_t comm;
+      int result;
+    } comm_is_latency_bounded;
+
+    struct {
+      smx_action_t action;
+      const char *category;
+    } set_category;
+
+    struct {
+      smx_mutex_t result;
+    } mutex_init;
+
+    struct {
+      smx_mutex_t mutex;
+    } mutex_lock;
+
+    struct {
+      smx_mutex_t mutex;
+      int result;
+    } mutex_trylock;
+
+    struct {
+      smx_mutex_t mutex;
+    } mutex_unlock;
+
+    struct {
+      smx_mutex_t mutex;
+    } mutex_destroy;
+
+    struct {
+      smx_cond_t result;
+    } cond_init;
+
+    struct {
+      smx_cond_t cond;
+    } cond_destroy;
+
+    struct {
+      smx_cond_t cond;
+    } cond_signal;
+
+    struct {
+      smx_cond_t cond;
+      smx_mutex_t mutex;
+    } cond_wait;
+
+    struct {
+      smx_cond_t cond;
+      smx_mutex_t mutex;
+      double timeout;
+    } cond_wait_timeout;
+
+    struct {
+      smx_cond_t cond;
+    } cond_broadcast;
+
+    struct {
+      int capacity;
+      smx_sem_t result;
+    } sem_init;
+
+    struct {
+      smx_sem_t sem;
+    } sem_destroy;
+
+    struct {
+      smx_sem_t sem;
+    } sem_release;
+
+    struct {
+      smx_sem_t sem;
+      int result;
+    } sem_would_block;
+
+    struct {
+      smx_sem_t sem;
+    } sem_acquire;
+
+    struct {
+      smx_sem_t sem;
+      double timeout;
+    } sem_acquire_timeout;
+
+    struct {
+      smx_sem_t sem;
+      int result;
+    } sem_get_capacity;
+
+    struct {
+      const char* storage;
+      void *ptr;
+      size_t size;
+      size_t nmemb;
+      m_file_t stream;
+      size_t result;
+    } file_read;
+
+    struct {
+      const char* storage;
+      const void *ptr;
+      size_t size;
+      size_t nmemb;
+      m_file_t stream;
+      size_t result;
+    } file_write;
+
+    struct {
+      const char* storage;
+      const char* path;
+      const char* mode;
+      m_file_t result;
+    } file_open;
+
+    struct {
+      const char* storage;
+      m_file_t fp;
+      int result;
+    } file_close;
+
+    struct {
+      const char* storage;
+      int fd;
+      //Next should be struct stat* buf
+      void* buf;
+      int result;
+    } file_stat;
+
+  };
+} s_smx_simcall_t, *smx_simcall_t;
+
+
+
+