* @addtogroup XBT_error
* @brief Those are the SimGrid version of the good ol' assert macro.
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_log]
- * <tr><td><b>Next</b> <td> [\ref XBT_config] </table></center>
- *
* You can pass them a format message and arguments, just as if it where a printf.
* It is converted to a CRITICALn logging request.
*
/** @addtogroup XBT_config
* @brief Changing the configuration of SimGrid components (grounding feature)
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_error]
- * <tr><td><b>Next</b> <td> [\ref XBT_dynar]
- * <tr><td><b>Down</b> <td> [\ref XBT_cfg_use] </table></center>
- *
* All modules of the SimGrid toolkit can be configured with this API.
* User modules and libraries can also use these facilities to handle
* their own configuration.
/** @defgroup XBT_cfg_use User interface: changing values
* @ingroup XBT_config
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_config]
- * <tr><td> Prev <td>
- * <tr><td><b>Next</b> <td> [\ref XBT_cfg_decl] </table></center>
- *
* This is the only interface you should use unless you want to let your
* own code become configurable with this.
*
/** @defgroup XBT_cfg_decl Configuration type declaration and memory management
* @ingroup XBT_config
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_config]
- * <tr><td><b>Prev</b> <td> [\ref XBT_cfg_use]
- * <tr><td><b>Next</b> <td> [\ref XBT_cfg_register] </table></center>
- *
* @{
*/
/** @defgroup XBT_cfg_register Registering stuff
* @ingroup XBT_config
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_config]
- * <tr><td><b>Prev</b> <td> [\ref XBT_cfg_decl]
- * <tr><td><b>Next</b> <td> [\ref XBT_cfg_get] </table></center>
- *
* This how to add new variables to an existing configuration set. Use it to make your code
* configurable.
*
/** @defgroup XBT_cfg_get Getting the stored values
* @ingroup XBT_config
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_config]
- * <tr><td><b>Prev</b> <td> [\ref XBT_cfg_register]
- * <tr><td> Next <td> </table></center>
- *
* This is how to retrieve the values stored in the configuration set. This is only
* intended to configurable code, naturally.
*
/** @addtogroup XBT_dict
* @brief The dictionnary data structure (comparable to hash tables)
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_dynar]
- * <tr><td><b>Next</b> <td> [\ref XBT_set]
- * <tr><td><b>Down</b> <td> [\ref XBT_dict_cons] </table></center>
- *
* This section describes the API to a dictionnary structure that
* associates as string to a void* key. Even if it provides the same
* functionnality than an hash table, the implementation differs and the
/** @defgroup XBT_dict_cons Dict constructor and destructor
* @ingroup XBT_dict
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dict]
- * <tr><td> Prev <td>
- * <tr><td><b>Next</b> <td> [\ref XBT_dict_basic] </table></center>
- *
* @{
*/
/** @defgroup XBT_dict_basic Dictionnaries basic usage
* @ingroup XBT_dict
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dict]
- * <tr><td><b>Prev</b> <td> [\ref XBT_dict_cons]
- * <tr><td><b>Next</b> <td> [\ref XBT_dict_nnul] </table></center>
- *
* Careful, those functions assume that the key is null-terminated.
*
* @{
/** @defgroup XBT_dict_nnul Dictionnaries with non-nul terminated keys
* @ingroup XBT_dict
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dict]
- * <tr><td><b>Prev</b> <td> [\ref XBT_dict_basic]
- * <tr><td><b>Next</b> <td> [\ref XBT_dict_curs] </table></center>
- *
* Those functions work even with non-null terminated keys.
*
* @{
/** @defgroup XBT_dict_curs Cursors on dictionnaries
* @ingroup XBT_dict
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dict]
- * <tr><td><b>Prev</b> <td> [\ref XBT_dict_nnul]
- * <tr><td><b>Next</b> <td> [\ref XBT_dict_multi] </table></center>
- *
* Don't get impressed, there is a lot of functions here, but traversing a
* dictionnary is imediate with the xbt_dict_foreach macro.
* You only need the other functions in rare cases (they are not used directly in SG itself).
/** @defgroup XBT_dict_multi Multi-level dictionnaries
* @ingroup XBT_dict
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dict]
- * <tr><td><b>Prev</b> <td> [\ref XBT_dict_curs]
- * <tr><td> Next <td> </table></center>
- *
* They can be seen as dictionnary of multiple keys or as dictionnary of
* dictionnary of ... of data. Most of the functions here work the same way
* than their simple dictionnary counterpart.
/** @addtogroup XBT_dynar
* @brief DynArr are dynamically sized vector which may contain any type of variables.
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_config]
- * <tr><td><b>Next</b> <td> [\ref XBT_dict]
- * <tr><td><b>Down</b> <td> \ref XBT_dynar_cons\n\ref XBT_dynar_array\n\ref XBT_dynar_perl\n\ref XBT_dynar_ctn\n\ref XBT_dynar_speed\n\ref XBT_dynar_cursor
- * </table></center>
- *
* These are the SimGrid version of the dynamically size arrays, which all C programmer recode one day or another.
*
* For performance concerns, the content of DynArr must be homogeneous (in
/** @defgroup XBT_dynar_cons Dynar constructor and destructor
* @ingroup XBT_dynar
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dynar]
- * <tr><td><b>Jump to</b><td> --\>\ref XBT_dynar_cons\<--\n\ref XBT_dynar_array\n\ref XBT_dynar_perl\n\ref XBT_dynar_ctn\n\ref XBT_dynar_speed\n\ref XBT_dynar_cursor
- * </table></center>
- *
* @{
*/
/** \brief Dynar data type (opaque type) */
/** @defgroup XBT_dynar_array Dynar as a regular array
* @ingroup XBT_dynar
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dynar]
- * <tr><td><b>Jump to</b><td> \ref XBT_dynar_cons\n--\>\ref XBT_dynar_array\<--\n\ref XBT_dynar_perl\n\ref XBT_dynar_ctn\n\ref XBT_dynar_speed\n\ref XBT_dynar_cursor
- * </table></center>
- *
* @{
*/
/** @defgroup XBT_dynar_perl Perl-like use of dynars
* @ingroup XBT_dynar
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dynar]
- * <tr><td><b>Jump to</b><td> \ref XBT_dynar_cons\n\ref XBT_dynar_array\n--\>\ref XBT_dynar_perl\<--\n\ref XBT_dynar_ctn\n\ref XBT_dynar_speed\n\ref XBT_dynar_cursor
- * </table></center>
- *
* @{
*/
/** @defgroup XBT_dynar_ctn Direct manipulation to the dynars content
* @ingroup XBT_dynar
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dynar]
- * <tr><td><b>Jump to</b><td> \ref XBT_dynar_cons\n\ref XBT_dynar_array\n\ref XBT_dynar_perl\n--\>\ref XBT_dynar_ctn\<--\n\ref XBT_dynar_speed\n\ref XBT_dynar_cursor
- * </table></center>
- *
* Those functions do not retrive the content, but only their address.
*
* @{
/** @defgroup XBT_dynar_speed Speed optimized access to dynars of scalars
* @ingroup XBT_dynar
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dynar]
- * <tr><td><b>Jump to</b><td> \ref XBT_dynar_cons\n\ref XBT_dynar_array\n\ref XBT_dynar_perl\n\ref XBT_dynar_ctn\n--\>\ref XBT_dynar_speed\<--\n\ref XBT_dynar_cursor
- * </table></center>
- *
* While the other functions use a memcpy to retrive the content into the
* user provided area, those ones use a regular affectation. It only works
* for scalar values, but should be a little faster.
/** @defgroup XBT_dynar_cursor Cursors on dynar
* @ingroup XBT_dynar
*
- * <center><table><tr><td><b>Up </b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_dynar]
- * <tr><td><b>Jump to</b><td> \ref XBT_dynar_cons\n\ref XBT_dynar_array\n\ref XBT_dynar_perl\n\ref XBT_dynar_ctn\n\ref XBT_dynar_speed\n--\>\ref XBT_dynar_cursor\<--
- * </table></center>
- *
* Cursors are used to iterate over the structure. Never add elements to the
* DynArr during the traversal. To remove elements, use the
* xbt_dynar_cursor_rm() function
/** @addtogroup XBT_fifo
* @brief This section describes the API to generic workqueue.
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_set]
- * <tr><td><b>Next</b> <td> [\ref XBT_swag]
- * <tr><td><b>Down</b> <td> [\ref XBT_fifo_cons] </table></center>
- *
* These functions provide the same kind of functionnality as dynamic arrays but in time O(1).
* However these functions use malloc/free way too much often.
*/
/** @defgroup XBT_fifo_cons Fifo constructor and destructor
* @ingroup XBT_fifo
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_fifo]
- * <tr><td> Prev <td>
- * <tr><td><b>Next</b> <td> [\ref XBT_fifo_perl] </table></center>
* @{
*/
/** @defgroup XBT_fifo_perl Fifo perl-like functions
* @ingroup XBT_fifo
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_fifo]
- * <tr><td><b>Prev</b> <td> [\ref XBT_fifo_cons]
- * <tr><td><b>Next</b> <td> [\ref XBT_fifo_direct] </table></center>
* @{
*/
xbt_fifo_item_t xbt_fifo_push(xbt_fifo_t, void *);
/** @defgroup XBT_fifo_direct Direct access to fifo elements
* @ingroup XBT_fifo
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_fifo]
- * <tr><td><b>Prev</b> <td> [\ref XBT_fifo_perl]
- * <tr><td><b>Next</b> <td> [\ref XBT_fifo_misc] </table></center>
- *
* @{
*/
/** @defgroup XBT_fifo_misc Misc fifo functions
* @ingroup XBT_fifo
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_fifo]
- * <tr><td><b>Prev</b> <td> [\ref XBT_fifo_direct]
- * <tr><td> Next <td> </table></center>
- *
* @{
*/
void **xbt_fifo_to_array(xbt_fifo_t);
/** @addtogroup XBT_heap
* @brief This section describes the API to generic heap with O(log(n)) access.
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_swag]
- * <tr><td> Next <td> </table></center>
* @{
*/
/* @brief heap datatype */
/** @addtogroup XBT_log
* @brief A generic logging facility in the spirit of log4j (grounding feature)
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_ex]
- * <tr><td><b>Next</b> <td> [\ref XBT_error]
- * <tr><td><b>Down</b> <td> [\ref XBT_log_cats] </table></center>
*
*/
* \ingroup XBT_log
* \brief (automatically extracted)
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_log] </table></center>
- *
* This is the list of all existing log categories in SimGrid.
* This list was automatically extracted from the source code by
* the src/xbt_log_extract_hierarchy utility.
/** @addtogroup XBT_set
* @brief A data container consisting in \ref XBT_dict and \ref XBT_dynar
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_dict]
- * <tr><td><b>Next</b> <td> [\ref XBT_fifo]
- * <tr><td><b>Down</b> <td> [\ref XBT_set_cons] </table></center>
- *
* The elements stored in such a data structure can be retrieve both by
* name and by ID. For this to work, the first fields of the structures
* stored must begin with:
/** @defgroup XBT_set_cons Set and set elements, constructor/destructor
* @ingroup XBT_set
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_set]
- * <tr><td> Prev <td>
- * <tr><td><b>Next</b> <td> [\ref XBT_set_basic] </table></center>
- *
* @{
*/
/** \brief Opaque type representing a set */
/** @defgroup XBT_set_basic Sets basic usage
* @ingroup XBT_set
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_set]
- * <tr><td><b>Prev</b> <td> [\ref XBT_set_cons]
- * <tr><td><b>Next</b> <td> [\ref XBT_set_curs] </table></center>
- *
* @{
*/
/** @defgroup XBT_set_curs Sets cursors
* @ingroup XBT_set
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_set]
- * <tr><td><b>Prev</b> <td> [\ref XBT_set_basic]
- * <tr><td> Next <td> </table></center>
- *
* \warning Don't add or remove entries to the cache while traversing
*
* @{
* @addtogroup XBT_swag
* @brief a O(1) set based on linked lists
*
- * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
- * <tr><td><b>Prev</b> <td> [\ref XBT_fifo]
- * <tr><td><b>Next</b> <td> [\ref XBT_heap]
- * <tr><td><b>Down</b> <td> [\ref XBT_swag_type] </table></center>
- *
* Warning, this module is done to be efficient and performs tons of
* cast and dirty things. So make sure you know what you are doing while using it.
* It is basically a fifo but with restrictions so that
/** @defgroup XBT_swag_type Swag types
@ingroup XBT_swag
- <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_swag]
- <tr><td> Prev <td>
- <tr><td><b>Next</b> <td> [\ref XBT_swag_func] </table></center>
-
Specific set.
/** @defgroup XBT_swag_func SWAG functions
* @ingroup XBT_swag
- <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_swag]
- <tr><td><b>Prev</b> <td> [\ref XBT_swag_type]
- <tr><td><b>Next</b> <td> [\ref XBT_swag_curs] </table></center>
-
* @{
*/
* \defgroup XBT_swag_curs Swag cursor
* @ingroup XBT_swag
- <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_swag]
- <tr><td><b>Prev</b> <td> [\ref XBT_swag_func]
- <tr><td> Next <td> </table></center>
-
* Iterates over the whole swag.
*
* @{ */