2
2
* Elastic Binary Trees - macros and structures for operations on 32bit nodes.
4
* (C) 2002-2010 - Willy Tarreau <w@1wt.eu>
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
4
* (C) 2002-2011 - Willy Tarreau <w@1wt.eu>
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation, version 2.1
11
* This library is distributed in the hope that it will be useful,
12
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
21
#ifndef _EB32TREE_H
74
74
return eb32_entry(eb_prev(&eb32->node), struct eb32_node, node);
77
/* Return next leaf node within a duplicate sub-tree, or NULL if none. */
78
static inline struct eb32_node *eb32_next_dup(struct eb32_node *eb32)
80
return eb32_entry(eb_next_dup(&eb32->node), struct eb32_node, node);
83
/* Return previous leaf node within a duplicate sub-tree, or NULL if none. */
84
static inline struct eb32_node *eb32_prev_dup(struct eb32_node *eb32)
86
return eb32_entry(eb_prev_dup(&eb32->node), struct eb32_node, node);
77
89
/* Return next node in the tree, skipping duplicates, or NULL if none */
78
90
static inline struct eb32_node *eb32_next_unique(struct eb32_node *eb32)