CIRCLEQ_NEXT
(var) = CIRCLEQ_NEXT((var), field))
CIRCLEQ_NEXT((elm), field) = CIRCLEQ_NEXT((listelm), field); \
if (CIRCLEQ_NEXT((listelm), field) == (void *)(head)) \
CIRCLEQ_PREV(CIRCLEQ_NEXT((listelm), field), field) = (elm);\
CIRCLEQ_NEXT((listelm), field) = (elm); \
CIRCLEQ_NEXT((elm), field) = (listelm); \
CIRCLEQ_NEXT(CIRCLEQ_PREV((listelm), field), field) = (elm);\
CIRCLEQ_NEXT((elm), field) = CIRCLEQ_FIRST((head)); \
CIRCLEQ_NEXT((elm), field) = (void *)(head); \
CIRCLEQ_NEXT(CIRCLEQ_LAST((head)), field) = (elm); \
if (CIRCLEQ_NEXT((elm), field) == (void *)(head)) \
CIRCLEQ_PREV(CIRCLEQ_NEXT((elm), field), field) = \
CIRCLEQ_FIRST((head)) = CIRCLEQ_NEXT((elm), field); \
CIRCLEQ_NEXT(CIRCLEQ_PREV((elm), field), field) = \
CIRCLEQ_NEXT((elm), field); \