X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/656ccde4d843648bc5c5d2a10cbbf767c1183a93..f8783b341c24d38dd5391532c02c0db77499fd00:/include/msg/msg.h diff --git a/include/msg/msg.h b/include/msg/msg.h index 41b94838d7..22117aa8e3 100644 --- a/include/msg/msg.h +++ b/include/msg/msg.h @@ -205,6 +205,9 @@ XBT_PUBLIC(msg_error_t) MSG_process_sleep(double nb_sec); XBT_PUBLIC(double) MSG_task_get_compute_duration(msg_task_t task); XBT_PUBLIC(void) MSG_task_set_compute_duration(msg_task_t task, double compute_duration); +XBT_PUBLIC(void) MSG_task_set_data_size(msg_task_t task, + double data_size); + XBT_PUBLIC(double) MSG_task_get_remaining_computation(msg_task_t task); XBT_PUBLIC(double) MSG_task_get_remaining_communication(msg_task_t task); XBT_PUBLIC(int) MSG_task_is_latency_bounded(msg_task_t task); @@ -224,12 +227,14 @@ XBT_PUBLIC(msg_error_t) #define MSG_task_recv(t,a) MSG_task_receive(t,a) XBT_PUBLIC(msg_comm_t) MSG_task_isend(msg_task_t task, const char *alias); +XBT_PUBLIC(msg_comm_t) MSG_task_isend_bounded(msg_task_t task, const char *alias, double maxrate); XBT_PUBLIC(msg_comm_t) MSG_task_isend_with_matching(msg_task_t task, const char *alias, int (*match_fun)(void*,void*, smx_action_t), void *match_data); XBT_PUBLIC(void) MSG_task_dsend(msg_task_t task, const char *alias, void_f_pvoid_t cleanup); +XBT_PUBLIC(void) MSG_task_dsend_bounded(msg_task_t task, const char *alias, void_f_pvoid_t cleanup, double maxrate); XBT_PUBLIC(msg_comm_t) MSG_task_irecv(msg_task_t * task, const char *alias); XBT_PUBLIC(int) MSG_comm_test(msg_comm_t comm); XBT_PUBLIC(int) MSG_comm_testany(xbt_dynar_t comms); @@ -249,6 +254,10 @@ XBT_PUBLIC(int) MSG_task_listen_from_host(const char *alias, XBT_PUBLIC(msg_error_t) MSG_task_send_with_timeout(msg_task_t task, const char *alias, double timeout); + +XBT_PUBLIC(msg_error_t) + MSG_task_send_with_timeout_bounded(msg_task_t task, const char *alias, + double timeout, double maxrate); XBT_PUBLIC(msg_error_t) MSG_task_send(msg_task_t task, const char *alias); @@ -332,29 +341,35 @@ XBT_PUBLIC(int) MSG_get_channel_number(void); * */ /* This function should not be called directly, but rather from MSG_vm_start_from_template that does not exist yet*/ -XBT_PUBLIC(msg_vm_t) MSG_vm_start(msg_host_t location, const char *name, int coreAmount); + +// TODO add VDI later +XBT_PUBLIC(msg_vm_t) MSG_vm_create(msg_host_t location, const char *name, + int core_nb, int mem_cap, int net_cap); + +XBT_PUBLIC(void) MSG_vm_start(msg_vm_t); XBT_PUBLIC(int) MSG_vm_is_suspended(msg_vm_t); XBT_PUBLIC(int) MSG_vm_is_running(msg_vm_t); -XBT_PUBLIC(void) MSG_vm_bind(msg_vm_t vm, msg_process_t process); -XBT_PUBLIC(void) MSG_vm_unbind(msg_vm_t vm, msg_process_t process); // simple wrapper over process_kill +XBT_PUBLIC(const char*) MSG_vm_get_name(msg_vm_t); XBT_PUBLIC(void) MSG_vm_migrate(msg_vm_t vm, msg_host_t destination); +/* Suspend the execution of the VM, but keep its state on memory. */ XBT_PUBLIC(void) MSG_vm_suspend(msg_vm_t vm); - // \forall p in VM, MSG_process_suspend(p) // Freeze the processes - -XBT_PUBLIC(void) MSG_vm_resume(msg_vm_t vm); // Simulate the fact of reading the processes from disk and resuming them - // \forall p in VM, MSG_process_resume(p) // unfreeze them +XBT_PUBLIC(void) MSG_vm_resume(msg_vm_t vm); -XBT_PUBLIC(void) MSG_vm_shutdown(msg_vm_t vm); // killall +/* Save the VM state to a disk. */ +XBT_PUBLIC(void) MSG_vm_save(msg_vm_t vm); +XBT_PUBLIC(void) MSG_vm_restore(msg_vm_t vm); -XBT_PUBLIC(void) MSG_vm_reboot(msg_vm_t vm); +/* Shutdown the guest operating system. */ +XBT_PUBLIC(void) MSG_vm_shutdown(msg_vm_t vm); XBT_PUBLIC(void) MSG_vm_destroy(msg_vm_t vm); -XBT_PUBLIC(xbt_dynar_t) MSG_vms_as_dynar(void); +/* TODO: do we need this? */ +// XBT_PUBLIC(xbt_dynar_t) MSG_vms_as_dynar(void); /* void* MSG_process_get_property(msg_process_t, char* key)