Coverage Report

Created: 2026-08-19 07:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/haproxy/include/import/ebpttree.h
Line
Count
Source
1
/*
2
 * Elastic Binary Trees - macros and structures for operations on pointer nodes.
3
 * Version 6.0.6
4
 * (C) 2002-2011 - Willy Tarreau <w@1wt.eu>
5
 *
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
9
 * exclusively.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
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
19
 */
20
21
#ifndef _EBPTTREE_H
22
#define _EBPTTREE_H
23
24
#include "ebtree.h"
25
#include "eb32tree.h"
26
#include "eb64tree.h"
27
28
29
/* Return the structure of type <type> whose member <member> points to <ptr> */
30
0
#define ebpt_entry(ptr, type, member) container_of(ptr, type, member)
31
32
/*
33
 * Exported functions and macros.
34
 * Many of them are always inlined because they are extremely small, and
35
 * are generally called at most once or twice in a program.
36
 */
37
38
/* Return leftmost node in the tree, or NULL if none */
39
static forceinline struct ebpt_node *ebpt_first(struct eb_root *root)
40
0
{
41
0
  return ebpt_entry(eb_first(root), struct ebpt_node, node);
42
0
}
Unexecuted instantiation: tools.c:ebpt_first
Unexecuted instantiation: cfgparse.c:ebpt_first
Unexecuted instantiation: connection.c:ebpt_first
Unexecuted instantiation: haproxy.c:ebpt_first
Unexecuted instantiation: http_ana.c:ebpt_first
Unexecuted instantiation: http_ext.c:ebpt_first
Unexecuted instantiation: http_htx.c:ebpt_first
Unexecuted instantiation: peers.c:ebpt_first
Unexecuted instantiation: proxy.c:ebpt_first
Unexecuted instantiation: server.c:ebpt_first
Unexecuted instantiation: sock.c:ebpt_first
Unexecuted instantiation: sock_inet.c:ebpt_first
Unexecuted instantiation: stats-html.c:ebpt_first
Unexecuted instantiation: stats.c:ebpt_first
Unexecuted instantiation: stream.c:ebpt_first
Unexecuted instantiation: tcpcheck.c:ebpt_first
Unexecuted instantiation: backend.c:ebpt_first
Unexecuted instantiation: cfgparse-listen.c:ebpt_first
Unexecuted instantiation: check.c:ebpt_first
Unexecuted instantiation: dict.c:ebpt_first
Unexecuted instantiation: ebimtree.c:ebpt_first
Unexecuted instantiation: ebistree.c:ebpt_first
Unexecuted instantiation: filters.c:ebpt_first
Unexecuted instantiation: flt_http_comp.c:ebpt_first
Unexecuted instantiation: haterm.c:ebpt_first
Unexecuted instantiation: http_fetch.c:ebpt_first
Unexecuted instantiation: pattern.c:ebpt_first
Unexecuted instantiation: proto_tcp.c:ebpt_first
Unexecuted instantiation: cache.c:ebpt_first
Unexecuted instantiation: fcgi-app.c:ebpt_first
Unexecuted instantiation: h1_htx.c:ebpt_first
43
44
/* Return rightmost node in the tree, or NULL if none */
45
static forceinline struct ebpt_node *ebpt_last(struct eb_root *root)
46
0
{
47
0
  return ebpt_entry(eb_last(root), struct ebpt_node, node);
48
0
}
Unexecuted instantiation: tools.c:ebpt_last
Unexecuted instantiation: cfgparse.c:ebpt_last
Unexecuted instantiation: connection.c:ebpt_last
Unexecuted instantiation: haproxy.c:ebpt_last
Unexecuted instantiation: http_ana.c:ebpt_last
Unexecuted instantiation: http_ext.c:ebpt_last
Unexecuted instantiation: http_htx.c:ebpt_last
Unexecuted instantiation: peers.c:ebpt_last
Unexecuted instantiation: proxy.c:ebpt_last
Unexecuted instantiation: server.c:ebpt_last
Unexecuted instantiation: sock.c:ebpt_last
Unexecuted instantiation: sock_inet.c:ebpt_last
Unexecuted instantiation: stats-html.c:ebpt_last
Unexecuted instantiation: stats.c:ebpt_last
Unexecuted instantiation: stream.c:ebpt_last
Unexecuted instantiation: tcpcheck.c:ebpt_last
Unexecuted instantiation: backend.c:ebpt_last
Unexecuted instantiation: cfgparse-listen.c:ebpt_last
Unexecuted instantiation: check.c:ebpt_last
Unexecuted instantiation: dict.c:ebpt_last
Unexecuted instantiation: ebimtree.c:ebpt_last
Unexecuted instantiation: ebistree.c:ebpt_last
Unexecuted instantiation: filters.c:ebpt_last
Unexecuted instantiation: flt_http_comp.c:ebpt_last
Unexecuted instantiation: haterm.c:ebpt_last
Unexecuted instantiation: http_fetch.c:ebpt_last
Unexecuted instantiation: pattern.c:ebpt_last
Unexecuted instantiation: proto_tcp.c:ebpt_last
Unexecuted instantiation: cache.c:ebpt_last
Unexecuted instantiation: fcgi-app.c:ebpt_last
Unexecuted instantiation: h1_htx.c:ebpt_last
49
50
/* Return next node in the tree, or NULL if none */
51
static forceinline struct ebpt_node *ebpt_next(struct ebpt_node *ebpt)
52
0
{
53
0
  return ebpt_entry(eb_next(&ebpt->node), struct ebpt_node, node);
54
0
}
Unexecuted instantiation: tools.c:ebpt_next
Unexecuted instantiation: cfgparse.c:ebpt_next
Unexecuted instantiation: connection.c:ebpt_next
Unexecuted instantiation: haproxy.c:ebpt_next
Unexecuted instantiation: http_ana.c:ebpt_next
Unexecuted instantiation: http_ext.c:ebpt_next
Unexecuted instantiation: http_htx.c:ebpt_next
Unexecuted instantiation: peers.c:ebpt_next
Unexecuted instantiation: proxy.c:ebpt_next
Unexecuted instantiation: server.c:ebpt_next
Unexecuted instantiation: sock.c:ebpt_next
Unexecuted instantiation: sock_inet.c:ebpt_next
Unexecuted instantiation: stats-html.c:ebpt_next
Unexecuted instantiation: stats.c:ebpt_next
Unexecuted instantiation: stream.c:ebpt_next
Unexecuted instantiation: tcpcheck.c:ebpt_next
Unexecuted instantiation: backend.c:ebpt_next
Unexecuted instantiation: cfgparse-listen.c:ebpt_next
Unexecuted instantiation: check.c:ebpt_next
Unexecuted instantiation: dict.c:ebpt_next
Unexecuted instantiation: ebimtree.c:ebpt_next
Unexecuted instantiation: ebistree.c:ebpt_next
Unexecuted instantiation: filters.c:ebpt_next
Unexecuted instantiation: flt_http_comp.c:ebpt_next
Unexecuted instantiation: haterm.c:ebpt_next
Unexecuted instantiation: http_fetch.c:ebpt_next
Unexecuted instantiation: pattern.c:ebpt_next
Unexecuted instantiation: proto_tcp.c:ebpt_next
Unexecuted instantiation: cache.c:ebpt_next
Unexecuted instantiation: fcgi-app.c:ebpt_next
Unexecuted instantiation: h1_htx.c:ebpt_next
55
56
/* Return previous node in the tree, or NULL if none */
57
static forceinline struct ebpt_node *ebpt_prev(struct ebpt_node *ebpt)
58
0
{
59
0
  return ebpt_entry(eb_prev(&ebpt->node), struct ebpt_node, node);
60
0
}
Unexecuted instantiation: tools.c:ebpt_prev
Unexecuted instantiation: cfgparse.c:ebpt_prev
Unexecuted instantiation: connection.c:ebpt_prev
Unexecuted instantiation: haproxy.c:ebpt_prev
Unexecuted instantiation: http_ana.c:ebpt_prev
Unexecuted instantiation: http_ext.c:ebpt_prev
Unexecuted instantiation: http_htx.c:ebpt_prev
Unexecuted instantiation: peers.c:ebpt_prev
Unexecuted instantiation: proxy.c:ebpt_prev
Unexecuted instantiation: server.c:ebpt_prev
Unexecuted instantiation: sock.c:ebpt_prev
Unexecuted instantiation: sock_inet.c:ebpt_prev
Unexecuted instantiation: stats-html.c:ebpt_prev
Unexecuted instantiation: stats.c:ebpt_prev
Unexecuted instantiation: stream.c:ebpt_prev
Unexecuted instantiation: tcpcheck.c:ebpt_prev
Unexecuted instantiation: backend.c:ebpt_prev
Unexecuted instantiation: cfgparse-listen.c:ebpt_prev
Unexecuted instantiation: check.c:ebpt_prev
Unexecuted instantiation: dict.c:ebpt_prev
Unexecuted instantiation: ebimtree.c:ebpt_prev
Unexecuted instantiation: ebistree.c:ebpt_prev
Unexecuted instantiation: filters.c:ebpt_prev
Unexecuted instantiation: flt_http_comp.c:ebpt_prev
Unexecuted instantiation: haterm.c:ebpt_prev
Unexecuted instantiation: http_fetch.c:ebpt_prev
Unexecuted instantiation: pattern.c:ebpt_prev
Unexecuted instantiation: proto_tcp.c:ebpt_prev
Unexecuted instantiation: cache.c:ebpt_prev
Unexecuted instantiation: fcgi-app.c:ebpt_prev
Unexecuted instantiation: h1_htx.c:ebpt_prev
61
62
/* Return next leaf node within a duplicate sub-tree, or NULL if none. */
63
static inline struct ebpt_node *ebpt_next_dup(struct ebpt_node *ebpt)
64
0
{
65
0
  return ebpt_entry(eb_next_dup(&ebpt->node), struct ebpt_node, node);
66
0
}
Unexecuted instantiation: tools.c:ebpt_next_dup
Unexecuted instantiation: cfgparse.c:ebpt_next_dup
Unexecuted instantiation: connection.c:ebpt_next_dup
Unexecuted instantiation: haproxy.c:ebpt_next_dup
Unexecuted instantiation: http_ana.c:ebpt_next_dup
Unexecuted instantiation: http_ext.c:ebpt_next_dup
Unexecuted instantiation: http_htx.c:ebpt_next_dup
Unexecuted instantiation: peers.c:ebpt_next_dup
Unexecuted instantiation: proxy.c:ebpt_next_dup
Unexecuted instantiation: server.c:ebpt_next_dup
Unexecuted instantiation: sock.c:ebpt_next_dup
Unexecuted instantiation: sock_inet.c:ebpt_next_dup
Unexecuted instantiation: stats-html.c:ebpt_next_dup
Unexecuted instantiation: stats.c:ebpt_next_dup
Unexecuted instantiation: stream.c:ebpt_next_dup
Unexecuted instantiation: tcpcheck.c:ebpt_next_dup
Unexecuted instantiation: backend.c:ebpt_next_dup
Unexecuted instantiation: cfgparse-listen.c:ebpt_next_dup
Unexecuted instantiation: check.c:ebpt_next_dup
Unexecuted instantiation: dict.c:ebpt_next_dup
Unexecuted instantiation: ebimtree.c:ebpt_next_dup
Unexecuted instantiation: ebistree.c:ebpt_next_dup
Unexecuted instantiation: filters.c:ebpt_next_dup
Unexecuted instantiation: flt_http_comp.c:ebpt_next_dup
Unexecuted instantiation: haterm.c:ebpt_next_dup
Unexecuted instantiation: http_fetch.c:ebpt_next_dup
Unexecuted instantiation: pattern.c:ebpt_next_dup
Unexecuted instantiation: proto_tcp.c:ebpt_next_dup
Unexecuted instantiation: cache.c:ebpt_next_dup
Unexecuted instantiation: fcgi-app.c:ebpt_next_dup
Unexecuted instantiation: h1_htx.c:ebpt_next_dup
67
68
/* Return previous leaf node within a duplicate sub-tree, or NULL if none. */
69
static inline struct ebpt_node *ebpt_prev_dup(struct ebpt_node *ebpt)
70
0
{
71
0
  return ebpt_entry(eb_prev_dup(&ebpt->node), struct ebpt_node, node);
72
0
}
Unexecuted instantiation: tools.c:ebpt_prev_dup
Unexecuted instantiation: cfgparse.c:ebpt_prev_dup
Unexecuted instantiation: connection.c:ebpt_prev_dup
Unexecuted instantiation: haproxy.c:ebpt_prev_dup
Unexecuted instantiation: http_ana.c:ebpt_prev_dup
Unexecuted instantiation: http_ext.c:ebpt_prev_dup
Unexecuted instantiation: http_htx.c:ebpt_prev_dup
Unexecuted instantiation: peers.c:ebpt_prev_dup
Unexecuted instantiation: proxy.c:ebpt_prev_dup
Unexecuted instantiation: server.c:ebpt_prev_dup
Unexecuted instantiation: sock.c:ebpt_prev_dup
Unexecuted instantiation: sock_inet.c:ebpt_prev_dup
Unexecuted instantiation: stats-html.c:ebpt_prev_dup
Unexecuted instantiation: stats.c:ebpt_prev_dup
Unexecuted instantiation: stream.c:ebpt_prev_dup
Unexecuted instantiation: tcpcheck.c:ebpt_prev_dup
Unexecuted instantiation: backend.c:ebpt_prev_dup
Unexecuted instantiation: cfgparse-listen.c:ebpt_prev_dup
Unexecuted instantiation: check.c:ebpt_prev_dup
Unexecuted instantiation: dict.c:ebpt_prev_dup
Unexecuted instantiation: ebimtree.c:ebpt_prev_dup
Unexecuted instantiation: ebistree.c:ebpt_prev_dup
Unexecuted instantiation: filters.c:ebpt_prev_dup
Unexecuted instantiation: flt_http_comp.c:ebpt_prev_dup
Unexecuted instantiation: haterm.c:ebpt_prev_dup
Unexecuted instantiation: http_fetch.c:ebpt_prev_dup
Unexecuted instantiation: pattern.c:ebpt_prev_dup
Unexecuted instantiation: proto_tcp.c:ebpt_prev_dup
Unexecuted instantiation: cache.c:ebpt_prev_dup
Unexecuted instantiation: fcgi-app.c:ebpt_prev_dup
Unexecuted instantiation: h1_htx.c:ebpt_prev_dup
73
74
/* Return next node in the tree, skipping duplicates, or NULL if none */
75
static forceinline struct ebpt_node *ebpt_next_unique(struct ebpt_node *ebpt)
76
0
{
77
0
  return ebpt_entry(eb_next_unique(&ebpt->node), struct ebpt_node, node);
78
0
}
Unexecuted instantiation: tools.c:ebpt_next_unique
Unexecuted instantiation: cfgparse.c:ebpt_next_unique
Unexecuted instantiation: connection.c:ebpt_next_unique
Unexecuted instantiation: haproxy.c:ebpt_next_unique
Unexecuted instantiation: http_ana.c:ebpt_next_unique
Unexecuted instantiation: http_ext.c:ebpt_next_unique
Unexecuted instantiation: http_htx.c:ebpt_next_unique
Unexecuted instantiation: peers.c:ebpt_next_unique
Unexecuted instantiation: proxy.c:ebpt_next_unique
Unexecuted instantiation: server.c:ebpt_next_unique
Unexecuted instantiation: sock.c:ebpt_next_unique
Unexecuted instantiation: sock_inet.c:ebpt_next_unique
Unexecuted instantiation: stats-html.c:ebpt_next_unique
Unexecuted instantiation: stats.c:ebpt_next_unique
Unexecuted instantiation: stream.c:ebpt_next_unique
Unexecuted instantiation: tcpcheck.c:ebpt_next_unique
Unexecuted instantiation: backend.c:ebpt_next_unique
Unexecuted instantiation: cfgparse-listen.c:ebpt_next_unique
Unexecuted instantiation: check.c:ebpt_next_unique
Unexecuted instantiation: dict.c:ebpt_next_unique
Unexecuted instantiation: ebimtree.c:ebpt_next_unique
Unexecuted instantiation: ebistree.c:ebpt_next_unique
Unexecuted instantiation: filters.c:ebpt_next_unique
Unexecuted instantiation: flt_http_comp.c:ebpt_next_unique
Unexecuted instantiation: haterm.c:ebpt_next_unique
Unexecuted instantiation: http_fetch.c:ebpt_next_unique
Unexecuted instantiation: pattern.c:ebpt_next_unique
Unexecuted instantiation: proto_tcp.c:ebpt_next_unique
Unexecuted instantiation: cache.c:ebpt_next_unique
Unexecuted instantiation: fcgi-app.c:ebpt_next_unique
Unexecuted instantiation: h1_htx.c:ebpt_next_unique
79
80
/* Return previous node in the tree, skipping duplicates, or NULL if none */
81
static forceinline struct ebpt_node *ebpt_prev_unique(struct ebpt_node *ebpt)
82
0
{
83
0
  return ebpt_entry(eb_prev_unique(&ebpt->node), struct ebpt_node, node);
84
0
}
Unexecuted instantiation: tools.c:ebpt_prev_unique
Unexecuted instantiation: cfgparse.c:ebpt_prev_unique
Unexecuted instantiation: connection.c:ebpt_prev_unique
Unexecuted instantiation: haproxy.c:ebpt_prev_unique
Unexecuted instantiation: http_ana.c:ebpt_prev_unique
Unexecuted instantiation: http_ext.c:ebpt_prev_unique
Unexecuted instantiation: http_htx.c:ebpt_prev_unique
Unexecuted instantiation: peers.c:ebpt_prev_unique
Unexecuted instantiation: proxy.c:ebpt_prev_unique
Unexecuted instantiation: server.c:ebpt_prev_unique
Unexecuted instantiation: sock.c:ebpt_prev_unique
Unexecuted instantiation: sock_inet.c:ebpt_prev_unique
Unexecuted instantiation: stats-html.c:ebpt_prev_unique
Unexecuted instantiation: stats.c:ebpt_prev_unique
Unexecuted instantiation: stream.c:ebpt_prev_unique
Unexecuted instantiation: tcpcheck.c:ebpt_prev_unique
Unexecuted instantiation: backend.c:ebpt_prev_unique
Unexecuted instantiation: cfgparse-listen.c:ebpt_prev_unique
Unexecuted instantiation: check.c:ebpt_prev_unique
Unexecuted instantiation: dict.c:ebpt_prev_unique
Unexecuted instantiation: ebimtree.c:ebpt_prev_unique
Unexecuted instantiation: ebistree.c:ebpt_prev_unique
Unexecuted instantiation: filters.c:ebpt_prev_unique
Unexecuted instantiation: flt_http_comp.c:ebpt_prev_unique
Unexecuted instantiation: haterm.c:ebpt_prev_unique
Unexecuted instantiation: http_fetch.c:ebpt_prev_unique
Unexecuted instantiation: pattern.c:ebpt_prev_unique
Unexecuted instantiation: proto_tcp.c:ebpt_prev_unique
Unexecuted instantiation: cache.c:ebpt_prev_unique
Unexecuted instantiation: fcgi-app.c:ebpt_prev_unique
Unexecuted instantiation: h1_htx.c:ebpt_prev_unique
85
86
/* Delete node from the tree if it was linked in. Mark the node unused. Note
87
 * that this function relies on a non-inlined generic function: eb_delete.
88
 */
