#ifndef MSG_H
#define MSG_H
+#include "xbt/misc.h"
+#include "xbt/sysdep.h"
+
+BEGIN_DECL()
#include "msg/datatypes.h"
/************************** Global ******************************************/
+void MSG_config(const char *name, ...);
void MSG_global_init(void);
+void MSG_global_init_args(int *argc, char **argv);
void MSG_set_verbosity(MSG_outputmode_t mode);
MSG_error_t MSG_set_channel_number(int number);
-MSG_error_t MSG_set_sharing_policy(MSG_sharing_t mode, long double param);
+MSG_error_t MSG_set_sharing_policy(MSG_sharing_t mode, double param);
int MSG_get_channel_number(void);
MSG_error_t MSG_main(void);
MSG_error_t MSG_clean(void);
void MSG_function_register(const char *name, m_process_code_t code);
m_process_code_t MSG_get_registered_function(const char *name);
void MSG_launch_application(const char *file);
+void MSG_paje_output(const char *filename);
-long double MSG_getClock(void);
+double MSG_getClock(void);
+double MSG_get_clock(void);
/************************** Host handling ***********************************/
MSG_error_t MSG_host_set_data(m_host_t host, void *data);
const char *MSG_host_get_name(m_host_t host);
m_host_t MSG_host_self(void);
int MSG_get_host_msgload(m_host_t host);
-int MSG_get_msgload(void);
+/* int MSG_get_msgload(void); This function lacks specification; discard it */
+double MSG_get_host_speed(m_host_t h);
void MSG_create_environment(const char *file);
m_process_t MSG_process_create(const char *name,
m_process_code_t code, void *data,
m_host_t host);
-
+m_process_t MSG_process_create_with_arguments(const char *name,
+ m_process_code_t code, void *data,
+ m_host_t host, int argc, char **argv);
+void MSG_process_kill(m_process_t process);
+int MSG_process_killall(int reset_PIDs);
MSG_error_t MSG_get_arguments(int *argc, char ***argv);
MSG_error_t MSG_set_arguments(m_process_t process,int argc, char *argv[]);
/************************** Task handling ************************************/
-m_task_t MSG_task_create(const char *name, long double compute_duration,
- long double message_size, void *data);
+m_task_t MSG_task_create(const char *name, double compute_duration,
+ double message_size, void *data);
+m_task_t MSG_parallel_task_create(const char *name,
+ int host_nb,
+ const m_host_t *host_list,
+ double *computation_amount,
+ double *communication_amount,
+ void *data);
void *MSG_task_get_data(m_task_t task);
+m_process_t MSG_task_get_sender(m_task_t task);
+const char *MSG_task_get_name(m_task_t task);
+MSG_error_t MSG_task_cancel(m_task_t task);
MSG_error_t MSG_task_destroy(m_task_t task);
MSG_error_t MSG_task_get(m_task_t * task, m_channel_t channel);
+MSG_error_t MSG_task_get_with_time_out(m_task_t * task, m_channel_t channel,
+ double max_duration);
MSG_error_t MSG_task_put(m_task_t task, m_host_t dest,
m_channel_t channel);
+MSG_error_t MSG_task_put_bounded(m_task_t task,
+ m_host_t dest, m_channel_t channel,
+ double max_rate);
MSG_error_t MSG_task_execute(m_task_t task);
+MSG_error_t MSG_parallel_task_execute(m_task_t task);
+
int MSG_task_Iprobe(m_channel_t channel);
-void MSG_process_sleep(long double nb_sec);
+int MSG_task_probe_from(m_channel_t channel);
+MSG_error_t MSG_channel_select_from(m_channel_t channel, double max_duration,
+ int *PID);
+MSG_error_t MSG_process_sleep(double nb_sec);
MSG_error_t MSG_get_errno(void);
+double MSG_task_get_compute_duration(m_task_t task);
+double MSG_task_get_remaining_computation(m_task_t task);
+double MSG_task_get_data_size(m_task_t task);
+
/************************** Deprecated ***************************************/
/* MSG_error_t MSG_routing_table_init(void); */
/* MSG_error_t MSG_routing_table_set(m_host_t host1, m_host_t host2, */
/* m_link_t MSG_link_merge(const char *name, m_link_t src1, m_link_t src2); */
/* m_link_t MSG_get_link_by_name(const char *name); */
/* void MSG_tracelink(m_host_t dest, const char* **names, int *count); */
-
+END_DECL()
#endif