X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e4abd3f271729beeff499da36267bfb274dd1f6d..bdfe4f8674f98efbf2d67ad854ef83a1d5f855ed:/src/instr/instr_private.h diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index f746bbcd2a..21baa8f795 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2010. The SimGrid Team. +/* Copyright (c) 2010-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -7,6 +7,8 @@ #ifndef INSTR_PRIVATE_H_ #define INSTR_PRIVATE_H_ +#include "instr/instr.h" +#include "instr/instr_interface.h" #include "simgrid_config.h" #ifdef HAVE_TRACING @@ -18,11 +20,9 @@ #define INSTR_DEFAULT_STR_SIZE 500 -#include "instr/instr.h" -#include "msg/msg.h" -#include "simdag/private.h" -#include "simix/smx_private.h" -#include "xbt/graph_private.h" +#include "xbt/graph.h" +#include "xbt/dict.h" +#include "simgrid/platf.h" typedef enum { PAJE_DefineContainerType, @@ -103,127 +103,69 @@ extern xbt_dict_t user_link_variables; extern double TRACE_last_timestamp_to_dump; /* instr_paje_header.c */ -void TRACE_header(int basic); +void TRACE_header(int basic, int size); /* from paje.c */ void TRACE_paje_start(void); void TRACE_paje_end(void); void TRACE_paje_dump_buffer (int force); -void new_pajeDefineContainerType(type_t type); -void new_pajeDefineVariableType(type_t type); -void new_pajeDefineStateType(type_t type); -void new_pajeDefineEventType(type_t type); -void new_pajeDefineLinkType(type_t type, type_t source, type_t dest); -void new_pajeDefineEntityValue (val_t type); -void new_pajeCreateContainer (container_t container); -void new_pajeDestroyContainer (container_t container); -void new_pajeSetVariable (double timestamp, container_t container, type_t type, double value); -void new_pajeAddVariable (double timestamp, container_t container, type_t type, double value); -void new_pajeSubVariable (double timestamp, container_t container, type_t type, double value); -void new_pajeSetState (double timestamp, container_t container, type_t type, val_t value); -void new_pajePushState (double timestamp, container_t container, type_t type, val_t value); -void new_pajePopState (double timestamp, container_t container, type_t type); -void new_pajeResetState (double timestamp, container_t container, type_t type); -void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key); -void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key); -void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value); - -/* declaration of instrumentation functions from msg_task_instr.c */ -void TRACE_msg_set_task_category(msg_task_t task, const char *category); -void TRACE_msg_task_create(msg_task_t task); -void TRACE_msg_task_execute_start(msg_task_t task); -void TRACE_msg_task_execute_end(msg_task_t task); -void TRACE_msg_task_destroy(msg_task_t task); -void TRACE_msg_task_get_start(void); -void TRACE_msg_task_get_end(double start_time, msg_task_t task); -int TRACE_msg_task_put_start(msg_task_t task); //returns TRUE if the task_put_end must be called -void TRACE_msg_task_put_end(void); - -/* declaration of instrumentation functions from msg_process_instr.c */ -char *instr_process_id (msg_process_t proc, char *str, int len); -char *instr_process_id_2 (const char *process_name, int process_pid, char *str, int len); -void TRACE_msg_process_change_host(msg_process_t process, msg_host_t old_host, - msg_host_t new_host); -void TRACE_msg_process_create (const char *process_name, int process_pid, msg_host_t host); -void TRACE_msg_process_destroy (const char *process_name, int process_pid, msg_host_t host); -void TRACE_msg_process_kill(msg_process_t process); -void TRACE_msg_process_suspend(msg_process_t process); -void TRACE_msg_process_resume(msg_process_t process); -void TRACE_msg_process_sleep_in(msg_process_t process); //called from msg/gos.c -void TRACE_msg_process_sleep_out(msg_process_t process); -void TRACE_msg_process_end(msg_process_t process); - -/* declaration of instrumentation functions from instr_msg_vm.c */ -char *instr_vm_id (msg_vm_t vm, char *str, int len); -char *instr_vm_id_2 (const char *vm_name, char *str, int len); -void TRACE_msg_vm_change_host(msg_vm_t vm, msg_host_t old_host, - msg_host_t new_host); -void TRACE_msg_vm_create (const char *vm_name, msg_host_t host); -void TRACE_msg_vm_kill(msg_vm_t process); -void TRACE_msg_vm_suspend(msg_vm_t vm); -void TRACE_msg_vm_resume(msg_vm_t vm); -void TRACE_msg_vm_sleep_in(msg_vm_t vm); -void TRACE_msg_vm_sleep_out(msg_vm_t vm); -void TRACE_msg_vm_end(msg_vm_t vm); - -/* from surf_instr.c */ -void TRACE_surf_alloc(void); -void TRACE_surf_release(void); -void TRACE_surf_host_set_power(double date, const char *resource, double power); -void TRACE_surf_link_set_bandwidth(double date, const char *resource, double bandwidth); -void TRACE_surf_link_set_latency(double date, const char *resource, double latency); -void TRACE_surf_action(surf_action_t surf_action, const char *category); +XBT_PUBLIC(void) new_pajeDefineContainerType(type_t type); +XBT_PUBLIC(void) new_pajeDefineVariableType(type_t type); +XBT_PUBLIC(void) new_pajeDefineStateType(type_t type); +XBT_PUBLIC(void) new_pajeDefineEventType(type_t type); +XBT_PUBLIC(void) new_pajeDefineLinkType(type_t type, type_t source, type_t dest); +XBT_PUBLIC(void) new_pajeDefineEntityValue (val_t type); +XBT_PUBLIC(void) new_pajeCreateContainer (container_t container); +XBT_PUBLIC(void) new_pajeDestroyContainer (container_t container); +XBT_PUBLIC(void) new_pajeSetVariable (double timestamp, container_t container, type_t type, double value); +XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, type_t type, double value); +XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value); +XBT_PUBLIC(void) new_pajeSetState (double timestamp, container_t container, type_t type, val_t value); +XBT_PUBLIC(void) new_pajePushState (double timestamp, container_t container, type_t type, val_t value); +XBT_PUBLIC(void) new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size); +XBT_PUBLIC(void) new_pajePopState (double timestamp, container_t container, type_t type); +XBT_PUBLIC(void) new_pajeResetState (double timestamp, container_t container, type_t type); +XBT_PUBLIC(void) new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key); +XBT_PUBLIC(void) new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key, int size); +XBT_PUBLIC(void) new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key); +XBT_PUBLIC(void) new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value); //for tracing gtnets void TRACE_surf_gtnets_communicate(void *action, void *src, void *dst); -/* from smpi_instr.c */ -void TRACE_internal_smpi_set_category (const char *category); -const char *TRACE_internal_smpi_get_category (void); -void TRACE_smpi_alloc(void); -void TRACE_smpi_release(void); -void TRACE_smpi_init(int rank); -void TRACE_smpi_finalize(int rank); -void TRACE_smpi_collective_in(int rank, int root, const char *operation); -void TRACE_smpi_collective_out(int rank, int root, const char *operation); -void TRACE_smpi_computing_init(int rank); -void TRACE_smpi_computing_out(int rank); -void TRACE_smpi_computing_in(int rank); -void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation); -void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation); -void TRACE_smpi_send(int rank, int src, int dst); -void TRACE_smpi_recv(int rank, int src, int dst); - /* from instr_config.c */ -int TRACE_start (void); -int TRACE_end (void); int TRACE_needs_platform (void); int TRACE_is_enabled(void); int TRACE_platform(void); int TRACE_platform_topology(void); int TRACE_is_configured(void); -int TRACE_smpi_is_enabled(void); -int TRACE_smpi_is_grouped(void); -int TRACE_smpi_is_computing(void); int TRACE_categorized (void); int TRACE_uncategorized (void); int TRACE_msg_process_is_enabled(void); +int TRACE_msg_vm_is_enabled(void); int TRACE_buffer (void); +int TRACE_disable_link(void); +int TRACE_disable_power(void); int TRACE_onelink_only (void); int TRACE_disable_destroy (void); int TRACE_basic (void); +int TRACE_display_sizes (void); char *TRACE_get_comment (void); char *TRACE_get_comment_file (void); char *TRACE_get_filename(void); char *TRACE_get_viva_uncat_conf (void); char *TRACE_get_viva_cat_conf (void); -void TRACE_global_init(int *argc, char **argv); -void TRACE_help(int detailed); void TRACE_generate_viva_uncat_conf (void); void TRACE_generate_viva_cat_conf (void); void instr_pause_tracing (void); void instr_resume_tracing (void); +/* Public functions used in SMPI */ +XBT_PUBLIC(int) TRACE_smpi_is_enabled(void); +XBT_PUBLIC(int) TRACE_smpi_is_grouped(void); +XBT_PUBLIC(int) TRACE_smpi_is_computing(void); +XBT_PUBLIC(int) TRACE_smpi_view_internals(void); + /* from resource_utilization.c */ void TRACE_surf_host_set_utilization(const char *resource, const char *category, @@ -236,7 +178,6 @@ void TRACE_surf_link_set_utilization(const char *resource, double now, double delta); void TRACE_surf_resource_utilization_alloc(void); -void TRACE_surf_resource_utilization_release(void); /* instr_paje.c */ extern xbt_dict_t trivaNodeTypes; @@ -244,45 +185,35 @@ extern xbt_dict_t trivaEdgeTypes; long long int instr_new_paje_id (void); void PJ_container_alloc (void); void PJ_container_release (void); -container_t PJ_container_new (const char *name, e_container_types kind, container_t father); -container_t PJ_container_get (const char *name); -container_t PJ_container_get_or_null (const char *name); -container_t PJ_container_get_root (void); -void PJ_container_set_root (container_t root); -void PJ_container_free (container_t container); -void PJ_container_free_all (void); -void PJ_container_remove_from_parent (container_t container); +XBT_PUBLIC(container_t) PJ_container_new (const char *name, e_container_types kind, container_t father); +XBT_PUBLIC(container_t) PJ_container_get (const char *name); +XBT_PUBLIC(container_t) PJ_container_get_or_null (const char *name); +XBT_PUBLIC(container_t) PJ_container_get_root (void); +XBT_PUBLIC(void) PJ_container_set_root (container_t root); +XBT_PUBLIC(void) PJ_container_free (container_t container); +XBT_PUBLIC(void) PJ_container_free_all (void); +XBT_PUBLIC(void) PJ_container_remove_from_parent (container_t container); /* instr_paje_types.c */ void PJ_type_alloc (void); void PJ_type_release (void); -type_t PJ_type_get_root (void); +XBT_PUBLIC(type_t) PJ_type_get_root (void); type_t PJ_type_container_new (const char *name, type_t father); type_t PJ_type_event_new (const char *name, type_t father); type_t PJ_type_variable_new (const char *name, const char *color, type_t father); type_t PJ_type_link_new (const char *name, type_t father, type_t source, type_t dest); type_t PJ_type_state_new (const char *name, type_t father); -type_t PJ_type_get (const char *name, const type_t father); -type_t PJ_type_get_or_null (const char *name, type_t father); +XBT_PUBLIC(type_t) PJ_type_get (const char *name, const type_t father); +XBT_PUBLIC(type_t) PJ_type_get_or_null (const char *name, type_t father); void PJ_type_free (type_t type); void PJ_type_free_all (void); /* instr_paje_values.c */ -val_t PJ_value_new (const char *name, const char *color, type_t father); -val_t PJ_value_get_or_new (const char *name, const char *color, type_t father); -val_t PJ_value_get (const char *name, const type_t father); +XBT_PUBLIC(val_t) PJ_value_new (const char *name, const char *color, type_t father); +XBT_PUBLIC(val_t) PJ_value_get_or_new (const char *name, const char *color, type_t father); +XBT_PUBLIC(val_t) PJ_value_get (const char *name, const type_t father); void PJ_value_free (val_t value); -/* instr_routing.c */ -void instr_routing_define_callbacks (void); -void instr_new_variable_type (const char *new_typename, const char *color); -void instr_new_user_variable_type (const char *father_type, const char *new_typename, const char *color); -void instr_new_user_state_type (const char *father_type, const char *new_typename); -void instr_new_value_for_user_state_type (const char *typename, const char *value, const char *color); -int instr_platform_traced (void); -xbt_graph_t instr_routing_platform_graph (void); -void instr_routing_platform_graph_export_graphviz (xbt_graph_t g, const char *filename); - #endif /* HAVE_TRACING */ #ifdef HAVE_JEDULE