89
static forceinline void ebpt_delete(struct ebpt_node *ebpt)
90
0
{
91
0
  eb_delete(&ebpt->node);
92
0
}
Unexecuted instantiation: tools.c:ebpt_delete
Unexecuted instantiation: cfgparse.c:ebpt_delete
Unexecuted instantiation: connection.c:ebpt_delete
Unexecuted instantiation: haproxy.c:ebpt_delete
Unexecuted instantiation: http_ana.c:ebpt_delete
Unexecuted instantiation: http_ext.c:ebpt_delete
Unexecuted instantiation: http_htx.c:ebpt_delete
Unexecuted instantiation: peers.c:ebpt_delete
Unexecuted instantiation: proxy.c:ebpt_delete
Unexecuted instantiation: server.c:ebpt_delete
Unexecuted instantiation: sock.c:ebpt_delete
Unexecuted instantiation: sock_inet.c:ebpt_delete
Unexecuted instantiation: stats-html.c:ebpt_delete
Unexecuted instantiation: stats.c:ebpt_delete
Unexecuted instantiation: stream.c:ebpt_delete
Unexecuted instantiation: tcpcheck.c:ebpt_delete
Unexecuted instantiation: backend.c:ebpt_delete
Unexecuted instantiation: cfgparse-listen.c:ebpt_delete
Unexecuted instantiation: check.c:ebpt_delete
Unexecuted instantiation: dict.c:ebpt_delete
Unexecuted instantiation: ebimtree.c:ebpt_delete
Unexecuted instantiation: ebistree.c:ebpt_delete
Unexecuted instantiation: filters.c:ebpt_delete
Unexecuted instantiation: flt_http_comp.c:ebpt_delete
Unexecuted instantiation: haterm.c:ebpt_delete
Unexecuted instantiation: http_fetch.c:ebpt_delete
Unexecuted instantiation: pattern.c:ebpt_delete
Unexecuted instantiation: proto_tcp.c:ebpt_delete
Unexecuted instantiation: cache.c:ebpt_delete
Unexecuted instantiation: fcgi-app.c:ebpt_delete
Unexecuted instantiation: h1_htx.c:ebpt_delete
93
94
/*
95
 * The following functions are inlined but derived from the integer versions.
96
 */
