#define SURF_SURF_H
#include "simgrid/forward.h"
-#include "src/internal_config.h"
-#include "xbt/config.h"
-#include "xbt/dict.h"
-#include "xbt/dynar.h"
#include "xbt/graph.h"
-#include "xbt/misc.h"
-
-#ifndef __cplusplus
-#error This is a C++ only file, now
-#endif
namespace simgrid {
namespace surf {
}
}
-/** @ingroup SURF_c_bindings
- * \brief Model datatype
- *
- * Generic data structure for a model. The hosts,
- * the CPUs and the network links are examples of models.
- */
-typedef simgrid::surf::CpuModel* surf_cpu_model_t;
-typedef simgrid::surf::HostModel* surf_host_model_t;
-typedef simgrid::surf::NetworkModel* surf_network_model_t;
-typedef simgrid::surf::StorageModel* surf_storage_model_t;
-
-SG_BEGIN_DECL()
-/* Actions and models are highly connected structures... */
-
-/* user-visible parameters */
-extern XBT_PRIVATE double sg_tcp_gamma;
-extern XBT_PRIVATE double sg_latency_factor;
-extern XBT_PRIVATE double sg_bandwidth_factor;
-extern XBT_PRIVATE double sg_weight_S_parameter;
-extern XBT_PRIVATE int sg_network_crosstraffic;
-
/** \brief Resource model description
*/
struct surf_model_description {
/** \ingroup SURF_models
* \brief The CPU model object for the physical machine layer
*/
-XBT_PUBLIC_DATA(surf_cpu_model_t) surf_cpu_model_pm;
+XBT_PUBLIC_DATA simgrid::surf::CpuModel* surf_cpu_model_pm;
/** \ingroup SURF_models
* \brief The CPU model object for the virtual machine layer
*/
-XBT_PUBLIC_DATA(surf_cpu_model_t) surf_cpu_model_vm;
+XBT_PUBLIC_DATA simgrid::surf::CpuModel* surf_cpu_model_vm;
/** \ingroup SURF_models
* \brief Initializes the CPU model with the model Cas01
* \brief The list of all available optimization modes (both for cpu and networks).
* These optimization modes can be set using --cfg=cpu/optim:... and --cfg=network/optim:...
*/
-XBT_PUBLIC_DATA(s_surf_model_description_t) surf_optimization_mode_description[];
+XBT_PUBLIC_DATA s_surf_model_description_t surf_optimization_mode_description[];
/** \ingroup SURF_plugins
* \brief The list of all available surf plugins
*/
-XBT_PUBLIC_DATA(s_surf_model_description_t) surf_plugin_description[];
+XBT_PUBLIC_DATA s_surf_model_description_t surf_plugin_description[];
/** \ingroup SURF_models
* \brief The list of all available cpu model models
*/
-XBT_PUBLIC_DATA(s_surf_model_description_t) surf_cpu_model_description[];
-
-/** \ingroup SURF_models
- * \brief The network model
- *
- * When creating a new API on top on SURF, you shouldn't use the network model unless you know what you are doing.
- * Only the host model should be accessed because depending on the platform model, the network model can be NULL.
- */
-XBT_PUBLIC_DATA(surf_network_model_t) surf_network_model;
+XBT_PUBLIC_DATA s_surf_model_description_t surf_cpu_model_description[];
/** \ingroup SURF_models
* \brief Same as network model 'LagrangeVelho', only with different correction factors.
/** \ingroup SURF_models
* \brief The list of all available network model models
*/
-XBT_PUBLIC_DATA(s_surf_model_description_t) surf_network_model_description[];
+XBT_PUBLIC_DATA s_surf_model_description_t surf_network_model_description[];
/** \ingroup SURF_models
* \brief The storage model
* \brief The list of all available storage modes.
* This storage mode can be set using --cfg=storage/model:...
*/
-XBT_PUBLIC_DATA(s_surf_model_description_t) surf_storage_model_description[];
+XBT_PUBLIC_DATA s_surf_model_description_t surf_storage_model_description[];
-XBT_PUBLIC_DATA(surf_storage_model_t) surf_storage_model;
+XBT_PUBLIC_DATA simgrid::surf::StorageModel* surf_storage_model;
/** \ingroup SURF_models
* \brief The host model
* Note that when you create an API on top of SURF, the host model should be the only one you use
* because depending on the platform model, the network model and the CPU model may not exist.
*/
-XBT_PUBLIC_DATA(surf_host_model_t) surf_host_model;
+XBT_PUBLIC_DATA simgrid::surf::HostModel* surf_host_model;
/** \ingroup SURF_models
* \brief Initializes the platform with a compound host model
/** \ingroup SURF_models
* \brief The list of all available host model models
*/
-XBT_PUBLIC_DATA(s_surf_model_description_t) surf_host_model_description[];
+XBT_PUBLIC_DATA s_surf_model_description_t surf_host_model_description[];
/** \ingroup SURF_models
* \brief Initializes the platform with the current best network and cpu models at hand
xbt_graph_t instr_routing_platform_graph();
void instr_routing_platform_graph_export_graphviz(xbt_graph_t g, const char* filename);
-SG_END_DECL()
-
#endif