Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
105105f437868736490b185f351a000c1216b9b6
[simgrid.git] / src / msg / msg_legacy.cpp
1 /* Copyright (c) 2004-2019. 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, xbt_main_func_t code)
27 {
28   simgrid_register_function(name, code);
29 }
30 void MSG_function_register_default(xbt_main_func_t code)
31 {
32   simgrid_register_default(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(sg_actor_t actor)
51 {
52   return sg_actor_get_PID(actor);
53 }
54 int MSG_process_get_PPID(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(sg_actor_t actor)
63 {
64   return sg_actor_get_name(actor);
65 }
66 sg_host_t MSG_process_get_host(sg_actor_t actor)
67 {
68   return sg_actor_get_host(actor);
69 }
70 xbt_dict_t MSG_process_get_properties(sg_actor_t actor)
71 {
72   return sg_actor_get_properties(actor);
73 }
74 const char* MSG_process_get_property_value(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_migrate(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(msg_process_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(msg_process_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(msg_process_t process)
206 {
207   sg_actor_unref(process);
208 }
209
210 /* ************************** NetZones *************************** */
211 sg_netzone_t MSG_zone_get_root()
212 {
213   return sg_zone_get_root();
214 }
215 const char* MSG_zone_get_name(sg_netzone_t zone)
216 {
217   return sg_zone_get_name(zone);
218 }
219 sg_netzone_t MSG_zone_get_by_name(const char* name)
220 {
221   return sg_zone_get_by_name(name);
222 }
223 void MSG_zone_get_sons(sg_netzone_t zone, xbt_dict_t whereto)
224 {
225   return sg_zone_get_sons(zone, whereto);
226 }
227 const char* MSG_zone_get_property_value(sg_netzone_t zone, const char* name)
228 {
229   return sg_zone_get_property_value(zone, name);
230 }
231 void MSG_zone_set_property_value(sg_netzone_t zone, const char* name, char* value)
232 {
233   sg_zone_set_property_value(zone, name, value);
234 }
235 void MSG_zone_get_hosts(sg_netzone_t zone, xbt_dynar_t whereto)
236 {
237   sg_zone_get_hosts(zone, whereto);
238 }
239
240 /* ************************** Storages *************************** */
241 const char* MSG_storage_get_name(sg_storage_t storage)
242 {
243   return sg_storage_get_name(storage);
244 }
245 sg_storage_t MSG_storage_get_by_name(const char* name)
246 {
247   return sg_storage_get_by_name(name);
248 }
249 xbt_dict_t MSG_storage_get_properties(sg_storage_t storage)
250 {
251   return sg_storage_get_properties(storage);
252 }
253 void MSG_storage_set_property_value(sg_storage_t storage, const char* name, const char* value)
254 {
255   sg_storage_set_property_value(storage, name, value);
256 }
257 const char* MSG_storage_get_property_value(sg_storage_t storage, const char* name)
258 {
259   return sg_storage_get_property_value(storage, name);
260 }
261 xbt_dynar_t MSG_storages_as_dynar()
262 {
263   return sg_storages_as_dynar();
264 }
265 void MSG_storage_set_data(sg_storage_t storage, void* data)
266 {
267   sg_storage_set_data(storage, data);
268 }
269 void* MSG_storage_get_data(sg_storage_t storage)
270 {
271   return sg_storage_get_data(storage);
272 }
273 const char* MSG_storage_get_host(sg_storage_t storage)
274 {
275   return sg_storage_get_host(storage);
276 }
277 sg_size_t MSG_storage_read(sg_storage_t storage, sg_size_t size)
278 {
279   return sg_storage_read(storage, size);
280 }
281 sg_size_t MSG_storage_write(sg_storage_t storage, sg_size_t size)
282 {
283   return sg_storage_write(storage, size);
284 }
285
286 /* ************************** hosts *************************** */
287 xbt_dynar_t MSG_hosts_as_dynar()
288 {
289   return sg_hosts_as_dynar();
290 }
291 size_t MSG_get_host_number()
292 {
293   return sg_host_count();
294 }
295 sg_host_t MSG_get_host_by_name(const char* name)
296 {
297   return sg_host_by_name(name);
298 }
299 sg_host_t MSG_host_by_name(const char* name)
300 {
301   return sg_host_by_name(name);
302 }
303 const char* MSG_host_get_name(sg_host_t host)
304 {
305   return sg_host_get_name(host);
306 }
307 void* MSG_host_get_data(sg_host_t host)
308 {
309   return sg_host_data(host);
310 }
311 void MSG_host_set_data(sg_host_t host, void* data)
312 {
313   return sg_host_data_set(host, data);
314 }
315 xbt_dict_t MSG_host_get_mounted_storage_list(sg_host_t host)
316 {
317   return sg_host_get_mounted_storage_list(host);
318 }
319 xbt_dynar_t MSG_host_get_attached_storage_lists(sg_host_t host)
320 {
321   return sg_host_get_attached_storage_list(host);
322 }
323 double MSG_host_get_speed(sg_host_t host)
324 {
325   return sg_host_speed(host);
326 }
327 double MSG_host_get_power_peak_at(sg_host_t host, int pstate_index)
328 {
329   return sg_host_get_pstate_speed(host, pstate_index);
330 }
331 int MSG_host_get_core_number(sg_host_t host)
332 {
333   return sg_host_core_count(host);
334 }
335 int MSG_host_get_nb_pstates(sg_host_t host)
336 {
337   return sg_host_get_nb_pstates(host);
338 }
339 int MSG_host_get_pstate(sg_host_t host)
340 {
341   return sg_host_get_pstate(host);
342 }
343 void MSG_host_set_pstate(sg_host_t host, int pstate)
344 {
345   sg_host_set_pstate(host, pstate);
346 }
347 void MSG_host_on(sg_host_t h)
348 {
349   sg_host_turn_on(h);
350 }
351 void MSG_host_off(sg_host_t h)
352 {
353   sg_host_turn_off(h);
354 }
355 int MSG_host_is_on(sg_host_t h)
356 {
357   return sg_host_is_on(h);
358 }
359 xbt_dict_t MSG_host_get_properties(sg_host_t host)
360 {
361   return sg_host_get_properties(host);
362 }
363 const char* MSG_host_get_property_value(sg_host_t host, const char* name)
364 {
365   return sg_host_get_property_value(host, name);
366 }
367 void MSG_host_set_property_value(sg_host_t host, const char* name, const char* value)
368 {
369   sg_host_set_property_value(host, name, value);
370 }
371 void MSG_host_get_process_list(sg_host_t host, xbt_dynar_t whereto)
372 {
373   sg_host_get_actor_list(host, whereto);
374 }
375 sg_host_t MSG_host_self()
376 {
377   return sg_host_self();
378 }
379
380 double MSG_host_get_load(sg_host_t host)
381 {
382   return sg_host_load(host);
383 }
384 /* ************************** Virtual Machines *************************** */
385 sg_vm_t MSG_vm_create_core(sg_host_t pm, const char* name)
386 {
387   return sg_vm_create_core(pm, name);
388 }
389 sg_vm_t MSG_vm_create_multicore(sg_host_t pm, const char* name, int coreAmount)
390 {
391   return sg_vm_create_multicore(pm, name, coreAmount);
392 }
393 int MSG_vm_is_created(sg_vm_t vm)
394 {
395   return sg_vm_is_created(vm);
396 }
397 int MSG_vm_is_running(sg_vm_t vm)
398 {
399   return sg_vm_is_running(vm);
400 }
401 int MSG_vm_is_suspended(sg_vm_t vm)
402 {
403   return sg_vm_is_suspended(vm);
404 }
405 const char* MSG_vm_get_name(sg_vm_t vm)
406 {
407   return sg_vm_get_name(vm);
408 }
409 void MSG_vm_set_ramsize(sg_vm_t vm, size_t size)
410 {
411   sg_vm_set_ramsize(vm, size);
412 }
413 size_t MSG_vm_get_ramsize(sg_vm_t vm)
414 {
415   return sg_vm_get_ramsize(vm);
416 }
417 sg_host_t MSG_vm_get_pm(sg_vm_t vm)
418 {
419   return sg_vm_get_pm(vm);
420 }
421 void MSG_vm_set_bound(sg_vm_t vm, double bound)
422 {
423   sg_vm_set_bound(vm, bound);
424 }
425 void MSG_vm_start(sg_vm_t vm)
426 {
427   sg_vm_start(vm);
428 }
429 void MSG_vm_suspend(sg_vm_t vm)
430 {
431   sg_vm_suspend(vm);
432 }
433 void MSG_vm_resume(sg_vm_t vm)
434 {
435   sg_vm_resume(vm);
436 }
437 void MSG_vm_shutdown(sg_vm_t vm)
438 {
439   sg_vm_shutdown(vm);
440 }
441 void MSG_vm_destroy(sg_vm_t vm)
442 {
443   sg_vm_destroy(vm);
444 }
445 /********* barriers ************/
446 sg_bar_t MSG_barrier_init(unsigned int count)
447 {
448   return sg_barrier_init(count);
449 }
450
451 void MSG_barrier_destroy(sg_bar_t bar)
452 {
453   sg_barrier_destroy(bar);
454 }
455
456 int MSG_barrier_wait(sg_bar_t bar)
457 {
458   return sg_barrier_wait(bar);
459 }
460
461 sg_sem_t MSG_sem_init(int initial_value)
462 {
463   return sg_sem_init(initial_value);
464 }
465 void MSG_sem_acquire(sg_sem_t sem)
466 {
467   sg_sem_acquire(sem);
468 }
469 int MSG_sem_acquire_timeout(sg_sem_t sem, double timeout)
470 {
471   return sg_sem_acquire_timeout(sem, timeout);
472 }
473 void MSG_sem_release(sg_sem_t sem)
474 {
475   sg_sem_release(sem);
476 }
477 int MSG_sem_get_capacity(sg_sem_t sem)
478 {
479   return sg_sem_get_capacity(sem);
480 }
481 void MSG_sem_destroy(sg_sem_t sem)
482 {
483   sg_sem_destroy(sem);
484 }
485 int MSG_sem_would_block(sg_sem_t sem)
486 {
487   return sg_sem_would_block(sem);
488 }