#include "xbt/log.h"
#include "xbt/swag.h"
-#define PREV(obj,offset) xbt_swag_getPrev(obj,offset)
-#define NEXT(obj,offset) xbt_swag_getNext(obj,offset)
-
/** Creates a new swag.
* \param offset where the hookup is located in the structure
return;
}
- PREV(obj, swag->offset) = swag->tail;
- NEXT(PREV(obj, swag->offset), swag->offset) = obj;
+ xbt_swag_getPrev(obj, swag->offset) = swag->tail;
+ xbt_swag_getNext(xbt_swag_getPrev(obj, swag->offset), swag->offset) = obj;
swag->tail = obj;
}
return;
}
- NEXT(obj, swag->offset) = swag->head;
- PREV(NEXT(obj, swag->offset), swag->offset) = obj;
+ xbt_swag_getNext(obj, swag->offset) = swag->head;
+ xbt_swag_getPrev(xbt_swag_getNext(obj, swag->offset), swag->offset) = obj;
swag->head = obj;
}
return;
}
- PREV(obj, swag->offset) = swag->tail;
- NEXT(PREV(obj, swag->offset), swag->offset) = obj;
+ xbt_swag_getPrev(obj, swag->offset) = swag->tail;
+ xbt_swag_getNext(xbt_swag_getPrev(obj, swag->offset), swag->offset) = obj;
swag->tail = obj;
}
return NULL;
swag->head = NULL;
swag->tail = NULL;
- NEXT(obj, offset) = PREV(obj, offset) = NULL;
+ xbt_swag_getNext(obj, offset) = xbt_swag_getPrev(obj, offset) = NULL;
} else if (obj == swag->head) { /* It's the head */
- swag->head = NEXT(obj, offset);
- PREV(swag->head, offset) = NULL;
- NEXT(obj, offset) = NULL;
+ swag->head = xbt_swag_getNext(obj, offset);
+ xbt_swag_getPrev(swag->head, offset) = NULL;
+ xbt_swag_getNext(obj, offset) = NULL;
} else if (obj == swag->tail) { /* It's the tail */
- swag->tail = PREV(obj, offset);
- NEXT(swag->tail, offset) = NULL;
- PREV(obj, offset) = NULL;
+ swag->tail = xbt_swag_getPrev(obj, offset);
+ xbt_swag_getNext(swag->tail, offset) = NULL;
+ xbt_swag_getPrev(obj, offset) = NULL;
} else { /* It's in the middle */
- NEXT(PREV(obj, offset), offset) = NEXT(obj, offset);
- PREV(NEXT(obj, offset), offset) = PREV(obj, offset);
- PREV(obj, offset) = NEXT(obj, offset) = NULL;
+ xbt_swag_getNext(xbt_swag_getPrev(obj, offset), offset) = xbt_swag_getNext(obj, offset);
+ xbt_swag_getPrev(xbt_swag_getNext(obj, offset), offset) = xbt_swag_getPrev(obj, offset);
+ xbt_swag_getPrev(obj, offset) = xbt_swag_getNext(obj, offset) = NULL;
}
(swag->count)--;
return obj;
if (swag->head == swag->tail) { /* special case */
swag->head = swag->tail = NULL;
- PREV(obj, offset) = NEXT(obj, offset) = NULL;
+ xbt_swag_getPrev(obj, offset) = xbt_swag_getNext(obj, offset) = NULL;
} else {
- swag->head = NEXT(obj, offset);
- PREV(swag->head, offset) = NULL;
- NEXT(obj, offset) = NULL;
+ swag->head = xbt_swag_getNext(obj, offset);
+ xbt_swag_getPrev(swag->head, offset) = NULL;
+ xbt_swag_getNext(obj, offset) = NULL;
}
(swag->count)--;
return (swag->count);
}
-/**
- * \param obj an object
- * \param swag a swag
- * \return 1 if \a obj is in the \a swag and 0 otherwise
- */
-int xbt_swag_belongs(void *obj, xbt_swag_t swag)
-{
- return ((NEXT(obj, swag->offset)) || (PREV(obj, swag->offset))
- || (swag->head == obj));
-}
-
#ifdef SIMGRID_TEST