summaryrefslogtreecommitdiff
path: root/include/asterisk/linkedlists.h
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2006-02-14 22:44:20 +0000
committerKevin P. Fleming <kpfleming@digium.com>2006-02-14 22:44:20 +0000
commitff7a90829d623f89208e2f60402c3a321b8dbe35 (patch)
treee2f963529aa3e1fb3decc25b31e1f383f55a270e /include/asterisk/linkedlists.h
parent1c7126664dbf14c1f1c565eb130616ac7046a162 (diff)
more list macro conversion (issue #6361, plus documentation for new macro)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/linkedlists.h')
-rw-r--r--include/asterisk/linkedlists.h22
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 }