97
static forceinline struct ebpt_node *ebpt_lookup(struct eb_root *root, void *x)
98
0
{
99
0
  if (sizeof(void *) == 4)
100
0
    return (struct ebpt_node *)eb32_lookup(root, (u32)(PTR_INT_TYPE)x);
101
0
  else
102
0
    return (struct ebpt_node *)eb64_lookup(root, (u64)(PTR_INT_TYPE)x);
103
0
}
Unexecuted instantiation: tools.c:ebpt_lookup
Unexecuted instantiation: cfgparse.c:ebpt_lookup
Unexecuted instantiation: connection.c:ebpt_lookup
Unexecuted instantiation: haproxy.c:ebpt_lookup
Unexecuted instantiation: http_ana.c:ebpt_lookup
Unexecuted instantiation: http_ext.c:ebpt_lookup
Unexecuted instantiation: http_htx.c:ebpt_lookup
Unexecuted instantiation: peers.c:ebpt_lookup
Unexecuted instantiation: proxy.c:ebpt_lookup
Unexecuted instantiation: server.c:ebpt_lookup
Unexecuted instantiation: sock.c:ebpt_lookup
Unexecuted instantiation: sock_inet.c:ebpt_lookup
Unexecuted instantiation: stats-html.c:ebpt_lookup
Unexecuted instantiation: stats.c:ebpt_lookup
Unexecuted instantiation: stream.c:ebpt_lookup
Unexecuted instantiation: tcpcheck.c:ebpt_lookup
Unexecuted instantiation: backend.c:ebpt_lookup
Unexecuted instantiation: cfgparse-listen.c:ebpt_lookup
Unexecuted instantiation: check.c:ebpt_lookup
Unexecuted instantiation: dict.c:ebpt_lookup
Unexecuted instantiation: ebimtree.c:ebpt_lookup
Unexecuted instantiation: ebistree.c:ebpt_lookup
Unexecuted instantiation: filters.c:ebpt_lookup
Unexecuted instantiation: flt_http_comp.c:ebpt_lookup
Unexecuted instantiation: haterm.c:ebpt_lookup
Unexecuted instantiation: http_fetch.c:ebpt_lookup
Unexecuted instantiation: pattern.c:ebpt_lookup
Unexecuted instantiation: proto_tcp.c:ebpt_lookup
Unexecuted instantiation: cache.c:ebpt_lookup
Unexecuted instantiation: fcgi-app.c:ebpt_lookup
Unexecuted instantiation: h1_htx.c:ebpt_lookup
104
105
static forceinline struct ebpt_node *ebpt_lookup_le(struct eb_root *root, void *x)
106
0
{
107
0
  if (sizeof(void *) == 4)
108
0
    return (struct ebpt_node *)eb32_lookup_le(root, (u32)(PTR_INT_TYPE)x);
109
0
  else
110
0
    return (struct ebpt_node *)eb64_lookup_le(root, (u64)(PTR_INT_TYPE)x);
111
0
}
Unexecuted instantiation: tools.c:ebpt_lookup_le
Unexecuted instantiation: cfgparse.c:ebpt_lookup_le
Unexecuted instantiation: connection.c:ebpt_lookup_le
Unexecuted instantiation: haproxy.c:ebpt_lookup_le
Unexecuted instantiation: http_ana.c:ebpt_lookup_le
Unexecuted instantiation: http_ext.c:ebpt_lookup_le
Unexecuted instantiation: http_htx.c:ebpt_lookup_le
Unexecuted instantiation: peers.c:ebpt_lookup_le
Unexecuted instantiation: proxy.c:ebpt_lookup_le
Unexecuted instantiation: server.c:ebpt_lookup_le
Unexecuted instantiation: sock.c:ebpt_lookup_le
Unexecuted instantiation: sock_inet.c:ebpt_lookup_le
Unexecuted instantiation: stats-html.c:ebpt_lookup_le
Unexecuted instantiation: stats.c:ebpt_lookup_le
Unexecuted instantiation: stream.c:ebpt_lookup_le
Unexecuted instantiation: tcpcheck.c:ebpt_lookup_le
Unexecuted instantiation: backend.c:ebpt_lookup_le
Unexecuted instantiation: cfgparse-listen.c:ebpt_lookup_le
Unexecuted instantiation: check.c:ebpt_lookup_le
Unexecuted instantiation: dict.c:ebpt_lookup_le
Unexecuted instantiation: ebimtree.c:ebpt_lookup_le
Unexecuted instantiation: ebistree.c:ebpt_lookup_le
Unexecuted instantiation: filters.c:ebpt_lookup_le
Unexecuted instantiation: flt_http_comp.c:ebpt_lookup_le
Unexecuted instantiation: haterm.c:ebpt_lookup_le
Unexecuted instantiation: http_fetch.c:ebpt_lookup_le
Unexecuted instantiation: pattern.c:ebpt_lookup_le
Unexecuted instantiation: proto_tcp.c:ebpt_lookup_le
Unexecuted instantiation: cache.c:ebpt_lookup_le
Unexecuted instantiation: fcgi-app.c:ebpt_lookup_le
Unexecuted instantiation: h1_htx.c:ebpt_lookup_le
112
113
static forceinline struct ebpt_node *ebpt_lookup_ge(struct eb_root *root, void *x)
114
0
{
115
0
  if (sizeof(void *) == 4)
116
0
    return (struct ebpt_node *)eb32_lookup_ge(root, (u32)(PTR_INT_TYPE)x);
117
0
  else
118
0
    return (struct ebpt_node *)eb64_lookup_ge(root, (u64)(PTR_INT_TYPE)x);
119
0
}
Unexecuted instantiation: tools.c:ebpt_lookup_ge
Unexecuted instantiation: cfgparse.c:ebpt_lookup_ge
Unexecuted instantiation: connection.c:ebpt_lookup_ge
Unexecuted instantiation: haproxy.c:ebpt_lookup_ge
Unexecuted instantiation: http_ana.c:ebpt_lookup_ge
Unexecuted instantiation: http_ext.c:ebpt_lookup_ge
Unexecuted instantiation: http_htx.c:ebpt_lookup_ge
Unexecuted instantiation: peers.c:ebpt_lookup_ge
Unexecuted instantiation: proxy.c:ebpt_lookup_ge
Unexecuted instantiation: server.c:ebpt_lookup_ge
Unexecuted instantiation: sock.c:ebpt_lookup_ge
Unexecuted instantiation: sock_inet.c:ebpt_lookup_ge
Unexecuted instantiation: stats-html.c:ebpt_lookup_ge
Unexecuted instantiation: stats.c:ebpt_lookup_ge
Unexecuted instantiation: stream.c:ebpt_lookup_ge
Unexecuted instantiation: tcpcheck.c:ebpt_lookup_ge
Unexecuted instantiation: backend.c:ebpt_lookup_ge
Unexecuted instantiation: cfgparse-listen.c:ebpt_lookup_ge
Unexecuted instantiation: check.c:ebpt_lookup_ge
Unexecuted instantiation: dict.c:ebpt_lookup_ge
Unexecuted instantiation: ebimtree.c:ebpt_lookup_ge
Unexecuted instantiation: ebistree.c:ebpt_lookup_ge
Unexecuted instantiation: filters.c:ebpt_lookup_ge
Unexecuted instantiation: flt_http_comp.c:ebpt_lookup_ge
Unexecuted instantiation: haterm.c:ebpt_lookup_ge
Unexecuted instantiation: http_fetch.c:ebpt_lookup_ge
Unexecuted instantiation: pattern.c:ebpt_lookup_ge
Unexecuted instantiation: proto_tcp.c:ebpt_lookup_ge
Unexecuted instantiation: cache.c:ebpt_lookup_ge
Unexecuted instantiation: fcgi-app.c:ebpt_lookup_ge
Unexecuted instantiation: h1_htx.c:ebpt_lookup_ge
120
121
static forceinline struct ebpt_node *ebpt_insert(struct eb_root *root, struct ebpt_node *new)
122
0
{
123
0
  if (sizeof(void *) == 4)
124
0
    return (struct ebpt_node *)eb32_insert(root, (struct eb32_node *)new);
125
0
  else
126
0
    return (struct ebpt_node *)eb64_insert(root, (struct eb64_node *)new);
127
0
}
Unexecuted instantiation: tools.c:ebpt_insert
Unexecuted instantiation: cfgparse.c:ebpt_insert
Unexecuted instantiation: connection.c:ebpt_insert
Unexecuted instantiation: haproxy.c:ebpt_insert
Unexecuted instantiation: http_ana.c:ebpt_insert
Unexecuted instantiation: http_ext.c:ebpt_insert
Unexecuted instantiation: http_htx.c:ebpt_insert
Unexecuted instantiation: peers.c:ebpt_insert
Unexecuted instantiation: proxy.c:ebpt_insert
Unexecuted instantiation: server.c:ebpt_insert
Unexecuted instantiation: sock.c:ebpt_insert
Unexecuted instantiation: sock_inet.c:ebpt_insert
Unexecuted instantiation: stats-html.c:ebpt_insert
Unexecuted instantiation: stats.c:ebpt_insert
Unexecuted instantiation: stream.c:ebpt_insert
Unexecuted instantiation: tcpcheck.c:ebpt_insert
Unexecuted instantiation: backend.c:ebpt_insert
Unexecuted instantiation: cfgparse-listen.c:ebpt_insert
Unexecuted instantiation: check.c:ebpt_insert
Unexecuted instantiation: dict.c:ebpt_insert
Unexecuted instantiation: ebimtree.c:ebpt_insert
Unexecuted instantiation: ebistree.c:ebpt_insert
Unexecuted instantiation: filters.c:ebpt_insert
Unexecuted instantiation: flt_http_comp.c:ebpt_insert
Unexecuted instantiation: haterm.c:ebpt_insert
Unexecuted instantiation: http_fetch.c:ebpt_insert
Unexecuted instantiation: pattern.c:ebpt_insert
Unexecuted instantiation: proto_tcp.c:ebpt_insert
Unexecuted instantiation: cache.c:ebpt_insert
Unexecuted instantiation: fcgi-app.c:ebpt_insert
Unexecuted instantiation: h1_htx.c:ebpt_insert
128
129
/*
130
 * The following functions are less likely to be used directly, because
131
 * their code is larger. The non-inlined version is preferred.
132
 */
