FS2_Open
Open source remastering of the Freespace 2 engine
linklist.h File Reference

Go to the source code of this file.

Macros

#define list_init(head)
 
#define list_insert(head, elem)
 
#define list_insert_before(elem, new_elem)
 
#define list_append(head, elem)
 
#define list_merge(a, b)
 
#define list_remove(head, elem)
 
#define list_move_append(head, elem)
 
#define GET_FIRST(head)   ((head)->next)
 
#define GET_LAST(head)   ((head)->prev)
 
#define GET_NEXT(elem)   ((elem)->next)
 
#define GET_PREV(elem)   ((elem)->prev)
 
#define END_OF_LIST(head)   (head)
 
#define NOT_EMPTY(head)   ((head)->next != (head))
 
#define EMPTY(head)   ((head)->next == (head))
 

Macro Definition Documentation

#define EMPTY (   head)    ((head)->next == (head))

Definition at line 84 of file linklist.h.

#define END_OF_LIST (   head)    (head)

Definition at line 82 of file linklist.h.

#define GET_FIRST (   head)    ((head)->next)

Definition at line 78 of file linklist.h.

#define GET_LAST (   head)    ((head)->prev)

Definition at line 79 of file linklist.h.

#define GET_NEXT (   elem)    ((elem)->next)

Definition at line 80 of file linklist.h.

#define GET_PREV (   elem)    ((elem)->prev)

Definition at line 81 of file linklist.h.

#define list_append (   head,
  elem 
)
Value:
do { \
(elem)->prev = (head)->prev; \
(elem)->next = (head); \
(head)->prev->next = (elem); \
(head)->prev = (elem); \
} while (0)

Definition at line 41 of file linklist.h.

#define list_init (   head)
Value:
do { \
(head)->next = (head); \
(head)->prev = (head); \
} while (0)

Definition at line 16 of file linklist.h.

#define list_insert (   head,
  elem 
)
Value:
do { \
(elem)->next = (head)->next; \
(head)->next->prev = (elem); \
(head)->next = (elem); \
(elem)->prev = (head); \
} while (0)

Definition at line 23 of file linklist.h.

#define list_insert_before (   elem,
  new_elem 
)
Value:
do { \
(elem)->prev->next = (new_elem); \
(new_elem)->prev = (elem)->prev; \
(elem)->prev = (new_elem); \
(new_elem)->next = (elem); \
} while (0)

Definition at line 32 of file linklist.h.

#define list_merge (   a,
  b 
)
Value:
do { \
(a)->prev->next = (b)->next; \
(b)->next->prev = (a)->prev; \
(a)->prev = (b)->prev; \
(b)->prev->next = (a); \
} while (0)
GLboolean GLboolean GLboolean GLboolean a
Definition: Glext.h:5781
GLboolean GLboolean GLboolean b
Definition: Glext.h:5781

Definition at line 50 of file linklist.h.

#define list_move_append (   head,
  elem 
)
Value:
do { \
(elem)->prev->next = (elem)->next; \
(elem)->next->prev = (elem)->prev; \
(elem)->prev = (head)->prev; \
(elem)->next = (head); \
(head)->prev->next = (elem); \
(head)->prev = (elem); \
} while (0)

Definition at line 68 of file linklist.h.

#define list_remove (   head,
  elem 
)
Value:
do { \
(elem)->prev->next = (elem)->next; \
(elem)->next->prev = (elem)->prev; \
(elem)->next = NULL; \
(elem)->prev = NULL; \
} while(0)

Definition at line 59 of file linklist.h.

#define NOT_EMPTY (   head)    ((head)->next != (head))

Definition at line 83 of file linklist.h.