diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-02-14 22:44:20 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-02-14 22:44:20 +0000 |
commit | bddd8bab575774511245de47fd7c07e6b06d976f (patch) | |
tree | e2f963529aa3e1fb3decc25b31e1f383f55a270e /include/asterisk/linkedlists.h | |
parent | e72e24e0470c97ca6a633445a55ccaa20f0db32e (diff) |
more list macro conversion (issue #6361, plus documentation for new macro)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@10067 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/linkedlists.h')
-rw-r--r-- | include/asterisk/linkedlists.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h index 2d73f8258..4f60366d5 100644 --- a/include/asterisk/linkedlists.h +++ b/include/asterisk/linkedlists.h @@ -1,7 +1,7 @@ /* * Asterisk -- An open source telephony toolkit. * - * Copyright (C) 1999 - 2005, Digium, Inc. + * Copyright (C) 1999 - 2006, Digium, Inc. * * Mark Spencer <markster@digium.com> * Kevin P. Fleming <kpfleming@digium.com> @@ -314,6 +314,26 @@ struct { \ (head)->last = __list_prev; /*! + \brief Inserts a list entry before the current entry during a traversal. + \param head This is a pointer to the list head structure + \param elm This is a pointer to the entry to be inserted. + \param field This is the name of the field (declared using AST_LIST_ENTRY()) + used to link entries of this list together. + + \note This macro can \b only be used inside an AST_LIST_TRAVERSE_SAFE_BEGIN() + block. + */ +#define AST_LIST_INSERT_BEFORE_CURRENT(head, elm, field) do { \ + if (__list_prev) { \ + (elm)->field.next = __list_prev->field.next; \ + __list_prev->field.next = elm; \ + } else { \ + (elm)->field.next = (head)->first; \ + (head)->first = (elm); \ + } \ +} while (0) + +/*! \brief Closes a safe loop traversal block. */ #define AST_LIST_TRAVERSE_SAFE_END } |