133
134
/* Delete node from the tree if it was linked in. Mark the node unused. */
135
static forceinline void __ebpt_delete(struct ebpt_node *ebpt)
136
0
{
137
0
  __eb_delete(&ebpt->node);
138
0
}
Unexecuted instantiation: tools.c:__ebpt_delete
Unexecuted instantiation: cfgparse.c:__ebpt_delete
Unexecuted instantiation: connection.c:__ebpt_delete
Unexecuted instantiation: haproxy.c:__ebpt_delete
Unexecuted instantiation: http_ana.c:__ebpt_delete
Unexecuted instantiation: http_ext.c:__ebpt_delete
Unexecuted instantiation: http_htx.c:__ebpt_delete
Unexecuted instantiation: peers.c:__ebpt_delete
Unexecuted instantiation: proxy.c:__ebpt_delete
Unexecuted instantiation: server.c:__ebpt_delete
Unexecuted instantiation: sock.c:__ebpt_delete
Unexecuted instantiation: sock_inet.c:__ebpt_delete
Unexecuted instantiation: stats-html.c:__ebpt_delete
Unexecuted instantiation: stats.c:__ebpt_delete
Unexecuted instantiation: stream.c:__ebpt_delete
Unexecuted instantiation: tcpcheck.c:__ebpt_delete
Unexecuted instantiation: backend.c:__ebpt_delete
Unexecuted instantiation: cfgparse-listen.c:__ebpt_delete
Unexecuted instantiation: check.c:__ebpt_delete
Unexecuted instantiation: dict.c:__ebpt_delete
Unexecuted instantiation: ebimtree.c:__ebpt_delete
Unexecuted instantiation: ebistree.c:__ebpt_delete
Unexecuted instantiation: filters.c:__ebpt_delete
Unexecuted instantiation: flt_http_comp.c:__ebpt_delete
Unexecuted instantiation: haterm.c:__ebpt_delete
Unexecuted instantiation: http_fetch.c:__ebpt_delete
Unexecuted instantiation: pattern.c:__ebpt_delete
Unexecuted instantiation: proto_tcp.c:__ebpt_delete
Unexecuted instantiation: cache.c:__ebpt_delete
Unexecuted instantiation: fcgi-app.c:__ebpt_delete
Unexecuted instantiation: h1_htx.c:__ebpt_delete
139
140
static forceinline struct ebpt_node *__ebpt_lookup(struct eb_root *root, void *x)
141
0
{
142
0
  if (sizeof(void *) == 4)
143
0
    return (struct ebpt_node *)__eb32_lookup(root, (u32)(PTR_INT_TYPE)x);
144
0
  else
145
0
    return (struct ebpt_node *)__eb64_lookup(root, (u64)(PTR_INT_TYPE)x);
146
0
}
Unexecuted instantiation: tools.c:__ebpt_lookup
Unexecuted instantiation: cfgparse.c:__ebpt_lookup
Unexecuted instantiation: connection.c:__ebpt_lookup
Unexecuted instantiation: haproxy.c:__ebpt_lookup
Unexecuted instantiation: http_ana.c:__ebpt_lookup
Unexecuted instantiation: http_ext.c:__ebpt_lookup
Unexecuted instantiation: http_htx.c:__ebpt_lookup
Unexecuted instantiation: peers.c:__ebpt_lookup
Unexecuted instantiation: proxy.c:__ebpt_lookup
Unexecuted instantiation: server.c:__ebpt_lookup
Unexecuted instantiation: sock.c:__ebpt_lookup
Unexecuted instantiation: sock_inet.c:__ebpt_lookup
Unexecuted instantiation: stats-html.c:__ebpt_lookup
Unexecuted instantiation: stats.c:__ebpt_lookup
Unexecuted instantiation: stream.c:__ebpt_lookup
Unexecuted instantiation: tcpcheck.c:__ebpt_lookup
Unexecuted instantiation: backend.c:__ebpt_lookup
Unexecuted instantiation: cfgparse-listen.c:__ebpt_lookup
Unexecuted instantiation: check.c:__ebpt_lookup
Unexecuted instantiation: dict.c:__ebpt_lookup
Unexecuted instantiation: ebimtree.c:__ebpt_lookup
Unexecuted instantiation: ebistree.c:__ebpt_lookup
Unexecuted instantiation: filters.c:__ebpt_lookup
Unexecuted instantiation: flt_http_comp.c:__ebpt_lookup
Unexecuted instantiation: haterm.c:__ebpt_lookup
Unexecuted instantiation: http_fetch.c:__ebpt_lookup
Unexecuted instantiation: pattern.c:__ebpt_lookup
Unexecuted instantiation: proto_tcp.c:__ebpt_lookup
Unexecuted instantiation: cache.c:__ebpt_lookup
Unexecuted instantiation: fcgi-app.c:__ebpt_lookup
Unexecuted instantiation: h1_htx.c:__ebpt_lookup
147
148
static forceinline struct ebpt_node *__ebpt_insert(struct eb_root *root, struct ebpt_node *new)
149
0
{
150
0
  if (sizeof(void *) == 4)
151
0
    return (struct ebpt_node *)__eb32_insert(root, (struct eb32_node *)new);
152
0
  else
153
0
    return (struct ebpt_node *)__eb64_insert(root, (struct eb64_node *)new);
154
0
}
Unexecuted instantiation: tools.c:__ebpt_insert
Unexecuted instantiation: cfgparse.c:__ebpt_insert
Unexecuted instantiation: connection.c:__ebpt_insert
Unexecuted instantiation: haproxy.c:__ebpt_insert
Unexecuted instantiation: http_ana.c:__ebpt_insert
Unexecuted instantiation: http_ext.c:__ebpt_insert
Unexecuted instantiation: http_htx.c:__ebpt_insert
Unexecuted instantiation: peers.c:__ebpt_insert
Unexecuted instantiation: proxy.c:__ebpt_insert
Unexecuted instantiation: server.c:__ebpt_insert
Unexecuted instantiation: sock.c:__ebpt_insert
Unexecuted instantiation: sock_inet.c:__ebpt_insert
Unexecuted instantiation: stats-html.c:__ebpt_insert
Unexecuted instantiation: stats.c:__ebpt_insert
Unexecuted instantiation: stream.c:__ebpt_insert
Unexecuted instantiation: tcpcheck.c:__ebpt_insert
Unexecuted instantiation: backend.c:__ebpt_insert
Unexecuted instantiation: cfgparse-listen.c:__ebpt_insert
Unexecuted instantiation: check.c:__ebpt_insert
Unexecuted instantiation: dict.c:__ebpt_insert
Unexecuted instantiation: ebimtree.c:__ebpt_insert
Unexecuted instantiation: ebistree.c:__ebpt_insert
Unexecuted instantiation: filters.c:__ebpt_insert
Unexecuted instantiation: flt_http_comp.c:__ebpt_insert
Unexecuted instantiation: haterm.c:__ebpt_insert
Unexecuted instantiation: http_fetch.c:__ebpt_insert
Unexecuted instantiation: pattern.c:__ebpt_insert
Unexecuted instantiation: proto_tcp.c:__ebpt_insert
Unexecuted instantiation: cache.c:__ebpt_insert
Unexecuted instantiation: fcgi-app.c:__ebpt_insert
Unexecuted instantiation: h1_htx.c:__ebpt_insert
155
156
#endif /* _EBPT_TREE_H */