/** \addtogroup SURF_API
-
+
\section SURF_doc Surf documentation
+ Surf is composed several components:
- \ref SURF_simulation
- - \ref SURF_actions
- - \ref SURF_resources
- \ref SURF_build_api
+ - \ref SURF_c_bindings
+ - \ref SURF_interface
+ - \ref SURF_routing_interface
+ - \ref SURF_cpu_interface
+ - \ref SURF_network_interface
+ - \ref SURF_storage_interface
+ - \ref SURF_workstation_interface
+ - \ref SURF_vm_workstation_interface
+ - \ref SURF_lmm
+ - \ref SURF_callbacks
+ - \ref SURF_plugin_energy
+
*/
\ingroup SURF_API
\brief Functions for creating the environment and launching the simulation
- This section describes the functions for initialising SURF, performing
+ This section describes the functions for initializing SURF, performing
the simulation and exiting SURF.
*/
-/** \defgroup SURF_actions SURF actions
- \ingroup SURF_API
- \brief This section describes the different datatypes and operations related to the actions in SURF.
-
- \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Actions" --> \endhtmlonly
-*/
-
-/** \defgroup SURF_resources SURF resources
- \ingroup SURF_API
- \brief This section describes the different datatypes and operations related to the resources in SURF.
-
- \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Resources" --> \endhtmlonly
-*/
-
/** \defgroup SURF_build_api Create a new API
\ingroup SURF_API
\brief How to build a new API on top of SURF
- SURF provides the functionnalities to simulate the platform. There are two main datatypes in SURF:
+ SURF provides the functionalities to simulate the platform. There are two main data types in SURF:
the actions and the resources. Several types of resources exist:
- the workstation resource,
- the network resource,
- the CPU resource,
- the timer resource.
- The implentation of these resources depends on the platform model you choose. There are several
+ The implementation of these resources depends on the platform model you choose. There are several
platform models. You can select your model by calling surf_workstation_resource_init_CLM03()
or surf_workstation_resource_init_KCCFLN05(). See the documentation of these functions to have
more details about the models. Remember that the model KCCFLN05 is an implementation of both the
Have a look at the implementation of \ref MSG_API "MSG" and \ref SD_API "Simdag" to see how these module
interact with SURF. But if you want to create a new API on top of SURF,
- we strongly recommand you to contact us before anyway.
+ we strongly recommend you to contact us before anyway.
+
+*/
+
+/**
+@defgroup SURF_c_bindings SURF C bindings
+@ingroup SURF_API
+@brief Describes the c bindings of SURF
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Surf C bindings" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_interface SURF Interface
+@ingroup SURF_API
+@brief Describes the general interface for all components (Cpu, Network, Storage, Workstation, WorkstationVM)
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Surf Interface" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_routing_interface SURF Routing Interface
+@ingroup SURF_API
+@brief Describes the routing interface
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Surf Routing" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_cpu_interface SURF Cpu Interface
+@ingroup SURF_API
+@brief Describes the general Cpu interface for all Cpu implementations
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Cpu Interface" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_network_interface SURF Network Interface
+@ingroup SURF_API
+@brief Describes the general Network interface for all Network implementations
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Network Interface" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_storage_interface SURF Storage Interface
+@ingroup SURF_API
+@brief Describes the general interface for all Storage implementations
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Storage Interface" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_workstation_interface SURF Workstation Interface
+@ingroup SURF_API
+@brief Describes the general interface for all Workstation implementations
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Workstation Interface" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_vm_workstation_interface SURF VM Workstation Interface
+@ingroup SURF_API
+@brief Describes the general interface for all VM Workstation implementations
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="VM Workstation Interface" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_lmm SURF Linear MaxMin
+@ingroup SURF_API
+@brief Describes how the linear MaxMin system work
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="SURF Linear MaxMin" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_callbacks SURF callbacks
+@ingroup SURF_API
+@brief Describes how to use the SURF callbacks
+
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="SURF callbacks" --> @endhtmlonly
+*/
+
+/**
+@defgroup SURF_plugin_energy SURF Energy Plugin
+@ingroup SURF_API
+@brief Describes how to use the energy plugin.
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Energy plugin" --> @endhtmlonly
*/