-void surf_action_init(void);
-void surf_action_exit(void);
-e_surf_action_state_t surf_action_state_get(surf_action_t action); /* cannot declare inline since we use a pointer to it */
-double surf_action_get_start_time(surf_action_t action); /* cannot declare inline since we use a pointer to it */
-double surf_action_get_finish_time(surf_action_t action); /* cannot declare inline since we use a pointer to it */
-void surf_action_free(surf_action_t * action);
-void surf_action_state_set(surf_action_t action,
- e_surf_action_state_t state);
-void surf_action_data_set(surf_action_t action, void *data); /* cannot declare inline since we use a pointer to it */
-
-void surf_action_lmm_update_index_heap(void *action, int i); /* callback for heap management shared by cpu and net models */
-void surf_action_lmm_heap_insert(xbt_heap_t heap, surf_action_lmm_t action,
- double key, enum heap_action_type hat);
-void surf_action_lmm_heap_remove(xbt_heap_t heap,surf_action_lmm_t action);
-
-void surf_action_cancel(surf_action_t action);
-int surf_action_unref(surf_action_t action);
-void surf_action_suspend(surf_action_t action);
-void surf_action_resume(surf_action_t action);
-int surf_action_is_suspended(surf_action_t action);
-void surf_action_set_max_duration(surf_action_t action, double duration);
-void surf_action_set_priority(surf_action_t action, double priority);
-#ifdef HAVE_TRACING
-void surf_action_set_category(surf_action_t action,
- const char *category);
-#endif
-double surf_action_get_remains(surf_action_t action);
-void update_resource_energy(surf_model_t model, surf_action_lmm_t action);
-void generic_update_action_remaining_lazy( surf_action_lmm_t action, double now);
-void generic_update_actions_state_lazy(double now, double delta, surf_model_t model);
-void generic_update_actions_state_full(double now, double delta, surf_model_t model);