+/* --------------------
+ * 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[];
+