--- /dev/null
+/** \defgroup SimGrid_API API of SimGrid */
+
+/** \defgroup XBT_API API of the toolbox (FIFO, hashtables, macros...)
+ \ingroup SimGrid_API
+*/
+ /** \defgroup XBT_context User-level context library
+ * \ingroup XBT_API
+ * \brief This section describes how to use high-level functions
+ * (as opposed to <c>setjump/longjmp</c>) to schedule non-preemptible
+ * threads.
+ */
+ /** \defgroup XBT_dict A generic dictionnary
+ * \ingroup XBT_API
+ * \brief This section describes the API to a dictionnary structure that
+ * associates as string to a void* key. It is not a hash table and the
+ * internal data-structure rather looks like a tree.
+ */
+ /** \defgroup XBT_dynar A generic dynamic array
+ * \ingroup XBT_API
+ * \brief This section describes the API to generic dynamic array (vector).
+ */
+ /** \defgroup XBT_error Error tracking support.
+ * \ingroup XBT_API
+ * \brief This section describes a set of macros used to handle errors easily.
+ */
+ /** \defgroup XBT_fifo A generic workqueue
+ * \ingroup XBT_API
+ * \brief This section describes the API to generic workqueue. These functions
+ * provide the same kind of functionnality as dynamic arrays but in time O(1).
+ * However these functions use malloc/free a way too much often.
+ */
+ /** \defgroup XBT_swag A specific set datatype
+ * \ingroup XBT_API
+ * \brief Warning, this module is done to be efficient and performs tons of
+ * cast and dirty things. So avoid using it unless you really know
+ * what you are doing. It is basically a fifo but with restrictions so that
+ * it can be used as a set. Any operation (add, remove, belongs) is O(1) and
+ * no call to malloc/free is done.
+ */
+ /** \defgroup XBT_heap A generic heap data structure
+ * \ingroup XBT_API
+ * \brief This section describes the API to generic heap.
+ */
+ /** \defgroup XBT_log A generic logging facility in the spirit of log4j
+ * \ingroup XBT_API
+ * \brief This section describes the API to the log functions used
+ * everywhere in this project.
+ */
+ /** \defgroup XBT_sysdep All system dependency
+ * \ingroup XBT_API
+ * \brief This section describes many macros/functions that can serve as
+ * an OS abstraction.
+ */
+
+
+/** \defgroup SURF_API API of SURF
+ * \ingroup SimGrid_API
+ */
+
+
+/** \defgroup MSG_API API of MSG
+ * \ingroup SimGrid_API
+ */
+ /** \defgroup m_datatypes_management MSG Data Types
+ * \ingroup MSG_API
+ * \brief This section describes the different datatypes provided by MSG.
+ *
+ */
+
+ /** \defgroup m_process_management Management Functions of Agents
+ * \ingroup MSG_API
+ * \brief This section describes the agent structure of MSG
+ * (#m_process_t) and the functions for managing it.
+ *
+ * We need to simulate many independent scheduling decisions, so
+ * the concept of <em>process</em> is at the heart of the
+ * simulator. A process may be defined as a <em>code</em>, with
+ * some <em>private data</em>, executing in a <em>location</em>.
+ * \see m_process_t
+ */
+
+ /** \defgroup m_host_management Management Functions of Hosts
+ * \ingroup MSG_API
+ * \brief This section describes the host structure of MSG
+ * (#m_host_t) and the functions for managing it.
+ *
+ * A <em>location</em> (or <em>host</em>) is any possible place where
+ * a process may run. Thus it may be represented as a
+ * <em>physical resource with computing capabilities</em>, some
+ * <em>mailboxes</em> to enable running process to communicate with
+ * remote ones, and some <em>private data</em> that can be only
+ * accessed by local process.
+ * \see m_host_t
+ */
+
+ /** \defgroup m_task_management Management Functions of Tasks
+ * \ingroup MSG_API
+ * \brief This section describes the task structure of MSG
+ * (#m_task_t) and the functions for managing it.
+ *
+ * Since most scheduling algorithms rely on a concept of task
+ * that can be either <em>computed</em> locally or
+ * <em>transferred</em> on another processor, it seems to be the
+ * right level of abstraction for our purposes. A <em>task</em>
+ * may then be defined by a <em>computing amount</em>, a
+ * <em>message size</em> and some <em>private data</em>.
+ */
+
+ /** \defgroup msg_gos_functions MSG Operating System Functions
+ * \ingroup MSG_API
+ * \brief This section describes the functions that can be used
+ * by an agent for handling some task.
+ */
+
+ /** \defgroup m_channel_management Understanding channels
+ * \ingroup MSG_API
+ * \brief This section briefly describes the channel notion of MSG
+ * (#m_channel_t).
+ *
+ * For convenience, the simulator provides the notion of channel
+ * that is close to the tag notion in MPI. A channel is not a
+ * socket. It doesn't need to be opened neither closed. It rather
+ * corresponds to the ports opened on the different machines.
+ */
+
+ /** \defgroup msg_easier_life Platform and Application management
+ * \ingroup MSG_API
+ * \brief This section describes functions to manage the platform creation
+ * and the application deployment. You should also have a look at
+ * \ref MSG_examples to have an overview of their usage.
+ */
+
+ /** \defgroup msg_simulation MSG simulation Functions
+ * \ingroup MSG_API
+ * \brief This section describes the functions you need to know to
+ * set up a simulation. You should have a look at \ref MSG_examples
+ * to have an overview of their usage.
+ */