Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ac4b7da88c37dfdccfde47fed891508ff2cd72e5
[simgrid.git] / include / msg / msg.h
1 /*      $Id$     */
2
3 /* Copyright (c) 2002,2003,2004 Arnaud Legrand. All rights reserved.        */
4
5 /* This program is free software; you can redistribute it and/or modify it
6  * under the terms of the license (GNU LGPL) which comes with this package. */
7
8 #ifndef MSG_H
9 #define MSG_H
10
11 #include "msg/datatypes.h"
12
13 /************************** MSG **********************************************/
14 void MSG_global_init(void);
15 void MSG_set_verbosity(MSG_outputmode_t mode);
16 MSG_error_t MSG_set_channel_number(int number);
17 MSG_error_t MSG_set_sharing_policy(MSG_sharing_t mode, long double param);
18 int MSG_get_channel_number(void);
19 MSG_error_t MSG_main(void);
20 MSG_error_t MSG_clean(void);
21
22 MSG_error_t MSG_routing_table_init(void);
23 MSG_error_t MSG_routing_table_set(m_host_t host1, m_host_t host2,
24                                   m_link_t link);
25 m_link_t MSG_routing_table_get(m_host_t host1, m_host_t host2);
26
27 /************************** Management ***************************************/
28 m_host_t MSG_host_create(const char *name,
29                                         char *trace_file,
30                                         long double fixed_cpu,
31                                         char* failure_trace,
32                                         long double fixed_failure,
33                                         void *data);
34
35 MSG_error_t MSG_host_set_data(m_host_t host, void *data);
36 void *MSG_host_get_data(m_host_t host);
37 int MSG_host_get_PID(m_host_t host);
38 int MSG_process_get_PPID(m_process_t process);
39 const char *MSG_host_get_name(m_host_t host);
40 m_host_t MSG_host_from_PID(int PID);
41 m_host_t MSG_host_self(void);
42 MSG_error_t MSG_host_destroy(m_host_t host);
43
44 int MSG_get_host_msgload(m_host_t host);
45 int MSG_get_msgload(void);
46
47
48 void MSG_link_set_sharing_value(long double alpha);
49 m_link_t MSG_link_create(const char *name,
50                          char *lat_trace_file, long double fixed_latency,
51                          char *bw_trace_file, long double fixed_bandwidth);
52 MSG_error_t MSG_link_destroy(m_link_t link);
53 m_link_t MSG_link_merge(const char *name, m_link_t src1, m_link_t src2);
54
55
56 m_task_t MSG_task_create(const char *name, long double compute_duration,
57                          long double message_size, void *data);
58 void *MSG_task_get_data(m_task_t task);
59 MSG_error_t MSG_task_destroy(m_task_t task);
60
61 m_process_t MSG_process_create(const char *name,
62                                m_process_code_t code, void *data,
63                                m_host_t host);
64
65 MSG_error_t MSG_process_change_host(m_process_t process, m_host_t host);
66
67 void *MSG_process_get_data(m_process_t process);
68 MSG_error_t MSG_process_set_data(m_process_t process, void *data);
69 m_host_t MSG_process_get_host(m_process_t process);
70 m_process_t MSG_process_from_PID(int PID);
71 int MSG_process_get_PID(m_process_t process);
72 const char *MSG_process_get_name(m_process_t process);
73 int MSG_process_self_PID(void);
74 int MSG_process_self_PPID(void);
75 m_process_t MSG_process_self(void);
76
77 MSG_error_t MSG_process_suspend(m_process_t process);
78 MSG_error_t MSG_process_resume(m_process_t process);
79 int MSG_process_isSuspended(m_process_t process);
80
81 MSG_error_t MSG_process_start(m_process_t process);
82
83
84 /************************** GOS **********************************************/
85 MSG_error_t MSG_task_get(m_task_t * task, m_channel_t channel);
86 MSG_error_t MSG_task_put(m_task_t task, m_host_t dest, 
87                          m_channel_t channel);
88 MSG_error_t MSG_task_execute(m_task_t task);
89 int MSG_task_Iprobe(m_channel_t channel);
90 void MSG_process_sleep(long double nb_sec);
91 void MSG_tracelink(m_host_t dest, const char* **names, int *count);
92 MSG_error_t MSG_get_errno(void);
93
94 /************************** GIS **********************************************/
95 void MSG_create_environment(const char *file);
96
97 m_host_t MSG_get_host_by_name(const char *name);
98 m_link_t MSG_get_link_by_name(const char *name);
99 int MSG_get_host_number(void);
100 m_host_t *MSG_get_host_table(void);
101 void MSG_function_register(const char *name, m_process_code_t code);
102 m_process_code_t MSG_get_registered_function(const char *name);
103 void MSG_launch_application(const char *file);
104
105 MSG_error_t MSG_get_arguments(int *argc, char ***argv);
106 MSG_error_t MSG_set_arguments(m_process_t process,int argc, char *argv[]);
107
108 long double MSG_getClock(void);
109
110 /************************** FS **********************************************/
111 /*  MSG_error_t MSG_get_cpu(m_host_t * h, long double time, long double *val); */
112 /*  MSG_error_t MSG_get_bw(m_link_t * h, long double time, long double *val); */
113 /*  MSG_error_t MSG_get_lat(m_link_t * h, long double time, long double *val); */
114
115 #endif