Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clearly state that we don't care about the return code of actors
[simgrid.git] / src / msg / msg_legacy.cpp
1 /* Copyright (c) 2004-2020. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #include "simgrid/Exception.hpp"
7 #include "src/msg/msg_private.hpp"
8
9 #define MSG_CALL(type, oldname, args)
10
11 /* ************************** Engine *************************** */
12 void MSG_create_environment(const char* filename)
13 {
14   simgrid_load_platform(filename);
15 }
16
17 void MSG_launch_application(const char* filename)
18 {
19   simgrid_load_deployment(filename);
20 }
21 msg_error_t MSG_main()
22 {
23   simgrid_run();
24   return MSG_OK;
25 }
26 void MSG_function_register(const char* name, int (*code)(int, char**))
27 {
28   simgrid_register_function(name, (void (*)(int, char**))code);
29 }
30 void MSG_function_register_default(int (*code)(int, char**))
31 {
32   simgrid_register_default((void (*)(int, char**))code);
33 }
34 double MSG_get_clock()
35 {
36   return simgrid_get_clock();
37 }
38
39 /* ************************** Mailboxes ************************ */
40 void MSG_mailbox_set_async(const char* alias)
41 {
42   sg_mailbox_set_receiver(alias);
43 }
44 int MSG_task_listen(const char* alias)
45 {
46   return sg_mailbox_listen(alias);
47 }
48
49 /* ************************** Actors *************************** */
50 int MSG_process_get_PID(const_sg_actor_t actor)
51 {
52   return sg_actor_get_PID(actor);
53 }
54 int MSG_process_get_PPID(const_sg_actor_t actor)
55 {
56   return sg_actor_get_PPID(actor);
57 }
58 msg_process_t MSG_process_from_PID(int PID)
59 {
60   return sg_actor_by_PID(PID);
61 }
62 const char* MSG_process_get_name(const_sg_actor_t actor)
63 {
64   return sg_actor_get_name(actor);
65 }
66 sg_host_t MSG_process_get_host(const_sg_actor_t actor)
67 {
68   return sg_actor_get_host(actor);
69 }
70 xbt_dict_t MSG_process_get_properties(const_sg_actor_t actor)
71 {
72   return sg_actor_get_properties(actor);
73 }
74 const char* MSG_process_get_property_value(const_sg_actor_t actor, const char* name)
75 {
76   return sg_actor_get_property_value(actor, name);
77 }
78 void MSG_process_suspend(sg_actor_t actor)
79 {
80   sg_actor_suspend(actor);
81 }
82 void MSG_process_resume(sg_actor_t actor)
83 {
84   sg_actor_resume(actor);
85 }
86 int MSG_process_is_suspended(sg_actor_t actor)
87 {
88   return sg_actor_is_suspended(actor);
89 }
90 void MSG_process_restart(sg_actor_t actor)
91 {
92   sg_actor_restart(actor);
93 }
94 void MSG_process_auto_restart_set(sg_actor_t actor, int auto_restart)
95 {
96   sg_actor_set_auto_restart(actor, auto_restart);
97 }
98
99 void MSG_process_daemonize(sg_actor_t actor)
100 {
101   sg_actor_daemonize(actor);
102 }
103 void MSG_process_migrate(sg_actor_t actor, sg_host_t host)
104 {
105   sg_actor_set_host(actor, host);
106 }
107 void MSG_process_join(sg_actor_t actor, double timeout)
108 {
109   sg_actor_join(actor, timeout);
110 }
111 void MSG_process_kill(sg_actor_t actor)
112 {
113   sg_actor_kill(actor);
114 }
115 void MSG_process_killall()
116 {
117   sg_actor_kill_all();
118 }
119 void MSG_process_set_kill_time(sg_actor_t actor, double kill_time)
120 {
121   sg_actor_set_kill_time(actor, kill_time);
122 }
123 void MSG_process_yield()
124 {
125   sg_actor_yield();
126 }
127
128 msg_error_t MSG_process_sleep(double duration)
129 {
130   try {
131     sg_actor_sleep_for(duration);
132     return MSG_OK;
133   } catch (const simgrid::HostFailureException&) {
134     return MSG_HOST_FAILURE;
135   }
136 }
137
138 /** @brief Returns the user data of a process.
139  *
140  * This function checks whether @a process is a valid pointer and returns the user data associated to this process.
141  */
142 void* MSG_process_get_data(const_sg_actor_t process)
143 {
144   xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
145
146   /* get from SIMIX the MSG process data, and then the user data */
147   return sg_actor_data(process);
148 }
149
150 /** @brief Sets the user data of a process.
151  *
152  * This function checks whether @a process is a valid pointer and sets the user data associated to this process.
153  */
154 msg_error_t MSG_process_set_data(msg_process_t process, void* data)
155 {
156   xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
157   sg_actor_data_set(process, data);
158
159   return MSG_OK;
160 }
161
162 msg_process_t MSG_process_attach(const char* name, void* data, msg_host_t host, xbt_dict_t properties)
163 {
164   return sg_actor_attach(name, data, host, properties);
165 }
166
167 void MSG_process_detach()
168 {
169   sg_actor_detach();
170 }
171 aid_t MSG_process_self_PID()
172 {
173   return sg_actor_self_get_pid();
174 }
175
176 /** @brief Return the PPID of the current process.
177  *
178  * This function returns the PID of the parent of the currently running #msg_process_t.
179  */
180 aid_t MSG_process_self_PPID()
181 {
182   return sg_actor_self_get_ppid();
183 }
184
185 /** @brief Return the name of the current process. */
186 const char* MSG_process_self_name()
187 {
188   return sg_actor_self_get_name();
189 }
190 /** @brief Return the current process.
191  *
192  * This function returns the currently running #msg_process_t.
193  */
194 msg_process_t MSG_process_self()
195 {
196   return sg_actor_self();
197 }
198
199 /** @brief Take an extra reference on that process to prevent it to be garbage-collected */
200 void MSG_process_ref(const_sg_actor_t process)
201 {
202   sg_actor_ref(process);
203 }
204 /** @brief Release a reference on that process so that it can get be garbage-collected */
205 void MSG_process_unref(const_sg_actor_t process)
206 {
207   sg_actor_unref(process);
208 }
209 /** @brief Return the current number MSG processes. */
210 int MSG_process_get_number()
211 {
212   return simgrid_get_actor_count();
213 }
214 /* ************************** NetZones *************************** */
215 sg_netzone_t MSG_zone_get_root()
216 {
217   return sg_zone_get_root();
218 }
219 const char* MSG_zone_get_name(const_sg_netzone_t zone)
220 {
221   return sg_zone_get_name(zone);
222 }
223 sg_netzone_t MSG_zone_get_by_name(const char* name)
224 {
225   return sg_zone_get_by_name(name);
226 }
227 void MSG_zone_get_sons(const_sg_netzone_t zone, xbt_dict_t whereto)
228 {
229   return sg_zone_get_sons(zone, whereto);
230 }
231 const char* MSG_zone_get_property_value(const_sg_netzone_t zone, const char* name)
232 {
233   return sg_zone_get_property_value(zone, name);
234 }
235 void MSG_zone_set_property_value(sg_netzone_t zone, const char* name, const char* value)
236 {
237   sg_zone_set_property_value(zone, name, value);
238 }
239 void MSG_zone_get_hosts(const_sg_netzone_t zone, xbt_dynar_t whereto)
240 {
241   sg_zone_get_hosts(zone, whereto);
242 }
243
244 /* ************************** Storages *************************** */
245 const char* MSG_storage_get_name(const_sg_storage_t storage)
246 {
247   return sg_storage_get_name(storage);
248 }
249 sg_storage_t MSG_storage_get_by_name(const char* name)
250 {
251   return sg_storage_get_by_name(name);
252 }
253 xbt_dict_t MSG_storage_get_properties(const_sg_storage_t storage)
254 {
255   return sg_storage_get_properties(storage);
256 }
257 void MSG_storage_set_property_value(sg_storage_t storage, const char* name, const char* value)
258 {
259   sg_storage_set_property_value(storage, name, value);
260 }
261 const char* MSG_storage_get_property_value(const_sg_storage_t storage, const char* name)
262 {
263   return sg_storage_get_property_value(storage, name);
264 }
265 xbt_dynar_t MSG_storages_as_dynar()
266 {
267   return sg_storages_as_dynar();
268 }
269 void MSG_storage_set_data(sg_storage_t storage, void* data)
270 {
271   sg_storage_set_data(storage, data);
272 }
273 void* MSG_storage_get_data(const_sg_storage_t storage)
274 {
275   return sg_storage_get_data(storage);
276 }
277 const char* MSG_storage_get_host(const_sg_storage_t storage)
278 {
279   return sg_storage_get_host(storage);
280 }
281 sg_size_t MSG_storage_read(sg_storage_t storage, sg_size_t size)
282 {
283   return sg_storage_read(storage, size);
284 }
285 sg_size_t MSG_storage_write(sg_storage_t storage, sg_size_t size)
286 {
287   return sg_storage_write(storage, size);
288 }
289
290 /* ************************** hosts *************************** */
291 xbt_dynar_t MSG_hosts_as_dynar()
292 {
293   return sg_hosts_as_dynar();
294 }
295 size_t MSG_get_host_number()
296 {
297   return sg_host_count();
298 }
299 sg_host_t MSG_get_host_by_name(const char* name)
300 {
301   return sg_host_by_name(name);
302 }
303 sg_host_t MSG_host_by_name(const char* name)
304 {
305   return sg_host_by_name(name);
306 }
307 const char* MSG_host_get_name(const_sg_host_t host)
308 {
309   return sg_host_get_name(host);
310 }
311 void* MSG_host_get_data(const_sg_host_t host)
312 {
313   return sg_host_data(host);
314 }
315 void MSG_host_set_data(sg_host_t host, void* data)
316 {
317   return sg_host_data_set(host, data);
318 }
319 xbt_dict_t MSG_host_get_mounted_storage_list(sg_host_t host)
320 {
321   return sg_host_get_mounted_storage_list(host);
322 }
323 xbt_dynar_t MSG_host_get_attached_storage_lists(const_sg_host_t host)
324 {
325   return sg_host_get_attached_storage_list(host);
326 }
327 double MSG_host_get_speed(const_sg_host_t host)
328 {
329   return sg_host_speed(host);
330 }
331 double MSG_host_get_power_peak_at(const_sg_host_t host, int pstate_index)
332 {
333   return sg_host_get_pstate_speed(host, pstate_index);
334 }
335 int MSG_host_get_core_number(const_sg_host_t host)
336 {
337   return sg_host_core_count(host);
338 }
339 int MSG_host_get_nb_pstates(const_sg_host_t host)
340 {
341   return sg_host_get_nb_pstates(host);
342 }
343 int MSG_host_get_pstate(const_sg_host_t host)
344 {
345   return sg_host_get_pstate(host);
346 }
347 void MSG_host_set_pstate(sg_host_t host, int pstate)
348 {
349   sg_host_set_pstate(host, pstate);
350 }
351 void MSG_host_on(sg_host_t h)
352 {
353   sg_host_turn_on(h);
354 }
355 void MSG_host_off(sg_host_t h)
356 {
357   sg_host_turn_off(h);
358 }
359 int MSG_host_is_on(const_sg_host_t h)
360 {
361   return sg_host_is_on(h);
362 }
363 xbt_dict_t MSG_host_get_properties(const_sg_host_t host)
364 {
365   return sg_host_get_properties(host);
366 }
367 const char* MSG_host_get_property_value(const_sg_host_t host, const char* name)
368 {
369   return sg_host_get_property_value(host, name);
370 }
371 void MSG_host_set_property_value(sg_host_t host, const char* name, const char* value)
372 {
373   sg_host_set_property_value(host, name, value);
374 }
375 void MSG_host_get_process_list(const_sg_host_t host, xbt_dynar_t whereto)
376 {
377   sg_host_get_actor_list(host, whereto);
378 }
379 sg_host_t MSG_host_self()
380 {
381   return sg_host_self();
382 }
383
384 double MSG_host_get_load(const_sg_host_t host)
385 {
386   return sg_host_load(host);
387 }
388 /* ************************** Virtual Machines *************************** */
389 sg_vm_t MSG_vm_create_core(sg_host_t pm, const char* name)
390 {
391   return sg_vm_create_core(pm, name);
392 }
393 sg_vm_t MSG_vm_create_multicore(sg_host_t pm, const char* name, int coreAmount)
394 {
395   return sg_vm_create_multicore(pm, name, coreAmount);
396 }
397 int MSG_vm_is_created(sg_vm_t vm)
398 {
399   return sg_vm_is_created(vm);
400 }
401 int MSG_vm_is_running(sg_vm_t vm)
402 {
403   return sg_vm_is_running(vm);
404 }
405 int MSG_vm_is_suspended(sg_vm_t vm)
406 {
407   return sg_vm_is_suspended(vm);
408 }
409 const char* MSG_vm_get_name(const_sg_vm_t vm)
410 {
411   return sg_vm_get_name(vm);
412 }
413 void MSG_vm_set_ramsize(sg_vm_t vm, size_t size)
414 {
415   sg_vm_set_ramsize(vm, size);
416 }
417 size_t MSG_vm_get_ramsize(const_sg_vm_t vm)
418 {
419   return sg_vm_get_ramsize(vm);
420 }
421 sg_host_t MSG_vm_get_pm(const_sg_vm_t vm)
422 {
423   return sg_vm_get_pm(vm);
424 }
425 void MSG_vm_set_bound(sg_vm_t vm, double bound)
426 {
427   sg_vm_set_bound(vm, bound);
428 }
429 void MSG_vm_start(sg_vm_t vm)
430 {
431   sg_vm_start(vm);
432 }
433 void MSG_vm_suspend(sg_vm_t vm)
434 {
435   sg_vm_suspend(vm);
436 }
437 void MSG_vm_resume(sg_vm_t vm)
438 {
439   sg_vm_resume(vm);
440 }
441 void MSG_vm_shutdown(sg_vm_t vm)
442 {
443   sg_vm_shutdown(vm);
444 }
445 void MSG_vm_destroy(sg_vm_t vm)
446 {
447   sg_vm_destroy(vm);
448 }
449 /********* barriers ************/
450 sg_bar_t MSG_barrier_init(unsigned int count)
451 {
452   return sg_barrier_init(count);
453 }
454
455 void MSG_barrier_destroy(const_sg_bar_t bar)
456 {
457   sg_barrier_destroy(bar);
458 }
459
460 int MSG_barrier_wait(sg_bar_t bar)
461 {
462   return sg_barrier_wait(bar);
463 }
464
465 sg_sem_t MSG_sem_init(int initial_value)
466 {
467   return sg_sem_init(initial_value);
468 }
469 void MSG_sem_acquire(sg_sem_t sem)
470 {
471   sg_sem_acquire(sem);
472 }
473 int MSG_sem_acquire_timeout(sg_sem_t sem, double timeout)
474 {
475   return sg_sem_acquire_timeout(sem, timeout);
476 }
477 void MSG_sem_release(sg_sem_t sem)
478 {
479   sg_sem_release(sem);
480 }
481 int MSG_sem_get_capacity(sg_sem_t sem)
482 {
483   return sg_sem_get_capacity(sem);
484 }
485 void MSG_sem_destroy(const_sg_sem_t sem)
486 {
487   sg_sem_destroy(sem);
488 }
489 int MSG_sem_would_block(sg_sem_t sem)
490 {
491   return sg_sem_would_block(sem);
492 }