+/* ************************** Engine *************************** */
+void MSG_create_environment(const char* filename)
+{
+ simgrid_load_platform(filename);
+}
+
+void MSG_launch_application(const char* filename)
+{
+ simgrid_load_deployment(filename);
+}
+msg_error_t MSG_main()
+{
+ simgrid_run();
+ return MSG_OK;
+}
+void MSG_function_register(const char* name, int (*code)(int, char**))
+{
+ simgrid::kernel::actor::ActorCodeFactory code_factory = [code](std::vector<std::string> args) {
+ return simgrid::xbt::wrap_main(code, std::move(args));
+ };
+ simgrid::s4u::Engine::get_instance()->register_function(name, code_factory);
+}
+void MSG_function_register_default(int (*code)(int, char**))
+{
+ simgrid::s4u::Engine::get_instance()->register_default(
+ [code](std::vector<std::string> args) { return simgrid::xbt::wrap_main(code, std::move(args)); });
+}
+double MSG_get_clock()
+{
+ return simgrid_get_clock();
+}
+
+/* ************************** Mailboxes ************************ */
+void MSG_mailbox_set_async(const char* alias)
+{
+ sg_mailbox_set_receiver(alias);
+}
+int MSG_task_listen(const char* alias)
+{
+ return sg_mailbox_listen(alias);
+}