-/**
- * @brief Execute a parallel task
- * @details [long description]
- *
- * @param model The model which handle the parallelisation
- * @param workstation_nb The number of workstations
- * @param workstation_list The list of workstations on which the task is executed
- * @param computation_amount The processing amount (in flop) needed to process
- * @param communication_amount The amount of data (in bytes) needed to transfer
- * @param rate [description]
- * @return The action corresponding to the parallele execution task
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_model_execute_parallel_task(surf_workstation_model_t model,
- int workstation_nb,
- void **workstation_list,
- double *computation_amount,
- double *communication_amount,
- double rate);
-
-/**
- * @brief Create a communication between two hosts
- *
- * @param model The model which handle the communication
- * @param src The source host
- * @param dst The destination host
- * @param size The amount of data (in bytes) needed to transfer
- * @param rate [description]
- * @return The action corresponding to the communication
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_model_communicate(surf_workstation_model_t model, surf_resource_t src, surf_resource_t dst, double size, double rate);
-
-/**
- * @brief Get the route between two hosts
- * @details [long description]
- *
- * @param model The model which handle the routes
- * @param src The source host
- * @param dst The destination host
- * @return The list of [TODO] from the source to the host
- */
-XBT_PUBLIC(xbt_dynar_t) surf_workstation_model_get_route(surf_workstation_model_t model, surf_resource_t src, surf_resource_t dst);
-
-/**
- * @brief Create a new VM on the specified host
- *
- * @param name The name of the workstation
- * @param ind_phys_host The host on which the VM is created
- */
-XBT_PUBLIC(void) surf_vm_workstation_model_create(const char *name, surf_resource_t ind_phys_host);
-
-/**
- * @brief Create a communication between two routing edges [TODO]
- * @details [long description]
- *
- * @param model The model which handle the communication
- * @param src The source host
- * @param dst The destination host
- * @param size The amount of data (in bytes) needed to transfer
- * @param rate [description]
- * @return The action corresponding to the communication
- */
-XBT_PUBLIC(surf_action_t) surf_network_model_communicate(surf_network_model_t model, sg_routing_edge_t src, sg_routing_edge_t dst, double size, double rate);
-
-/**
- * @brief Get the name of a surf resource (cpu, workstation, network, …)
- *
- * @param resource The surf resource
- * @return The name of the surf resource
- */
-XBT_PUBLIC(const char * ) surf_resource_name(surf_cpp_resource_t resource);
-
-/**
- * @brief Get the properties of a surf resource (cpu, workstation, network, …)
- *
- * @param resource The surf resource
- * @return The properties of the surf resource
- */
-XBT_PUBLIC(xbt_dict_t) surf_resource_get_properties(surf_cpp_resource_t resource);
-
-/**
- * @brief Get the state of a surf resource (cpu, workstation, network, …)
- *
- * @param resource The surf resource
- * @return The state of the surf resource
- */
-XBT_PUBLIC(e_surf_resource_state_t) surf_resource_get_state(surf_cpp_resource_t resource);
-
-/**
- * @brief Set the state of a surf resource (cpu, workstation, network, …)
- *
- * @param resource The surf resource
- * @param state The new state of the surf resource
- */
-XBT_PUBLIC(void) surf_resource_set_state(surf_cpp_resource_t resource, e_surf_resource_state_t state);
-
-/**
- * @brief Get the speed of the cpu associtated to a workstation
- *
- * @param resource The surf workstation
- * @param load [description]
- *
- * @return [description]
- */
-XBT_PUBLIC(double) surf_workstation_get_speed(surf_resource_t resource, double load);
-
-/**
- * @brief Get the available speed of cpu associtated to a workstation
- *
- * @param resource The surf workstation
- * @return [description]
- */
-XBT_PUBLIC(double) surf_workstation_get_available_speed(surf_resource_t resource);
-
-/**
- * @brief Get the number of cores of the cpu associated to a workstation
- *
- * @param resource The surf workstation
- * @return The number of cores
- */
-XBT_PUBLIC(int) surf_workstation_get_core(surf_resource_t resource);
-
-/**
- * @brief Execute some quantity of computation
- *
- * @param resource The surf workstation
- * @param size The value of the processing amount (in flop) needed to process
- *
- * @return The surf action corresponding to the processing
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_execute(surf_resource_t resource, double size);
-
-/**
- * @brief Make the workstation sleep
- *
- * @param resource The surf workstation
- * @param duration The number of seconds to sleep
- * @return The surf action corresponding to the sleep
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_sleep(surf_resource_t resource, double duration);
-
-/**
- * @brief Open a file on a workstation
- *
- * @param workstation The surf workstation
- * @param fullpath The path to the file
- * @return The surf action corresponding to the openning
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_open(surf_resource_t workstation, const char* fullpath);
-
-/**
- * @brief Close a file descriptor on a workstation
- *
- * @param workstation The surf workstation
- * @param fd The file descriptor
- *
- * @return The surf action corresponding to the closing
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_close(surf_resource_t workstation, surf_file_t fd);
-
-/**
- * @brief Read a file
- *
- * @param resource The surf workstation
- * @param fd The file descriptor to read
- * @param size The size in bytes to read
- * @return The surf action corresponding to the reading
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_read(surf_resource_t resource, surf_file_t fd, sg_size_t size);
-
-/**
- * @brief Write a file
- *
- * @param resource The surf workstation
- * @param fd The file descriptor to write
- * @param size The size in bytes to write
- * @return The surf action corresponding to the writing
- */
-XBT_PUBLIC(surf_action_t) surf_workstation_write(surf_resource_t resource, surf_file_t fd, sg_size_t size);
-
-/**
- * @brief Get the informations of a file descriptor
- * @details The returned xbt_dynar_t contains:
- * - the size of the file,
- * - the mount point,
- * - the storage name,
- * - the storage typeId,
- * - the storage content type
- *
- * @param resource The surf workstation
- * @param fd The file descriptor
- * @return An xbt_dynar_t with the file informations
- */
-XBT_PUBLIC(xbt_dynar_t) surf_workstation_get_info(surf_resource_t resource, surf_file_t fd);
-
-/**
- * @brief Get the available space of the storage at the mount point
- *
- * @param resource The surf workstation
- * @param name The mount point
- * @return The amount of availble space in bytes
- */
-XBT_PUBLIC(sg_size_t) surf_workstation_get_free_size(surf_resource_t resource, const char* name);
-
-/**
- * @brief Get the used space of the storage at the mount point
- *
- * @param resource The surf workstation
- * @param name The mount point
- * @return The amount of used space in bytes
- */
-XBT_PUBLIC(sg_size_t) surf_workstation_get_used_size(surf_resource_t resource, const char* name);
-
-/**
- * @brief Get the VMs hosted on the workstation
- *
- * @param resource The surf workstation
- * @return The list of VMs on the workstation
- */
-XBT_PUBLIC(xbt_dynar_t) surf_workstation_get_vms(surf_resource_t resource);
-
-/**
- * @brief [brief description]
- * @details [long description]
- *
- * @param resource [description]
- * @param params [description]
- */
-XBT_PUBLIC(void) surf_workstation_get_params(surf_resource_t resource, ws_params_t params);
-
-/**
- * @brief [brief description]
- * @details [long description]
- *
- * @param resource [description]
- * @param params [description]
- */
-XBT_PUBLIC(void) surf_workstation_set_params(surf_resource_t resource, ws_params_t params);
-
-/**
- * @brief Destroy a Workstation VM
- *
- * @param resource The surf workstation vm
- */
-XBT_PUBLIC(void) surf_vm_workstation_destroy(surf_resource_t resource);
-
-/**
- * @brief Suspend a Workstation VM
- *
- * @param resource The surf workstation vm
- */
-XBT_PUBLIC(void) surf_vm_workstation_suspend(surf_resource_t resource);
-
-/**
- * @brief Resume a Workstation VM
- *
- * @param resource The surf workstation vm
- */
-XBT_PUBLIC(void) surf_vm_workstation_resume(surf_resource_t resource);
-
-/**
- * @brief Save the Workstation VM (Not yet implemented)
- *
- * @param resource The surf workstation vm
- */
-XBT_PUBLIC(void) surf_vm_workstation_save(surf_resource_t resource);
-
-/**
- * @brief Restore the Workstation VM (Not yet implemented)
- *
- * @param resource The surf workstation vm
- */
-XBT_PUBLIC(void) surf_vm_workstation_restore(surf_resource_t resource);
-
-/**
- * @brief Migrate the VM to the destination host
- *
- * @param resource The surf workstation vm
- * @param ind_vm_ws_dest The destination host
- */
-XBT_PUBLIC(void) surf_vm_workstation_migrate(surf_resource_t resource, surf_resource_t ind_vm_ws_dest);
-
-/**
- * @brief Get the physical machine hosting the VM
- *
- * @param resource The surf workstation vm
- * @return The physical machine hosting the VM
- */
-XBT_PUBLIC(surf_resource_t) surf_vm_workstation_get_pm(surf_resource_t resource);
-
-/**
- * @brief [brief description]
- * @details [long description]
- *
- * @param resource [description]
- * @param bound [description]
- */
-XBT_PUBLIC(void) surf_vm_workstation_set_bound(surf_resource_t resource, double bound);
-
-/**
- * @brief [brief description]
- * @details [long description]
- *
- * @param resource [description]
- * @param cpu [description]
- * @param mask [description]
- */
-XBT_PUBLIC(void) surf_vm_workstation_set_affinity(surf_resource_t resource, surf_resource_t cpu, unsigned long mask);
-
-/**
- * @brief Execute some quantity of computation
- *
- * @param cpu The surf cpu
- * @param size The value of the processing amount (in flop) needed to process
- * @return The surf action corresponding to the processing
- */
-XBT_PUBLIC(surf_action_t) surf_cpu_execute(surf_resource_t cpu, double size);
-
-/**
- * @brief Make the cpu sleep for duration (in seconds)
- * @details [long description]
- *
- * @param cpu The surf cpu
- * @param duration The number of seconds to sleep
- * @return The surf action corresponding to the sleeping
- */
-XBT_PUBLIC(surf_action_t) surf_cpu_sleep(surf_resource_t cpu, double duration);