queue.3: Comment out text for functions not in glibc

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2015-02-07 08:05:23 +01:00
parent c0f21a05f0
commit 6559169cac
1 changed files with 314 additions and 314 deletions

View File

@ -36,46 +36,46 @@
.Nm SLIST_ENTRY , .Nm SLIST_ENTRY ,
.Nm SLIST_FIRST , .Nm SLIST_FIRST ,
.Nm SLIST_FOREACH , .Nm SLIST_FOREACH ,
.Nm SLIST_FOREACH_FROM , .\" .Nm SLIST_FOREACH_FROM ,
.Nm SLIST_FOREACH_SAFE , .\" .Nm SLIST_FOREACH_SAFE ,
.Nm SLIST_FOREACH_FROM_SAFE , .\" .Nm SLIST_FOREACH_FROM_SAFE ,
.Nm SLIST_HEAD , .Nm SLIST_HEAD ,
.Nm SLIST_HEAD_INITIALIZER , .Nm SLIST_HEAD_INITIALIZER ,
.Nm SLIST_INIT , .Nm SLIST_INIT ,
.Nm SLIST_INSERT_AFTER , .Nm SLIST_INSERT_AFTER ,
.Nm SLIST_INSERT_HEAD , .Nm SLIST_INSERT_HEAD ,
.Nm SLIST_NEXT , .Nm SLIST_NEXT ,
.Nm SLIST_REMOVE_AFTER , .\" .Nm SLIST_REMOVE_AFTER ,
.Nm SLIST_REMOVE_HEAD , .Nm SLIST_REMOVE_HEAD ,
.Nm SLIST_REMOVE , .Nm SLIST_REMOVE ,
.Nm SLIST_SWAP , .\" .Nm SLIST_SWAP ,
.Nm STAILQ_CONCAT , .Nm STAILQ_CONCAT ,
.Nm STAILQ_EMPTY , .Nm STAILQ_EMPTY ,
.Nm STAILQ_ENTRY , .Nm STAILQ_ENTRY ,
.Nm STAILQ_FIRST , .Nm STAILQ_FIRST ,
.Nm STAILQ_FOREACH , .Nm STAILQ_FOREACH ,
.Nm STAILQ_FOREACH_FROM , .\" .Nm STAILQ_FOREACH_FROM ,
.Nm STAILQ_FOREACH_SAFE , .\" .Nm STAILQ_FOREACH_SAFE ,
.Nm STAILQ_FOREACH_FROM_SAFE , .\" .Nm STAILQ_FOREACH_FROM_SAFE ,
.Nm STAILQ_HEAD , .Nm STAILQ_HEAD ,
.Nm STAILQ_HEAD_INITIALIZER , .Nm STAILQ_HEAD_INITIALIZER ,
.Nm STAILQ_INIT , .Nm STAILQ_INIT ,
.Nm STAILQ_INSERT_AFTER , .Nm STAILQ_INSERT_AFTER ,
.Nm STAILQ_INSERT_HEAD , .Nm STAILQ_INSERT_HEAD ,
.Nm STAILQ_INSERT_TAIL , .Nm STAILQ_INSERT_TAIL ,
.Nm STAILQ_LAST , .\" .Nm STAILQ_LAST ,
.Nm STAILQ_NEXT , .Nm STAILQ_NEXT ,
.Nm STAILQ_REMOVE_AFTER , .\" .Nm STAILQ_REMOVE_AFTER ,
.Nm STAILQ_REMOVE_HEAD , .Nm STAILQ_REMOVE_HEAD ,
.Nm STAILQ_REMOVE , .Nm STAILQ_REMOVE ,
.Nm STAILQ_SWAP , .\" .Nm STAILQ_SWAP ,
.Nm LIST_EMPTY , .Nm LIST_EMPTY ,
.Nm LIST_ENTRY , .Nm LIST_ENTRY ,
.Nm LIST_FIRST , .Nm LIST_FIRST ,
.Nm LIST_FOREACH , .Nm LIST_FOREACH ,
.Nm LIST_FOREACH_FROM , .\" .Nm LIST_FOREACH_FROM ,
.Nm LIST_FOREACH_SAFE , .\" .Nm LIST_FOREACH_SAFE ,
.Nm LIST_FOREACH_FROM_SAFE , .\" .Nm LIST_FOREACH_FROM_SAFE ,
.Nm LIST_HEAD , .Nm LIST_HEAD ,
.Nm LIST_HEAD_INITIALIZER , .Nm LIST_HEAD_INITIALIZER ,
.Nm LIST_INIT , .Nm LIST_INIT ,
@ -83,21 +83,21 @@
.Nm LIST_INSERT_BEFORE , .Nm LIST_INSERT_BEFORE ,
.Nm LIST_INSERT_HEAD , .Nm LIST_INSERT_HEAD ,
.Nm LIST_NEXT , .Nm LIST_NEXT ,
.Nm LIST_PREV , .\" .Nm LIST_PREV ,
.Nm LIST_REMOVE , .Nm LIST_REMOVE ,
.Nm LIST_SWAP , .\" .Nm LIST_SWAP ,
.Nm TAILQ_CONCAT , .Nm TAILQ_CONCAT ,
.Nm TAILQ_EMPTY , .Nm TAILQ_EMPTY ,
.Nm TAILQ_ENTRY , .Nm TAILQ_ENTRY ,
.Nm TAILQ_FIRST , .Nm TAILQ_FIRST ,
.Nm TAILQ_FOREACH , .Nm TAILQ_FOREACH ,
.Nm TAILQ_FOREACH_FROM , .\" .Nm TAILQ_FOREACH_FROM ,
.Nm TAILQ_FOREACH_SAFE , .\" .Nm TAILQ_FOREACH_SAFE ,
.Nm TAILQ_FOREACH_FROM_SAFE , .\" .Nm TAILQ_FOREACH_FROM_SAFE ,
.Nm TAILQ_FOREACH_REVERSE , .Nm TAILQ_FOREACH_REVERSE ,
.Nm TAILQ_FOREACH_REVERSE_FROM , .\" .Nm TAILQ_FOREACH_REVERSE_FROM ,
.Nm TAILQ_FOREACH_REVERSE_SAFE , .\" .Nm TAILQ_FOREACH_REVERSE_SAFE ,
.Nm TAILQ_FOREACH_REVERSE_FROM_SAFE , .\" .Nm TAILQ_FOREACH_REVERSE_FROM_SAFE ,
.Nm TAILQ_HEAD , .Nm TAILQ_HEAD ,
.Nm TAILQ_HEAD_INITIALIZER , .Nm TAILQ_HEAD_INITIALIZER ,
.Nm TAILQ_INIT , .Nm TAILQ_INIT ,
@ -119,48 +119,48 @@ lists and tail queues
.Fn SLIST_ENTRY "TYPE" .Fn SLIST_ENTRY "TYPE"
.Fn SLIST_FIRST "SLIST_HEAD *head" .Fn SLIST_FIRST "SLIST_HEAD *head"
.Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" .Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
.Fn SLIST_FOREACH_FROM "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" .\" .Fn SLIST_FOREACH_FROM "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
.Fn SLIST_FOREACH_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var" .\" .Fn SLIST_FOREACH_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var"
.Fn SLIST_FOREACH_FROM_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var" .\" .Fn SLIST_FOREACH_FROM_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var"
.Fn SLIST_HEAD "HEADNAME" "TYPE" .Fn SLIST_HEAD "HEADNAME" "TYPE"
.Fn SLIST_HEAD_INITIALIZER "SLIST_HEAD head" .Fn SLIST_HEAD_INITIALIZER "SLIST_HEAD head"
.Fn SLIST_INIT "SLIST_HEAD *head" .Fn SLIST_INIT "SLIST_HEAD *head"
.Fn SLIST_INSERT_AFTER "TYPE *listelm" "TYPE *elm" "SLIST_ENTRY NAME" .Fn SLIST_INSERT_AFTER "TYPE *listelm" "TYPE *elm" "SLIST_ENTRY NAME"
.Fn SLIST_INSERT_HEAD "SLIST_HEAD *head" "TYPE *elm" "SLIST_ENTRY NAME" .Fn SLIST_INSERT_HEAD "SLIST_HEAD *head" "TYPE *elm" "SLIST_ENTRY NAME"
.Fn SLIST_NEXT "TYPE *elm" "SLIST_ENTRY NAME" .Fn SLIST_NEXT "TYPE *elm" "SLIST_ENTRY NAME"
.Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME" .\" .Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME"
.Fn SLIST_REMOVE_HEAD "SLIST_HEAD *head" "SLIST_ENTRY NAME" .Fn SLIST_REMOVE_HEAD "SLIST_HEAD *head" "SLIST_ENTRY NAME"
.Fn SLIST_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "SLIST_ENTRY NAME" .Fn SLIST_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "SLIST_ENTRY NAME"
.Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "SLIST_ENTRY NAME" .\" .Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "SLIST_ENTRY NAME"
.\" .\"
.Fn STAILQ_CONCAT "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" .Fn STAILQ_CONCAT "STAILQ_HEAD *head1" "STAILQ_HEAD *head2"
.Fn STAILQ_EMPTY "STAILQ_HEAD *head" .Fn STAILQ_EMPTY "STAILQ_HEAD *head"
.Fn STAILQ_ENTRY "TYPE" .Fn STAILQ_ENTRY "TYPE"
.Fn STAILQ_FIRST "STAILQ_HEAD *head" .Fn STAILQ_FIRST "STAILQ_HEAD *head"
.Fn STAILQ_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" .Fn STAILQ_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
.Fn STAILQ_FOREACH_FROM "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" .\" .Fn STAILQ_FOREACH_FROM "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
.Fn STAILQ_FOREACH_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var" .\" .Fn STAILQ_FOREACH_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn STAILQ_FOREACH_FROM_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var" .\" .Fn STAILQ_FOREACH_FROM_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn STAILQ_HEAD "HEADNAME" "TYPE" .Fn STAILQ_HEAD "HEADNAME" "TYPE"
.Fn STAILQ_HEAD_INITIALIZER "STAILQ_HEAD head" .Fn STAILQ_HEAD_INITIALIZER "STAILQ_HEAD head"
.Fn STAILQ_INIT "STAILQ_HEAD *head" .Fn STAILQ_INIT "STAILQ_HEAD *head"
.Fn STAILQ_INSERT_AFTER "STAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "STAILQ_ENTRY NAME" .Fn STAILQ_INSERT_AFTER "STAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "STAILQ_ENTRY NAME"
.Fn STAILQ_INSERT_HEAD "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME" .Fn STAILQ_INSERT_HEAD "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
.Fn STAILQ_INSERT_TAIL "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME" .Fn STAILQ_INSERT_TAIL "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
.Fn STAILQ_LAST "STAILQ_HEAD *head" "TYPE" "STAILQ_ENTRY NAME" .\" .Fn STAILQ_LAST "STAILQ_HEAD *head" "TYPE" "STAILQ_ENTRY NAME"
.Fn STAILQ_NEXT "TYPE *elm" "STAILQ_ENTRY NAME" .Fn STAILQ_NEXT "TYPE *elm" "STAILQ_ENTRY NAME"
.Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME" .\" .Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
.Fn STAILQ_REMOVE_HEAD "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" .Fn STAILQ_REMOVE_HEAD "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
.Fn STAILQ_REMOVE "STAILQ_HEAD *head" "TYPE *elm" "TYPE" "STAILQ_ENTRY NAME" .Fn STAILQ_REMOVE "STAILQ_HEAD *head" "TYPE *elm" "TYPE" "STAILQ_ENTRY NAME"
.Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "STAILQ_ENTRY NAME" .\" .Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "STAILQ_ENTRY NAME"
.\" .\"
.Fn LIST_EMPTY "LIST_HEAD *head" .Fn LIST_EMPTY "LIST_HEAD *head"
.Fn LIST_ENTRY "TYPE" .Fn LIST_ENTRY "TYPE"
.Fn LIST_FIRST "LIST_HEAD *head" .Fn LIST_FIRST "LIST_HEAD *head"
.Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" .Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
.Fn LIST_FOREACH_FROM "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" .\" .Fn LIST_FOREACH_FROM "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
.Fn LIST_FOREACH_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var" .\" .Fn LIST_FOREACH_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var"
.Fn LIST_FOREACH_FROM_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var" .\" .Fn LIST_FOREACH_FROM_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var"
.Fn LIST_HEAD "HEADNAME" "TYPE" .Fn LIST_HEAD "HEADNAME" "TYPE"
.Fn LIST_HEAD_INITIALIZER "LIST_HEAD head" .Fn LIST_HEAD_INITIALIZER "LIST_HEAD head"
.Fn LIST_INIT "LIST_HEAD *head" .Fn LIST_INIT "LIST_HEAD *head"
@ -168,7 +168,7 @@ lists and tail queues
.Fn LIST_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "LIST_ENTRY NAME"
.Fn LIST_INSERT_HEAD "LIST_HEAD *head" "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_INSERT_HEAD "LIST_HEAD *head" "TYPE *elm" "LIST_ENTRY NAME"
.Fn LIST_NEXT "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_NEXT "TYPE *elm" "LIST_ENTRY NAME"
.Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME" .\" .Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME"
.Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME"
.Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME" .Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME"
.\" .\"
@ -177,13 +177,13 @@ lists and tail queues
.Fn TAILQ_ENTRY "TYPE" .Fn TAILQ_ENTRY "TYPE"
.Fn TAILQ_FIRST "TAILQ_HEAD *head" .Fn TAILQ_FIRST "TAILQ_HEAD *head"
.Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" .Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_FROM "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" .\" .Fn TAILQ_FOREACH_FROM "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var" .\" .Fn TAILQ_FOREACH_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn TAILQ_FOREACH_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var" .\" .Fn TAILQ_FOREACH_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn TAILQ_FOREACH_REVERSE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" .Fn TAILQ_FOREACH_REVERSE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_REVERSE_FROM "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" .\" .Fn TAILQ_FOREACH_REVERSE_FROM "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_REVERSE_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var" .\" .Fn TAILQ_FOREACH_REVERSE_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn TAILQ_FOREACH_REVERSE_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var" .\" .Fn TAILQ_FOREACH_REVERSE_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn TAILQ_HEAD "HEADNAME" "TYPE" .Fn TAILQ_HEAD "HEADNAME" "TYPE"
.Fn TAILQ_HEAD_INITIALIZER "TAILQ_HEAD head" .Fn TAILQ_HEAD_INITIALIZER "TAILQ_HEAD head"
.Fn TAILQ_INIT "TAILQ_HEAD *head" .Fn TAILQ_INIT "TAILQ_HEAD *head"
@ -379,46 +379,46 @@ traverses the list referenced by
in the forward direction, assigning each element in in the forward direction, assigning each element in
turn to turn to
.Fa var . .Fa var .
.Pp .\" .Pp
The macro .\" The macro
.Nm SLIST_FOREACH_FROM .\" .Nm SLIST_FOREACH_FROM
behaves identically to .\" behaves identically to
.Nm SLIST_FOREACH .\" .Nm SLIST_FOREACH
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found SLIST element and begins the loop at .\" as a previously found SLIST element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the SLIST referenced by .\" instead of the first element in the SLIST referenced by
.Fa head . .\" .Fa head .
.Pp .\" .Pp
The macro .\" The macro
.Nm SLIST_FOREACH_SAFE .\" .Nm SLIST_FOREACH_SAFE
traverses the list referenced by .\" traverses the list referenced by
.Fa head .\" .Fa head
in the forward direction, assigning each element in .\" in the forward direction, assigning each element in
turn to .\" turn to
.Fa var . .\" .Fa var .
However, unlike .\" However, unlike
.Fn SLIST_FOREACH .\" .Fn SLIST_FOREACH
here it is permitted to both remove .\" here it is permitted to both remove
.Fa var .\" .Fa var
as well as free it from within the loop safely without interfering with the .\" as well as free it from within the loop safely without interfering with the
traversal. .\" traversal.
.Pp .\" .Pp
The macro .\" The macro
.Nm SLIST_FOREACH_FROM_SAFE .\" .Nm SLIST_FOREACH_FROM_SAFE
behaves identically to .\" behaves identically to
.Nm SLIST_FOREACH_SAFE .\" .Nm SLIST_FOREACH_SAFE
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found SLIST element and begins the loop at .\" as a previously found SLIST element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the SLIST referenced by .\" instead of the first element in the SLIST referenced by
.Fa head . .\" .Fa head .
.Pp .Pp
The macro The macro
.Nm SLIST_INIT .Nm SLIST_INIT
@ -441,15 +441,15 @@ after the element
The macro The macro
.Nm SLIST_NEXT .Nm SLIST_NEXT
returns the next element in the list. returns the next element in the list.
.Pp .\" .Pp
The macro .\" The macro
.Nm SLIST_REMOVE_AFTER .\" .Nm SLIST_REMOVE_AFTER
removes the element after .\" removes the element after
.Fa elm .\" .Fa elm
from the list. .\" from the list.
Unlike .\" Unlike
.Fa SLIST_REMOVE , .\" .Fa SLIST_REMOVE ,
this macro does not traverse the entire list. .\" this macro does not traverse the entire list.
.Pp .Pp
The macro The macro
.Nm SLIST_REMOVE_HEAD .Nm SLIST_REMOVE_HEAD
@ -467,13 +467,13 @@ The macro
removes the element removes the element
.Fa elm .Fa elm
from the list. from the list.
.Pp .\" .Pp
The macro .\" The macro
.Nm SLIST_SWAP .\" .Nm SLIST_SWAP
swaps the contents of .\" swaps the contents of
.Fa head1 .\" .Fa head1
and .\" and
.Fa head2 . .\" .Fa head2 .
.Sh SINGLY-LINKED LIST EXAMPLE .Sh SINGLY-LINKED LIST EXAMPLE
.Bd -literal .Bd -literal
SLIST_HEAD(slisthead, entry) head = SLIST_HEAD(slisthead, entry) head =
@ -502,13 +502,13 @@ free(n3);
/* Forward traversal. */ /* Forward traversal. */
SLIST_FOREACH(np, &head, entries) SLIST_FOREACH(np, &head, entries)
np-> ... np-> ...
/* Safe forward traversal. */ .\" /* Safe forward traversal. */
SLIST_FOREACH_SAFE(np, &head, entries, np_temp) { .\"SLIST_FOREACH_SAFE(np, &head, entries, np_temp) {
np->do_stuff(); .\" np->do_stuff();
... .\" ...
SLIST_REMOVE(&head, np, entry, entries); .\" SLIST_REMOVE(&head, np, entry, entries);
free(np); .\" free(np);
} .\"}
while (!SLIST_EMPTY(&head)) { /* List Deletion. */ while (!SLIST_EMPTY(&head)) { /* List Deletion. */
n1 = SLIST_FIRST(&head); n1 = SLIST_FIRST(&head);
@ -585,46 +585,46 @@ traverses the tail queue referenced by
in the forward direction, assigning each element in the forward direction, assigning each element
in turn to in turn to
.Fa var . .Fa var .
.Pp .\" .Pp
The macro .\" The macro
.Nm STAILQ_FOREACH_FROM .\" .Nm STAILQ_FOREACH_FROM
behaves identically to .\" behaves identically to
.Nm STAILQ_FOREACH .\" .Nm STAILQ_FOREACH
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found STAILQ element and begins the loop at .\" as a previously found STAILQ element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the STAILQ referenced by .\" instead of the first element in the STAILQ referenced by
.Fa head . .\" .Fa head .
.Pp .\" .Pp
The macro .\" The macro
.Nm STAILQ_FOREACH_SAFE .\" .Nm STAILQ_FOREACH_SAFE
traverses the tail queue referenced by .\" traverses the tail queue referenced by
.Fa head .\" .Fa head
in the forward direction, assigning each element .\" in the forward direction, assigning each element
in turn to .\" in turn to
.Fa var . .\" .Fa var .
However, unlike .\" However, unlike
.Fn STAILQ_FOREACH .\" .Fn STAILQ_FOREACH
here it is permitted to both remove .\" here it is permitted to both remove
.Fa var .\" .Fa var
as well as free it from within the loop safely without interfering with the .\" as well as free it from within the loop safely without interfering with the
traversal. .\" traversal.
.Pp .\" .Pp
The macro .\" The macro
.Nm STAILQ_FOREACH_FROM_SAFE .\" .Nm STAILQ_FOREACH_FROM_SAFE
behaves identically to .\" behaves identically to
.Nm STAILQ_FOREACH_SAFE .\" .Nm STAILQ_FOREACH_SAFE
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found STAILQ element and begins the loop at .\" as a previously found STAILQ element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the STAILQ referenced by .\" instead of the first element in the STAILQ referenced by
.Fa head . .\" .Fa head .
.Pp .Pp
The macro The macro
.Nm STAILQ_INIT .Nm STAILQ_INIT
@ -649,25 +649,25 @@ inserts the new element
.Fa elm .Fa elm
after the element after the element
.Fa listelm . .Fa listelm .
.Pp .\" .Pp
The macro .\" The macro
.Nm STAILQ_LAST .\" .Nm STAILQ_LAST
returns the last item on the tail queue. .\" returns the last item on the tail queue.
If the tail queue is empty the return value is .\" If the tail queue is empty the return value is
.Dv NULL . .\" .Dv NULL .
.Pp .Pp
The macro The macro
.Nm STAILQ_NEXT .Nm STAILQ_NEXT
returns the next item on the tail queue, or NULL this item is the last. returns the next item on the tail queue, or NULL this item is the last.
.Pp .\" .Pp
The macro .\" The macro
.Nm STAILQ_REMOVE_AFTER .\" .Nm STAILQ_REMOVE_AFTER
removes the element after .\" removes the element after
.Fa elm .\" .Fa elm
from the tail queue. .\" from the tail queue.
Unlike .\" Unlike
.Fa STAILQ_REMOVE , .\" .Fa STAILQ_REMOVE ,
this macro does not traverse the entire tail queue. .\" this macro does not traverse the entire tail queue.
.Pp .Pp
The macro The macro
.Nm STAILQ_REMOVE_HEAD .Nm STAILQ_REMOVE_HEAD
@ -683,13 +683,13 @@ The macro
removes the element removes the element
.Fa elm .Fa elm
from the tail queue. from the tail queue.
.Pp .\" .Pp
The macro .\" The macro
.Nm STAILQ_SWAP .\" .Nm STAILQ_SWAP
swaps the contents of .\" swaps the contents of
.Fa head1 .\" .Fa head1
and .\" and
.Fa head2 . .\" .Fa head2 .
.Sh SINGLY-LINKED TAIL QUEUE EXAMPLE .Sh SINGLY-LINKED TAIL QUEUE EXAMPLE
.Bd -literal .Bd -literal
STAILQ_HEAD(stailhead, entry) head = STAILQ_HEAD(stailhead, entry) head =
@ -721,13 +721,13 @@ free(n3);
/* Forward traversal. */ /* Forward traversal. */
STAILQ_FOREACH(np, &head, entries) STAILQ_FOREACH(np, &head, entries)
np-> ... np-> ...
/* Safe forward traversal. */ .\" /* Safe forward traversal. */
STAILQ_FOREACH_SAFE(np, &head, entries, np_temp) { .\"STAILQ_FOREACH_SAFE(np, &head, entries, np_temp) {
np->do_stuff(); .\" np->do_stuff();
... .\" ...
STAILQ_REMOVE(&head, np, entry, entries); .\" STAILQ_REMOVE(&head, np, entry, entries);
free(np); .\" free(np);
} .\"}
/* TailQ Deletion. */ /* TailQ Deletion. */
while (!STAILQ_EMPTY(&head)) { while (!STAILQ_EMPTY(&head)) {
n1 = STAILQ_FIRST(&head); n1 = STAILQ_FIRST(&head);
@ -801,45 +801,45 @@ traverses the list referenced by
.Fa head .Fa head
in the forward direction, assigning each element in turn to in the forward direction, assigning each element in turn to
.Fa var . .Fa var .
.Pp .\" .Pp
The macro .\" The macro
.Nm LIST_FOREACH_FROM .\" .Nm LIST_FOREACH_FROM
behaves identically to .\" behaves identically to
.Nm LIST_FOREACH .\" .Nm LIST_FOREACH
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found LIST element and begins the loop at .\" as a previously found LIST element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the LIST referenced by .\" instead of the first element in the LIST referenced by
.Fa head . .\" .Fa head .
.Pp .\" .Pp
The macro .\" The macro
.Nm LIST_FOREACH_SAFE .\" .Nm LIST_FOREACH_SAFE
traverses the list referenced by .\" traverses the list referenced by
.Fa head .\" .Fa head
in the forward direction, assigning each element in turn to .\" in the forward direction, assigning each element in turn to
.Fa var . .\" .Fa var .
However, unlike .\" However, unlike
.Fn LIST_FOREACH .\" .Fn LIST_FOREACH
here it is permitted to both remove .\" here it is permitted to both remove
.Fa var .\" .Fa var
as well as free it from within the loop safely without interfering with the .\" as well as free it from within the loop safely without interfering with the
traversal. .\" traversal.
.Pp .\" .Pp
The macro .\" The macro
.Nm LIST_FOREACH_FROM_SAFE .\" .Nm LIST_FOREACH_FROM_SAFE
behaves identically to .\" behaves identically to
.Nm LIST_FOREACH_SAFE .\" .Nm LIST_FOREACH_SAFE
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found LIST element and begins the loop at .\" as a previously found LIST element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the LIST referenced by .\" instead of the first element in the LIST referenced by
.Fa head . .\" .Fa head .
.Pp .Pp
The macro The macro
.Nm LIST_INIT .Nm LIST_INIT
@ -869,27 +869,27 @@ before the element
The macro The macro
.Nm LIST_NEXT .Nm LIST_NEXT
returns the next element in the list, or NULL if this is the last. returns the next element in the list, or NULL if this is the last.
.Pp .\" .Pp
The macro .\" The macro
.Nm LIST_PREV .\" .Nm LIST_PREV
returns the previous element in the list, or NULL if this is the first. .\" returns the previous element in the list, or NULL if this is the first.
List .\" List
.Fa head .\" .Fa head
must contain element .\" must contain element
.Fa elm . .\" .Fa elm .
.Pp .Pp
The macro The macro
.Nm LIST_REMOVE .Nm LIST_REMOVE
removes the element removes the element
.Fa elm .Fa elm
from the list. from the list.
.Pp .\" .Pp
The macro .\" The macro
.Nm LIST_SWAP .\" .Nm LIST_SWAP
swaps the contents of .\" swaps the contents of
.Fa head1 .\" .Fa head1
and .\" and
.Fa head2 . .\" .Fa head2 .
.Sh LIST EXAMPLE .Sh LIST EXAMPLE
.Bd -literal .Bd -literal
LIST_HEAD(listhead, entry) head = LIST_HEAD(listhead, entry) head =
@ -918,14 +918,14 @@ free(n2);
LIST_FOREACH(np, &head, entries) LIST_FOREACH(np, &head, entries)
np-> ... np-> ...
/* Safe forward traversal. */ .\" /* Safe forward traversal. */
LIST_FOREACH_SAFE(np, &head, entries, np_temp) { .\" LIST_FOREACH_SAFE(np, &head, entries, np_temp) {
np->do_stuff(); .\" np->do_stuff();
... .\" ...
LIST_REMOVE(np, entries); .\" LIST_REMOVE(np, entries);
free(np); .\" free(np);
} .\" }
.\"
while (!LIST_EMPTY(&head)) { /* List Deletion. */ while (!LIST_EMPTY(&head)) { /* List Deletion. */
n1 = LIST_FIRST(&head); n1 = LIST_FIRST(&head);
LIST_REMOVE(n1, entries); LIST_REMOVE(n1, entries);
@ -1012,19 +1012,19 @@ in the forward direction, assigning each element in turn to
is set to is set to
.Dv NULL .Dv NULL
if the loop completes normally, or if there were no elements. if the loop completes normally, or if there were no elements.
.Pp .\" .Pp
The macro .\" The macro
.Nm TAILQ_FOREACH_FROM .\" .Nm TAILQ_FOREACH_FROM
behaves identically to .\" behaves identically to
.Nm TAILQ_FOREACH .\" .Nm TAILQ_FOREACH
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found TAILQ element and begins the loop at .\" as a previously found TAILQ element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the TAILQ referenced by .\" instead of the first element in the TAILQ referenced by
.Fa head . .\" .Fa head .
.Pp .Pp
The macro The macro
.Nm TAILQ_FOREACH_REVERSE .Nm TAILQ_FOREACH_REVERSE
@ -1032,63 +1032,63 @@ traverses the tail queue referenced by
.Fa head .Fa head
in the reverse direction, assigning each element in turn to in the reverse direction, assigning each element in turn to
.Fa var . .Fa var .
.Pp .\" .Pp
The macro .\" The macro
.Nm TAILQ_FOREACH_REVERSE_FROM .\" .Nm TAILQ_FOREACH_REVERSE_FROM
behaves identically to .\" behaves identically to
.Nm TAILQ_FOREACH_REVERSE .\" .Nm TAILQ_FOREACH_REVERSE
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found TAILQ element and begins the reverse loop at .\" as a previously found TAILQ element and begins the reverse loop at
.Fa var .\" .Fa var
instead of the last element in the TAILQ referenced by .\" instead of the last element in the TAILQ referenced by
.Fa head . .\" .Fa head .
.Pp .\" .Pp
The macros .\" The macros
.Nm TAILQ_FOREACH_SAFE .\" .Nm TAILQ_FOREACH_SAFE
and .\" and
.Nm TAILQ_FOREACH_REVERSE_SAFE .\" .Nm TAILQ_FOREACH_REVERSE_SAFE
traverse the list referenced by .\" traverse the list referenced by
.Fa head .\" .Fa head
in the forward or reverse direction respectively, .\" in the forward or reverse direction respectively,
assigning each element in turn to .\" assigning each element in turn to
.Fa var . .\" .Fa var .
However, unlike their unsafe counterparts, .\" However, unlike their unsafe counterparts,
.Nm TAILQ_FOREACH .\" .Nm TAILQ_FOREACH
and .\" and
.Nm TAILQ_FOREACH_REVERSE .\" .Nm TAILQ_FOREACH_REVERSE
permit to both remove .\" permit to both remove
.Fa var .\" .Fa var
as well as free it from within the loop safely without interfering with the .\" as well as free it from within the loop safely without interfering with the
traversal. .\" traversal.
.Pp .\" .Pp
The macro .\" The macro
.Nm TAILQ_FOREACH_FROM_SAFE .\" .Nm TAILQ_FOREACH_FROM_SAFE
behaves identically to .\" behaves identically to
.Nm TAILQ_FOREACH_SAFE .\" .Nm TAILQ_FOREACH_SAFE
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found TAILQ element and begins the loop at .\" as a previously found TAILQ element and begins the loop at
.Fa var .\" .Fa var
instead of the first element in the TAILQ referenced by .\" instead of the first element in the TAILQ referenced by
.Fa head . .\" .Fa head .
.Pp .\" .Pp
The macro .\" The macro
.Nm TAILQ_FOREACH_REVERSE_FROM_SAFE .\" .Nm TAILQ_FOREACH_REVERSE_FROM_SAFE
behaves identically to .\" behaves identically to
.Nm TAILQ_FOREACH_REVERSE_SAFE .\" .Nm TAILQ_FOREACH_REVERSE_SAFE
when .\" when
.Fa var .\" .Fa var
is NULL, else it treats .\" is NULL, else it treats
.Fa var .\" .Fa var
as a previously found TAILQ element and begins the reverse loop at .\" as a previously found TAILQ element and begins the reverse loop at
.Fa var .\" .Fa var
instead of the last element in the TAILQ referenced by .\" instead of the last element in the TAILQ referenced by
.Fa head . .\" .Fa head .
.Pp .Pp
The macro The macro
.Nm TAILQ_INIT .Nm TAILQ_INIT
@ -1178,13 +1178,13 @@ free(n2);
/* Forward traversal. */ /* Forward traversal. */
TAILQ_FOREACH(np, &head, entries) TAILQ_FOREACH(np, &head, entries)
np-> ... np-> ...
/* Safe forward traversal. */ .\" /* Safe forward traversal. */
TAILQ_FOREACH_SAFE(np, &head, entries, np_temp) { .\" TAILQ_FOREACH_SAFE(np, &head, entries, np_temp) {
np->do_stuff(); .\" np->do_stuff();
... .\" ...
TAILQ_REMOVE(&head, np, entries); .\" TAILQ_REMOVE(&head, np, entries);
free(np); .\" free(np);
} .\" }
/* Reverse traversal. */ /* Reverse traversal. */
TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries) TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)
np-> ... np-> ...