LIST_END
while ((p = LIST_FIRST(&hp->head)) != LIST_END(&hp->head)) {
#define LIST_EMPTY(head) ((head)->lh_first == LIST_END(head))
(var) != LIST_END(head); \
for ((var) = ((var) != LIST_END(head) ? (var) : LIST_FIRST((head));\
(var) != LIST_END(head); \
(var) != LIST_END(head) && \
for ((var) = ((var) != LIST_END(head) ? (var) : LIST_FIRST((head));\
(var) != LIST_END(head) && \
LIST_FIRST((head)) = LIST_END(head); \