SimGrid  3.16
Versatile Simulation of Distributed Systems
swag.h File Reference
#include "xbt/misc.h"
#include "xbt/sysdep.h"

Classes

struct  xbt_swag_hookup
 
struct  xbt_swag
 

Macros

#define xbt_swag_reset(swag)
 Makes a swag empty. More...
 
#define xbt_swag_insert(obj, swag)
 
#define xbt_swag_getPrev(obj, offset)   (((xbt_swag_hookup_t)(((char *) (obj)) + (offset)))->prev)
 
#define xbt_swag_getNext(obj, offset)   (((xbt_swag_hookup_t)(((char *) (obj)) + (offset)))->next)
 
#define xbt_swag_belongs(obj, swag)   (xbt_swag_getNext((obj), (swag)->offset) || (swag)->tail == (obj))
 
#define xbt_swag_offset(var, field)
 Offset computation. More...
 
#define xbt_swag_foreach(obj, swag)
 A simple swag iterator. More...
 
#define xbt_swag_foreach_safe(obj, obj_next, swag)
 A safe swag iterator. More...
 

Typedefs

typedef struct xbt_swag_hookup s_xbt_swag_hookup_t
 This type should be added to a type that is to be used in a swag. More...
 
typedef s_xbt_swag_hookup_txbt_swag_hookup_t
 
typedef struct xbt_swag s_xbt_swag_t
 
typedef struct xbt_swagxbt_swag_t
 A typical swag. More...
 

Functions

xbt_swag_t xbt_swag_new (size_t offset)
 Creates a new swag. More...
 
void xbt_swag_free (xbt_swag_t swag)
 
void xbt_swag_init (xbt_swag_t swag, size_t offset)
 Creates a new swag. More...
 
void xbt_swag_insert_at_head (void *obj, xbt_swag_t swag)
 
void xbt_swag_insert_at_tail (void *obj, xbt_swag_t swag)
 
voidxbt_swag_remove (void *obj, xbt_swag_t swag)
 
voidxbt_swag_extract (xbt_swag_t swag)
 
int xbt_swag_size (xbt_swag_t swag)
 
static voidxbt_swag_getFirst (xbt_swag_t swag)