diff options
Diffstat (limited to 'polyp/llist.h')
-rw-r--r-- | polyp/llist.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/polyp/llist.h b/polyp/llist.h index c48c5c6e..eb8cd017 100644 --- a/polyp/llist.h +++ b/polyp/llist.h @@ -7,33 +7,41 @@ This file is part of polypaudio. polypaudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, - or (at your option) any later version. + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. polypaudio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with polypaudio; if not, write to the Free Software + You should have received a copy of the GNU Lesser General Public + License along with polypaudio; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ***/ +/* Some macros for maintaining doubly linked lists */ + +/* The head of the linked list. Use this in the structure that shall + * contain the head of the linked list */ #define PA_LLIST_HEAD(t,name) t *name +/* The pointers in the linked list's items. Use this in the item structure */ #define PA_LLIST_FIELDS(t) t *next, *prev +/* Initialize the list's head */ #define PA_LLIST_HEAD_INIT(t,item) do { (item) = NULL; } while(0) +/* Initialize a list item */ #define PA_LLIST_INIT(t,item) do { \ t *_item = (item); \ assert(_item); \ _item->prev = _item->next = NULL; \ } while(0) +/* Prepend an item to the list */ #define PA_LLIST_PREPEND(t,head,item) do { \ t **_head = &(head), *_item = (item); \ assert(_item); \ @@ -43,6 +51,7 @@ *_head = _item; \ } while (0) +/* Remove an item from the list */ #define PA_LLIST_REMOVE(t,head,item) do { \ t **_head = &(head), *_item = (item); \ assert(_item); \ |