Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
the model descriptions also don't need to be public
[simgrid.git] / src / surf / surf_interface.hpp
index 80ebe02..75c69dd 100644 (file)
@@ -207,6 +207,34 @@ XBT_PUBLIC void surf_host_model_init_ptask_L07();
  */
 XBT_PUBLIC void surf_storage_model_init_default();
 
+/* --------------------
+ *  Model Descriptions
+ * -------------------- */
+/** \brief Resource model description */
+struct surf_model_description {
+  const char* name;
+  const char* description;
+  void_f_void_t model_init_preparse;
+};
+typedef struct surf_model_description s_surf_model_description_t;
+
+XBT_PUBLIC int find_model_description(s_surf_model_description_t* table, std::string name);
+XBT_PUBLIC void model_help(const char* category, s_surf_model_description_t* table);
+
+/** @brief The list of all available plugins */
+XBT_PUBLIC_DATA s_surf_model_description_t surf_plugin_description[];
+/** @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[];
+/** @brief The list of all cpu models (pick one with --cfg=cpu/model) */
+XBT_PUBLIC_DATA s_surf_model_description_t surf_cpu_model_description[];
+/** @brief The list of all network models (pick one with --cfg=network/model) */
+XBT_PUBLIC_DATA s_surf_model_description_t surf_network_model_description[];
+/** @brief The list of all storage models (pick one with --cfg=storage/model) */
+XBT_PUBLIC_DATA s_surf_model_description_t surf_storage_model_description[];
+/** @brief The list of all host models (pick one with --cfg=host/model:) */
+XBT_PUBLIC_DATA s_surf_model_description_t surf_host_model_description[];
+
 /**********
  * Action *
  **********/