#define _XBT_SWAG_H
#include "xbt/misc.h"
-#include "xbt/sysdep.h"
-
+#include "xbt/sysdep.h" /* sizeof */
/**
* @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>
-
* @{
*/
-xbt_swag_t xbt_swag_new(size_t offset);
-void xbt_swag_free(xbt_swag_t swag);
-void xbt_swag_init(xbt_swag_t swag, size_t offset);
-void xbt_swag_insert(void *obj, xbt_swag_t swag);
-void xbt_swag_insert_at_head(void *obj, xbt_swag_t swag);
-void xbt_swag_insert_at_tail(void *obj, xbt_swag_t swag);
-void *xbt_swag_remove(void *obj, xbt_swag_t swag);
-void *xbt_swag_extract(xbt_swag_t swag);
-int xbt_swag_size(xbt_swag_t swag);
-int xbt_swag_belongs(void *obj, xbt_swag_t swag);
-
-static _XBT_INLINE void *xbt_swag_getFirst(xbt_swag_t swag)
+XBT_PUBLIC(xbt_swag_t) xbt_swag_new(size_t offset);
+XBT_PUBLIC(void) xbt_swag_free(xbt_swag_t swag);
+XBT_PUBLIC(void) xbt_swag_init(xbt_swag_t swag, size_t offset);
+XBT_PUBLIC(void) xbt_swag_insert(void *obj, xbt_swag_t swag);
+XBT_PUBLIC(void) xbt_swag_insert_at_head(void *obj, xbt_swag_t swag);
+XBT_PUBLIC(void) xbt_swag_insert_at_tail(void *obj, xbt_swag_t swag);
+XBT_PUBLIC(void*) xbt_swag_remove(void *obj, xbt_swag_t swag);
+XBT_PUBLIC(void*)xbt_swag_extract(xbt_swag_t swag);
+XBT_PUBLIC(int) xbt_swag_size(xbt_swag_t swag);
+XBT_PUBLIC(int) xbt_swag_belongs(void *obj, xbt_swag_t swag);
+
+static XBT_INLINE void *xbt_swag_getFirst(xbt_swag_t swag)
{
return (swag->head);
}
* \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.
*
* @{ */