Reorder macros within a queue type to match queue.h definition order.

Document STAILQ_* as compatibility macros for SIMPLEQ_*.
Document TAILQ_LAST and TAILQ_PREV.
This commit is contained in:
lukem 2004-04-18 23:39:13 +00:00
parent 5060b3b780
commit 2f6ed1a801
1 changed files with 86 additions and 28 deletions

View File

@ -1,4 +1,4 @@
.\" $NetBSD: queue.3,v 1.29 2004/04/13 20:40:26 wiz Exp $
.\" $NetBSD: queue.3,v 1.30 2004/04/18 23:39:13 lukem Exp $
.\"
.\" Copyright (c) 2000, 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
@ -60,38 +60,51 @@
.\"
.\" @(#)queue.3 8.1 (Berkeley) 12/13/93
.\"
.Dd April 13, 2004
.Dd April 18, 2004
.Dt QUEUE 3
.Os
.Sh NAME
.Nm SLIST_ENTRY ,
.Nm SLIST_HEAD ,
.Nm SLIST_HEAD_INITIALIZER ,
.Nm SLIST_ENTRY ,
.Nm SLIST_INIT ,
.Nm SLIST_INSERT_AFTER ,
.Nm SLIST_INSERT_HEAD ,
.Nm SLIST_REMOVE ,
.Nm SLIST_REMOVE_HEAD ,
.Nm SLIST_REMOVE ,
.Nm SLIST_FOREACH ,
.Nm SLIST_EMPTY ,
.Nm SLIST_FIRST ,
.Nm SLIST_NEXT ,
.Nm SIMPLEQ_ENTRY ,
.Nm SIMPLEQ_HEAD ,
.Nm SIMPLEQ_HEAD_INITIALIZER ,
.Nm SIMPLEQ_ENTRY ,
.Nm SIMPLEQ_INIT ,
.Nm SIMPLEQ_INSERT_HEAD ,
.Nm SIMPLEQ_INSERT_TAIL ,
.Nm SIMPLEQ_INSERT_AFTER ,
.Nm SIMPLEQ_REMOVE ,
.Nm SIMPLEQ_REMOVE_HEAD ,
.Nm SIMPLEQ_REMOVE ,
.Nm SIMPLEQ_FOREACH ,
.Nm SIMPLEQ_EMPTY ,
.Nm SIMPLEQ_FIRST ,
.Nm SIMPLEQ_NEXT ,
.Nm LIST_ENTRY ,
.Nm STAILQ_HEAD ,
.Nm STAILQ_HEAD_INITIALIZER ,
.Nm STAILQ_ENTRY ,
.Nm STAILQ_INIT ,
.Nm STAILQ_INSERT_HEAD ,
.Nm STAILQ_INSERT_TAIL ,
.Nm STAILQ_INSERT_AFTER ,
.Nm STAILQ_REMOVE_HEAD ,
.Nm STAILQ_REMOVE ,
.Nm STAILQ_FOREACH ,
.Nm STAILQ_EMPTY ,
.Nm STAILQ_FIRST ,
.Nm STAILQ_NEXT ,
.Nm LIST_HEAD ,
.Nm LIST_HEAD_INITIALIZER ,
.Nm LIST_ENTRY ,
.Nm LIST_INIT ,
.Nm LIST_INSERT_AFTER ,
.Nm LIST_INSERT_BEFORE ,
@ -101,23 +114,25 @@
.Nm LIST_EMPTY ,
.Nm LIST_FIRST ,
.Nm LIST_NEXT ,
.Nm TAILQ_ENTRY ,
.Nm TAILQ_HEAD ,
.Nm TAILQ_HEAD_INITIALIZER ,
.Nm TAILQ_ENTRY ,
.Nm TAILQ_INIT ,
.Nm TAILQ_INSERT_AFTER ,
.Nm TAILQ_INSERT_BEFORE ,
.Nm TAILQ_INSERT_HEAD ,
.Nm TAILQ_INSERT_TAIL ,
.Nm TAILQ_INSERT_AFTER ,
.Nm TAILQ_INSERT_BEFORE ,
.Nm TAILQ_REMOVE ,
.Nm TAILQ_FOREACH ,
.Nm TAILQ_FOREACH_REVERSE ,
.Nm TAILQ_EMPTY ,
.Nm TAILQ_FIRST ,
.Nm TAILQ_NEXT ,
.Nm CIRCLEQ_ENTRY ,
.Nm TAILQ_LAST ,
.Nm TAILQ_PREV ,
.Nm CIRCLEQ_HEAD ,
.Nm CIRCLEQ_HEAD_INITIALIZER ,
.Nm CIRCLEQ_ENTRY ,
.Nm CIRCLEQ_INIT ,
.Nm CIRCLEQ_INSERT_AFTER ,
.Nm CIRCLEQ_INSERT_BEFORE ,
@ -135,15 +150,15 @@
.Sh SYNOPSIS
.In sys/queue.h
.sp
.Fn SLIST_ENTRY "TYPE"
.Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
.Fn SLIST_HEAD "HEADNAME" "TYPE"
.Fn SLIST_HEAD_INITIALIZER "head"
.Fn SLIST_ENTRY "TYPE"
.Fn SLIST_INIT "SLIST_HEAD *head"
.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_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "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_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
.Ft int
.Fn SLIST_EMPTY "SLIST_HEAD *head"
.Ft TYPE *
@ -151,16 +166,16 @@
.Ft TYPE *
.Fn SLIST_NEXT "TYPE *elm" "SLIST_ENTRY NAME"
.sp
.Fn SIMPLEQ_ENTRY "TYPE"
.Fn SIMPLEQ_FOREACH "TYPE *var" "SIMPLEQ_HEAD *head" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_HEAD "HEADNAME" "TYPE"
.Fn SIMPLEQ_HEAD_INITIALIZER "head"
.Fn SIMPLEQ_ENTRY "TYPE"
.Fn SIMPLEQ_INIT "SIMPLEQ_HEAD *head"
.Fn SIMPLEQ_INSERT_AFTER "SIMPLEQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_INSERT_HEAD "SIMPLEQ_HEAD *head" "TYPE *elm" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_INSERT_TAIL "SIMPLEQ_HEAD *head" "TYPE *elm" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_REMOVE "SIMPLEQ_HEAD *head" "TYPE *elm" "TYPE" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_INSERT_AFTER "SIMPLEQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_REMOVE_HEAD "SIMPLEQ_HEAD *head" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_REMOVE "SIMPLEQ_HEAD *head" "TYPE *elm" "TYPE" "SIMPLEQ_ENTRY NAME"
.Fn SIMPLEQ_FOREACH "TYPE *var" "SIMPLEQ_HEAD *head" "SIMPLEQ_ENTRY NAME"
.Ft int
.Fn SIMPLEQ_EMPTY "SIMPLEQ_HEAD *head"
.Ft TYPE *
@ -168,15 +183,32 @@
.Ft TYPE *
.Fn SIMPLEQ_NEXT "TYPE *elm" "SIMPLEQ_ENTRY NAME"
.sp
.Fn LIST_ENTRY "TYPE"
.Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
.Fn STAILQ_HEAD "HEADNAME" "TYPE"
.Fn STAILQ_HEAD_INITIALIZER "head"
.Fn STAILQ_ENTRY "TYPE"
.Fn STAILQ_INIT "STAILQ_HEAD *head"
.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_AFTER "STAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "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_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
.Ft int
.Fn STAILQ_EMPTY "STAILQ_HEAD *head"
.Ft TYPE *
.Fn STAILQ_FIRST "STAILQ_HEAD *head"
.Ft TYPE *
.Fn STAILQ_NEXT "TYPE *elm" "STAILQ_ENTRY NAME"
.sp
.Fn LIST_HEAD "HEADNAME" "TYPE"
.Fn LIST_HEAD_INITIALIZER "head"
.Fn LIST_ENTRY "TYPE"
.Fn LIST_INIT "LIST_HEAD *head"
.Fn LIST_INSERT_AFTER "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_REMOVE "TYPE *elm" "LIST_ENTRY NAME"
.Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
.Ft int
.Fn LIST_EMPTY "LIST_HEAD *head"
.Ft TYPE *
@ -184,35 +216,39 @@
.Ft TYPE *
.Fn LIST_NEXT "TYPE *elm" "LIST_ENTRY NAME"
.sp
.Fn TAILQ_ENTRY "TYPE"
.Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_REVERSE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
.Fn TAILQ_HEAD "HEADNAME" "TYPE"
.Fn TAILQ_HEAD_INITIALIZER "head"
.Fn TAILQ_ENTRY "TYPE"
.Fn TAILQ_INIT "TAILQ_HEAD *head"
.Fn TAILQ_INSERT_AFTER "TAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_INSERT_HEAD "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_INSERT_TAIL "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_INSERT_AFTER "TAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_REMOVE "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_REVERSE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
.Ft int
.Fn TAILQ_EMPTY "TAILQ_HEAD *head"
.Ft TYPE *
.Fn TAILQ_FIRST "TAILQ_HEAD *head"
.Ft TYPE *
.Fn TAILQ_NEXT "TYPE *elm" "TAILQ_ENTRY NAME"
.Ft TYPE *
.Fn TAILQ_LAST "TAILQ_HEAD *head" "HEADNAME"
.Ft TYPE *
.Fn TAILQ_PREV "TYPE *elm" "HEADNAME" "TAILQ_ENTRY NAME"
.sp
.Fn CIRCLEQ_ENTRY "TYPE"
.Fn CIRCLEQ_FOREACH "TYPE *var" "CIRCLEQ_HEAD *head" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_FOREACH_REVERSE "TYPE *var" "CIRCLEQ_HEAD *head" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_HEAD "HEADNAME" "TYPE"
.Fn CIRCLEQ_HEAD_INITIALIZER "head"
.Fn CIRCLEQ_ENTRY "TYPE"
.Fn CIRCLEQ_INIT "CIRCLEQ_HEAD *head"
.Fn CIRCLEQ_INSERT_AFTER "CIRCLEQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_INSERT_BEFORE "CIRCLEQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_INSERT_HEAD "CIRCLEQ_HEAD *head" "TYPE *elm" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_INSERT_TAIL "CIRCLEQ_HEAD *head" "TYPE *elm" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_REMOVE "CIRCLEQ_HEAD *head" "TYPE *elm" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_FOREACH "TYPE *var" "CIRCLEQ_HEAD *head" "CIRCLEQ_ENTRY NAME"
.Fn CIRCLEQ_FOREACH_REVERSE "TYPE *var" "CIRCLEQ_HEAD *head" "CIRCLEQ_ENTRY NAME"
.Ft int
.Fn CIRCLEQ_EMPTY "CIRCLEQ_HEAD *head"
.Ft TYPE *
@ -583,6 +619,26 @@ The macro
.Nm SIMPLEQ_NEXT
returns the element after the element
.Fa elm .
.Pp
The macros prefixed with
.Dq Nm STAILQ_
.Nm ( STAILQ_HEAD ,
.Nm STAILQ_HEAD_INITIALIZER ,
.Nm STAILQ_ENTRY ,
.Nm STAILQ_INIT ,
.Nm STAILQ_INSERT_HEAD ,
.Nm STAILQ_INSERT_TAIL ,
.Nm STAILQ_INSERT_AFTER ,
.Nm STAILQ_REMOVE_HEAD ,
.Nm STAILQ_REMOVE ,
.Nm STAILQ_FOREACH ,
.Nm STAILQ_EMPTY ,
.Nm STAILQ_FIRST ,
and
.Nm STAILQ_NEXT )
are functionally identical to these simple queue functions,
and are provided for compatibility with
.Fx .
.Sh SIMPLE QUEUE EXAMPLE
.Bd -literal
SIMPLEQ_HEAD(simplehead, entry) head;
@ -1062,5 +1118,7 @@ functions first appeared in
.Nx 1.2 .
The
.Nm SLIST
and
.Nm STAILQ
functions first appeared in
.Fx 2.1.5 .