Coverage Report

Created: 2026-01-09 06:23

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/haproxy/include/import/ebtree.h
Line
Count
Source
1
/*
2
 * Elastic Binary Trees - generic macros and structures.
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
22
23
/*
24
  General idea:
25
  -------------
26
  In a radix binary tree, we may have up to 2N-1 nodes for N keys if all of
27
  them are leaves. If we find a way to differentiate intermediate nodes (later
28
  called "nodes") and final nodes (later called "leaves"), and we associate
29
  them by two, it is possible to build sort of a self-contained radix tree with
30
  intermediate nodes always present. It will not be as cheap as the ultree for
31
  optimal cases as shown below, but the optimal case almost never happens :
32
33
  Eg, to store 8, 10, 12, 13, 14 :
34
35
             ultree          this theoretical tree
36
37
               8                   8
38
              / \                 / \
39
             10 12               10 12
40
               /  \                /  \
41
              13  14              12  14
42
                                 / \
43
                                12 13
44
45
   Note that on real-world tests (with a scheduler), is was verified that the
46
   case with data on an intermediate node never happens. This is because the
47
   data spectrum is too large for such coincidences to happen. It would require
48
   for instance that a task has its expiration time at an exact second, with
49
   other tasks sharing that second. This is too rare to try to optimize for it.
50
51
   What is interesting is that the node will only be added above the leaf when
52
   necessary, which implies that it will always remain somewhere above it. So
53
   both the leaf and the node can share the exact value of the leaf, because
54
   when going down the node, the bit mask will be applied to comparisons. So we
55
   are tempted to have one single key shared between the node and the leaf.
56
57
   The bit only serves the nodes, and the dups only serve the leaves. So we can
58
   put a lot of information in common. This results in one single entity with
59
   two branch pointers and two parent pointers, one for the node part, and one
60
   for the leaf part :
61
62
              node's         leaf's
63
              parent         parent
64
                |              |
65
              [node]         [leaf]
66
               / \
67
           left   right
68
         branch   branch
69
70
   The node may very well refer to its leaf counterpart in one of its branches,
71
   indicating that its own leaf is just below it :
72
73
              node's
74
              parent
75
                |
76
              [node]
77
               / \
78
           left  [leaf]
79
         branch
80
81
   Adding keys in such a tree simply consists in inserting nodes between
82
   other nodes and/or leaves :
83
84
                [root]
85
                  |
86
               [node2]
87
                 / \
88
          [leaf1]   [node3]
89
                      / \
90
               [leaf2]   [leaf3]
91
92
   On this diagram, we notice that [node2] and [leaf2] have been pulled away
93
   from each other due to the insertion of [node3], just as if there would be
94
   an elastic between both parts. This elastic-like behaviour gave its name to
95
   the tree : "Elastic Binary Tree", or "EBtree". The entity which associates a
96
   node part and a leaf part will be called an "EB node".
97
98
   We also notice on the diagram that there is a root entity required to attach
99
   the tree. It only contains two branches and there is nothing above it. This
100
   is an "EB root". Some will note that [leaf1] has no [node1]. One property of
101
   the EBtree is that all nodes have their branches filled, and that if a node
102
   has only one branch, it does not need to exist. Here, [leaf1] was added
103
   below [root] and did not need any node.
104
105
   An EB node contains :
106
     - a pointer to the node's parent (node_p)
107
     - a pointer to the leaf's parent (leaf_p)
108
     - two branches pointing to lower nodes or leaves (branches)
109
     - a bit position (bit)
110
     - an optional key.
111
112
   The key here is optional because it's used only during insertion, in order
113
   to classify the nodes. Nothing else in the tree structure requires knowledge
114
   of the key. This makes it possible to write type-agnostic primitives for
115
   everything, and type-specific insertion primitives. This has led to consider
116
   two types of EB nodes. The type-agnostic ones will serve as a header for the
117
   other ones, and will simply be called "struct eb_node". The other ones will
118
   have their type indicated in the structure name. Eg: "struct eb32_node" for
119
   nodes carrying 32 bit keys.
120
121
   We will also node that the two branches in a node serve exactly the same
122
   purpose as an EB root. For this reason, a "struct eb_root" will be used as
123
   well inside the struct eb_node. In order to ease pointer manipulation and
124
   ROOT detection when walking upwards, all the pointers inside an eb_node will
125
   point to the eb_root part of the referenced EB nodes, relying on the same
126
   principle as the linked lists in Linux.
127
128
   Another important point to note, is that when walking inside a tree, it is
129
   very convenient to know where a node is attached in its parent, and what
130
   type of branch it has below it (leaf or node). In order to simplify the
131
   operations and to speed up the processing, it was decided in this specific
132
   implementation to use the lowest bit from the pointer to designate the side
133
   of the upper pointers (left/right) and the type of a branch (leaf/node).
134
   This practise is not mandatory by design, but an implementation-specific
135
   optimisation permitted on all platforms on which data must be aligned. All
136
   known 32 bit platforms align their integers and pointers to 32 bits, leaving
137
   the two lower bits unused. So, we say that the pointers are "tagged". And
138
   since they designate pointers to root parts, we simply call them
139
   "tagged root pointers", or "eb_troot" in the code.
140
141
   Duplicate keys are stored in a special manner. When inserting a key, if
142
   the same one is found, then an incremental binary tree is built at this
143
   place from these keys. This ensures that no special case has to be written
144
   to handle duplicates when walking through the tree or when deleting entries.
145
   It also guarantees that duplicates will be walked in the exact same order
146
   they were inserted. This is very important when trying to achieve fair
147
   processing distribution for instance.
148
149
   Algorithmic complexity can be derived from 3 variables :
150
     - the number of possible different keys in the tree : P
151
     - the number of entries in the tree : N
152
     - the number of duplicates for one key : D
153
154
   Note that this tree is deliberately NOT balanced. For this reason, the worst
155
   case may happen with a small tree (eg: 32 distinct keys of one bit). BUT,
156
   the operations required to manage such data are so much cheap that they make
157
   it worth using it even under such conditions. For instance, a balanced tree
158
   may require only 6 levels to store those 32 keys when this tree will
159
   require 32. But if per-level operations are 5 times cheaper, it wins.
160
161
   Minimal, Maximal and Average times are specified in number of operations.
162
   Minimal is given for best condition, Maximal for worst condition, and the
163
   average is reported for a tree containing random keys. An operation
164
   generally consists in jumping from one node to the other.
165
166
   Complexity :
167
     - lookup              : min=1, max=log(P), avg=log(N)
168
     - insertion from root : min=1, max=log(P), avg=log(N)
169
     - insertion of dups   : min=1, max=log(D), avg=log(D)/2 after lookup
170
     - deletion            : min=1, max=1,      avg=1
171
     - prev/next           : min=1, max=log(P), avg=2 :
172
       N/2 nodes need 1 hop  => 1*N/2
173
       N/4 nodes need 2 hops => 2*N/4
174
       N/8 nodes need 3 hops => 3*N/8
175
       ...
176
       N/x nodes need log(x) hops => log2(x)*N/x
177
       Total cost for all N nodes : sum[i=1..N](log2(i)*N/i) = N*sum[i=1..N](log2(i)/i)
178
       Average cost across N nodes = total / N = sum[i=1..N](log2(i)/i) = 2
179
180
   This design is currently limited to only two branches per node. Most of the
181
   tree descent algorithm would be compatible with more branches (eg: 4, to cut
182
   the height in half), but this would probably require more complex operations
183
   and the deletion algorithm would be problematic.
184
185
   Useful properties :
186
     - a node is always added above the leaf it is tied to, and never can get
187
       below nor in another branch. This implies that leaves directly attached
188
       to the root do not use their node part, which is indicated by a NULL
189
       value in node_p. This also enhances the cache efficiency when walking
190
       down the tree, because when the leaf is reached, its node part will
191
       already have been visited (unless it's the first leaf in the tree).
192
193
     - pointers to lower nodes or leaves are stored in "branch" pointers. Only
194
       the root node may have a NULL in either branch, it is not possible for
195
       other branches. Since the nodes are attached to the left branch of the
196
       root, it is not possible to see a NULL left branch when walking up a
197
       tree. Thus, an empty tree is immediately identified by a NULL left
198
       branch at the root. Conversely, the one and only way to identify the
199
       root node is to check that it right branch is NULL. Note that the
200
       NULL pointer may have a few low-order bits set.
201
202
     - a node connected to its own leaf will have branch[0|1] pointing to
203
       itself, and leaf_p pointing to itself.
204
205
     - a node can never have node_p pointing to itself.
206
207
     - a node is linked in a tree if and only if it has a non-null leaf_p.
208
209
     - a node can never have both branches equal, except for the root which can
210
       have them both NULL.
211
212
     - deletion only applies to leaves. When a leaf is deleted, its parent must
213
       be released too (unless it's the root), and its sibling must attach to
214
       the grand-parent, replacing the parent. Also, when a leaf is deleted,
215
       the node tied to this leaf will be removed and must be released too. If
216
       this node is different from the leaf's parent, the freshly released
217
       leaf's parent will be used to replace the node which must go. A released
218
       node will never be used anymore, so there's no point in tracking it.
219
220
     - the bit index in a node indicates the bit position in the key which is
221
       represented by the branches. That means that a node with (bit == 0) is
222
       just above two leaves. Negative bit values are used to build a duplicate
223
       tree. The first node above two identical leaves gets (bit == -1). This
224
       value logarithmically decreases as the duplicate tree grows. During
225
       duplicate insertion, a node is inserted above the highest bit value (the
226
       lowest absolute value) in the tree during the right-sided walk. If bit
227
       -1 is not encountered (highest < -1), we insert above last leaf.
228
       Otherwise, we insert above the node with the highest value which was not
229
       equal to the one of its parent + 1.
230
231
     - the "eb_next" primitive walks from left to right, which means from lower
232
       to higher keys. It returns duplicates in the order they were inserted.
233
       The "eb_first" primitive returns the left-most entry.
234
235
     - the "eb_prev" primitive walks from right to left, which means from
236
       higher to lower keys. It returns duplicates in the opposite order they
237
       were inserted. The "eb_last" primitive returns the right-most entry.
238
239
     - a tree which has 1 in the lower bit of its root's right branch is a
240
       tree with unique nodes. This means that when a node is inserted with
241
       a key which already exists will not be inserted, and the previous
242
       entry will be returned.
243
244
 */
245
246
#ifndef _EBTREE_H
247
#define _EBTREE_H
248
249
#include <stddef.h>
250
#include <stdlib.h>
251
#include <import/ebtree-t.h>
252
#include <haproxy/api.h>
253
254
/* returns clz from 7 to 0 for 0x01 to 0xFF. Returns 7 for 0 as well. */
255
static inline unsigned int clz8(unsigned char c)
256
0
{
257
0
  unsigned int r = 4;
258
0
259
0
  if (c & 0xf0) {
260
0
    r = 0;
261
0
    c >>= 4;
262
0
  }
263
0
  return r + ((0x000055afU >> (c * 2)) & 0x3);
264
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:clz8
Unexecuted instantiation: cfgparse.c:clz8
Unexecuted instantiation: chunk.c:clz8
Unexecuted instantiation: cli.c:clz8
Unexecuted instantiation: clock.c:clz8
Unexecuted instantiation: connection.c:clz8
Unexecuted instantiation: debug.c:clz8
Unexecuted instantiation: dynbuf.c:clz8
Unexecuted instantiation: ebtree.c:clz8
Unexecuted instantiation: errors.c:clz8
Unexecuted instantiation: fd.c:clz8
Unexecuted instantiation: filters.c:clz8
Unexecuted instantiation: flt_http_comp.c:clz8
Unexecuted instantiation: freq_ctr.c:clz8
Unexecuted instantiation: frontend.c:clz8
Unexecuted instantiation: haproxy.c:clz8
Unexecuted instantiation: http.c:clz8
Unexecuted instantiation: http_ana.c:clz8
Unexecuted instantiation: http_ext.c:clz8
Unexecuted instantiation: http_htx.c:clz8
Unexecuted instantiation: http_rules.c:clz8
Unexecuted instantiation: lb_chash.c:clz8
Unexecuted instantiation: lb_fas.c:clz8
Unexecuted instantiation: lb_fwlc.c:clz8
Unexecuted instantiation: lb_fwrr.c:clz8
Unexecuted instantiation: lb_map.c:clz8
Unexecuted instantiation: limits.c:clz8
Unexecuted instantiation: listener.c:clz8
Unexecuted instantiation: log.c:clz8
Unexecuted instantiation: mailers.c:clz8
Unexecuted instantiation: mworker.c:clz8
Unexecuted instantiation: peers.c:clz8
Unexecuted instantiation: pool.c:clz8
Unexecuted instantiation: proto_rhttp.c:clz8
Unexecuted instantiation: proto_sockpair.c:clz8
Unexecuted instantiation: protocol.c:clz8
Unexecuted instantiation: proxy.c:clz8
Unexecuted instantiation: queue.c:clz8
Unexecuted instantiation: regex.c:clz8
Unexecuted instantiation: resolvers.c:clz8
Unexecuted instantiation: ring.c:clz8
Unexecuted instantiation: sample.c:clz8
Unexecuted instantiation: server.c:clz8
Unexecuted instantiation: session.c:clz8
Unexecuted instantiation: signal.c:clz8
Unexecuted instantiation: sink.c:clz8
Unexecuted instantiation: sock.c:clz8
Unexecuted instantiation: sock_inet.c:clz8
Unexecuted instantiation: stats-html.c:clz8
Unexecuted instantiation: stats.c:clz8
Unexecuted instantiation: stconn.c:clz8
Unexecuted instantiation: stick_table.c:clz8
Unexecuted instantiation: stream.c:clz8
Unexecuted instantiation: systemd.c:clz8
Unexecuted instantiation: task.c:clz8
Unexecuted instantiation: tcp_rules.c:clz8
Unexecuted instantiation: tcpcheck.c:clz8
Unexecuted instantiation: thread.c:clz8
Unexecuted instantiation: tools.c:clz8
Unexecuted instantiation: trace.c:clz8
Unexecuted instantiation: vars.c:clz8
Unexecuted instantiation: acl.c:clz8
Unexecuted instantiation: action.c:clz8
Unexecuted instantiation: activity.c:clz8
Unexecuted instantiation: applet.c:clz8
Unexecuted instantiation: arg.c:clz8
Unexecuted instantiation: backend.c:clz8
Unexecuted instantiation: cache.c:clz8
Unexecuted instantiation: cfgcond.c:clz8
Unexecuted instantiation: cfgparse-global.c:clz8
Unexecuted instantiation: cfgparse-listen.c:clz8
Unexecuted instantiation: channel.c:clz8
Unexecuted instantiation: check.c:clz8
Unexecuted instantiation: compression.c:clz8
Unexecuted instantiation: counters.c:clz8
Unexecuted instantiation: dgram.c:clz8
Unexecuted instantiation: dict.c:clz8
Unexecuted instantiation: dns.c:clz8
Unexecuted instantiation: dns_ring.c:clz8
Unexecuted instantiation: eb32tree.c:clz8
Unexecuted instantiation: eb64tree.c:clz8
Unexecuted instantiation: ebimtree.c:clz8
Unexecuted instantiation: ebistree.c:clz8
Unexecuted instantiation: ebmbtree.c:clz8
Unexecuted instantiation: ebsttree.c:clz8
Unexecuted instantiation: event_hdl.c:clz8
Unexecuted instantiation: extcheck.c:clz8
Unexecuted instantiation: fcgi-app.c:clz8
Unexecuted instantiation: fix.c:clz8
Unexecuted instantiation: guid.c:clz8
Unexecuted instantiation: h1.c:clz8
Unexecuted instantiation: http_fetch.c:clz8
Unexecuted instantiation: mqtt.c:clz8
Unexecuted instantiation: mux_spop.c:clz8
Unexecuted instantiation: pattern.c:clz8
Unexecuted instantiation: payload.c:clz8
Unexecuted instantiation: proto_tcp.c:clz8
Unexecuted instantiation: shctx.c:clz8
Unexecuted instantiation: stats-file.c:clz8
Unexecuted instantiation: stats-json.c:clz8
Unexecuted instantiation: stats-proxy.c:clz8
Unexecuted instantiation: flt_spoe.c:clz8
Unexecuted instantiation: h1_htx.c:clz8
Unexecuted instantiation: lru.c:clz8
265
266
/* FLSNZ: find last set bit for non-zero value. "Last" here means the highest
267
 * one. It returns a value from 1 to 32 for 1<<0 to 1<<31.
268
 */
269
270
#if (defined(__i386__) || defined(__x86_64__)) && !defined(__atom__)
271
/* DO NOT USE ON ATOM! The instruction is emulated and is several times slower
272
 * than doing the math by hand.
273
 */
274
static inline unsigned int flsnz32(unsigned int x)
275
0
{
276
0
  unsigned int r;
277
0
  __asm__("bsrl %1,%0\n"
278
0
          : "=r" (r) : "rm" (x));
279
0
  return r + 1;
280
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:flsnz32
Unexecuted instantiation: cfgparse.c:flsnz32
Unexecuted instantiation: chunk.c:flsnz32
Unexecuted instantiation: cli.c:flsnz32
Unexecuted instantiation: clock.c:flsnz32
Unexecuted instantiation: connection.c:flsnz32
Unexecuted instantiation: debug.c:flsnz32
Unexecuted instantiation: dynbuf.c:flsnz32
Unexecuted instantiation: ebtree.c:flsnz32
Unexecuted instantiation: errors.c:flsnz32
Unexecuted instantiation: fd.c:flsnz32
Unexecuted instantiation: filters.c:flsnz32
Unexecuted instantiation: flt_http_comp.c:flsnz32
Unexecuted instantiation: freq_ctr.c:flsnz32
Unexecuted instantiation: frontend.c:flsnz32
Unexecuted instantiation: haproxy.c:flsnz32
Unexecuted instantiation: http.c:flsnz32
Unexecuted instantiation: http_ana.c:flsnz32
Unexecuted instantiation: http_ext.c:flsnz32
Unexecuted instantiation: http_htx.c:flsnz32
Unexecuted instantiation: http_rules.c:flsnz32
Unexecuted instantiation: lb_chash.c:flsnz32
Unexecuted instantiation: lb_fas.c:flsnz32
Unexecuted instantiation: lb_fwlc.c:flsnz32
Unexecuted instantiation: lb_fwrr.c:flsnz32
Unexecuted instantiation: lb_map.c:flsnz32
Unexecuted instantiation: limits.c:flsnz32
Unexecuted instantiation: listener.c:flsnz32
Unexecuted instantiation: log.c:flsnz32
Unexecuted instantiation: mailers.c:flsnz32
Unexecuted instantiation: mworker.c:flsnz32
Unexecuted instantiation: peers.c:flsnz32
Unexecuted instantiation: pool.c:flsnz32
Unexecuted instantiation: proto_rhttp.c:flsnz32
Unexecuted instantiation: proto_sockpair.c:flsnz32
Unexecuted instantiation: protocol.c:flsnz32
Unexecuted instantiation: proxy.c:flsnz32
Unexecuted instantiation: queue.c:flsnz32
Unexecuted instantiation: regex.c:flsnz32
Unexecuted instantiation: resolvers.c:flsnz32
Unexecuted instantiation: ring.c:flsnz32
Unexecuted instantiation: sample.c:flsnz32
Unexecuted instantiation: server.c:flsnz32
Unexecuted instantiation: session.c:flsnz32
Unexecuted instantiation: signal.c:flsnz32
Unexecuted instantiation: sink.c:flsnz32
Unexecuted instantiation: sock.c:flsnz32
Unexecuted instantiation: sock_inet.c:flsnz32
Unexecuted instantiation: stats-html.c:flsnz32
Unexecuted instantiation: stats.c:flsnz32
Unexecuted instantiation: stconn.c:flsnz32
Unexecuted instantiation: stick_table.c:flsnz32
Unexecuted instantiation: stream.c:flsnz32
Unexecuted instantiation: systemd.c:flsnz32
Unexecuted instantiation: task.c:flsnz32
Unexecuted instantiation: tcp_rules.c:flsnz32
Unexecuted instantiation: tcpcheck.c:flsnz32
Unexecuted instantiation: thread.c:flsnz32
Unexecuted instantiation: tools.c:flsnz32
Unexecuted instantiation: trace.c:flsnz32
Unexecuted instantiation: vars.c:flsnz32
Unexecuted instantiation: acl.c:flsnz32
Unexecuted instantiation: action.c:flsnz32
Unexecuted instantiation: activity.c:flsnz32
Unexecuted instantiation: applet.c:flsnz32
Unexecuted instantiation: arg.c:flsnz32
Unexecuted instantiation: backend.c:flsnz32
Unexecuted instantiation: cache.c:flsnz32
Unexecuted instantiation: cfgcond.c:flsnz32
Unexecuted instantiation: cfgparse-global.c:flsnz32
Unexecuted instantiation: cfgparse-listen.c:flsnz32
Unexecuted instantiation: channel.c:flsnz32
Unexecuted instantiation: check.c:flsnz32
Unexecuted instantiation: compression.c:flsnz32
Unexecuted instantiation: counters.c:flsnz32
Unexecuted instantiation: dgram.c:flsnz32
Unexecuted instantiation: dict.c:flsnz32
Unexecuted instantiation: dns.c:flsnz32
Unexecuted instantiation: dns_ring.c:flsnz32
Unexecuted instantiation: eb32tree.c:flsnz32
Unexecuted instantiation: eb64tree.c:flsnz32
Unexecuted instantiation: ebimtree.c:flsnz32
Unexecuted instantiation: ebistree.c:flsnz32
Unexecuted instantiation: ebmbtree.c:flsnz32
Unexecuted instantiation: ebsttree.c:flsnz32
Unexecuted instantiation: event_hdl.c:flsnz32
Unexecuted instantiation: extcheck.c:flsnz32
Unexecuted instantiation: fcgi-app.c:flsnz32
Unexecuted instantiation: fix.c:flsnz32
Unexecuted instantiation: guid.c:flsnz32
Unexecuted instantiation: h1.c:flsnz32
Unexecuted instantiation: http_fetch.c:flsnz32
Unexecuted instantiation: mqtt.c:flsnz32
Unexecuted instantiation: mux_spop.c:flsnz32
Unexecuted instantiation: pattern.c:flsnz32
Unexecuted instantiation: payload.c:flsnz32
Unexecuted instantiation: proto_tcp.c:flsnz32
Unexecuted instantiation: shctx.c:flsnz32
Unexecuted instantiation: stats-file.c:flsnz32
Unexecuted instantiation: stats-json.c:flsnz32
Unexecuted instantiation: stats-proxy.c:flsnz32
Unexecuted instantiation: flt_spoe.c:flsnz32
Unexecuted instantiation: h1_htx.c:flsnz32
Unexecuted instantiation: lru.c:flsnz32
281
0
#define flsnz32(x) flsnz32(x)
282
283
# if defined(__x86_64__)
284
static inline unsigned int flsnz64(unsigned long long x)
285
0
{
286
0
  unsigned long long r;
287
0
  __asm__("bsrq %1,%0\n"
288
0
          : "=r" (r) : "rm" (x));
289
0
  return r + 1;
290
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:flsnz64
Unexecuted instantiation: cfgparse.c:flsnz64
Unexecuted instantiation: chunk.c:flsnz64
Unexecuted instantiation: cli.c:flsnz64
Unexecuted instantiation: clock.c:flsnz64
Unexecuted instantiation: connection.c:flsnz64
Unexecuted instantiation: debug.c:flsnz64
Unexecuted instantiation: dynbuf.c:flsnz64
Unexecuted instantiation: ebtree.c:flsnz64
Unexecuted instantiation: errors.c:flsnz64
Unexecuted instantiation: fd.c:flsnz64
Unexecuted instantiation: filters.c:flsnz64
Unexecuted instantiation: flt_http_comp.c:flsnz64
Unexecuted instantiation: freq_ctr.c:flsnz64
Unexecuted instantiation: frontend.c:flsnz64
Unexecuted instantiation: haproxy.c:flsnz64
Unexecuted instantiation: http.c:flsnz64
Unexecuted instantiation: http_ana.c:flsnz64
Unexecuted instantiation: http_ext.c:flsnz64
Unexecuted instantiation: http_htx.c:flsnz64
Unexecuted instantiation: http_rules.c:flsnz64
Unexecuted instantiation: lb_chash.c:flsnz64
Unexecuted instantiation: lb_fas.c:flsnz64
Unexecuted instantiation: lb_fwlc.c:flsnz64
Unexecuted instantiation: lb_fwrr.c:flsnz64
Unexecuted instantiation: lb_map.c:flsnz64
Unexecuted instantiation: limits.c:flsnz64
Unexecuted instantiation: listener.c:flsnz64
Unexecuted instantiation: log.c:flsnz64
Unexecuted instantiation: mailers.c:flsnz64
Unexecuted instantiation: mworker.c:flsnz64
Unexecuted instantiation: peers.c:flsnz64
Unexecuted instantiation: pool.c:flsnz64
Unexecuted instantiation: proto_rhttp.c:flsnz64
Unexecuted instantiation: proto_sockpair.c:flsnz64
Unexecuted instantiation: protocol.c:flsnz64
Unexecuted instantiation: proxy.c:flsnz64
Unexecuted instantiation: queue.c:flsnz64
Unexecuted instantiation: regex.c:flsnz64
Unexecuted instantiation: resolvers.c:flsnz64
Unexecuted instantiation: ring.c:flsnz64
Unexecuted instantiation: sample.c:flsnz64
Unexecuted instantiation: server.c:flsnz64
Unexecuted instantiation: session.c:flsnz64
Unexecuted instantiation: signal.c:flsnz64
Unexecuted instantiation: sink.c:flsnz64
Unexecuted instantiation: sock.c:flsnz64
Unexecuted instantiation: sock_inet.c:flsnz64
Unexecuted instantiation: stats-html.c:flsnz64
Unexecuted instantiation: stats.c:flsnz64
Unexecuted instantiation: stconn.c:flsnz64
Unexecuted instantiation: stick_table.c:flsnz64
Unexecuted instantiation: stream.c:flsnz64
Unexecuted instantiation: systemd.c:flsnz64
Unexecuted instantiation: task.c:flsnz64
Unexecuted instantiation: tcp_rules.c:flsnz64
Unexecuted instantiation: tcpcheck.c:flsnz64
Unexecuted instantiation: thread.c:flsnz64
Unexecuted instantiation: tools.c:flsnz64
Unexecuted instantiation: trace.c:flsnz64
Unexecuted instantiation: vars.c:flsnz64
Unexecuted instantiation: acl.c:flsnz64
Unexecuted instantiation: action.c:flsnz64
Unexecuted instantiation: activity.c:flsnz64
Unexecuted instantiation: applet.c:flsnz64
Unexecuted instantiation: arg.c:flsnz64
Unexecuted instantiation: backend.c:flsnz64
Unexecuted instantiation: cache.c:flsnz64
Unexecuted instantiation: cfgcond.c:flsnz64
Unexecuted instantiation: cfgparse-global.c:flsnz64
Unexecuted instantiation: cfgparse-listen.c:flsnz64
Unexecuted instantiation: channel.c:flsnz64
Unexecuted instantiation: check.c:flsnz64
Unexecuted instantiation: compression.c:flsnz64
Unexecuted instantiation: counters.c:flsnz64
Unexecuted instantiation: dgram.c:flsnz64
Unexecuted instantiation: dict.c:flsnz64
Unexecuted instantiation: dns.c:flsnz64
Unexecuted instantiation: dns_ring.c:flsnz64
Unexecuted instantiation: eb32tree.c:flsnz64
Unexecuted instantiation: eb64tree.c:flsnz64
Unexecuted instantiation: ebimtree.c:flsnz64
Unexecuted instantiation: ebistree.c:flsnz64
Unexecuted instantiation: ebmbtree.c:flsnz64
Unexecuted instantiation: ebsttree.c:flsnz64
Unexecuted instantiation: event_hdl.c:flsnz64
Unexecuted instantiation: extcheck.c:flsnz64
Unexecuted instantiation: fcgi-app.c:flsnz64
Unexecuted instantiation: fix.c:flsnz64
Unexecuted instantiation: guid.c:flsnz64
Unexecuted instantiation: h1.c:flsnz64
Unexecuted instantiation: http_fetch.c:flsnz64
Unexecuted instantiation: mqtt.c:flsnz64
Unexecuted instantiation: mux_spop.c:flsnz64
Unexecuted instantiation: pattern.c:flsnz64
Unexecuted instantiation: payload.c:flsnz64
Unexecuted instantiation: proto_tcp.c:flsnz64
Unexecuted instantiation: shctx.c:flsnz64
Unexecuted instantiation: stats-file.c:flsnz64
Unexecuted instantiation: stats-json.c:flsnz64
Unexecuted instantiation: stats-proxy.c:flsnz64
Unexecuted instantiation: flt_spoe.c:flsnz64
Unexecuted instantiation: h1_htx.c:flsnz64
Unexecuted instantiation: lru.c:flsnz64
291
0
#  define flsnz64(x) flsnz64(x)
292
# endif
293
294
#elif !defined(__atom__) && defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)))
295
/* gcc >= 4.2 brings __builtin_clz() and __builtin_clzl(), usable for non-x86 */
296
297
static inline unsigned int flsnz32(unsigned int x)
298
{
299
  return 32 - __builtin_clz(x);
300
}
301
# define flsnz32(x) flsnz32(x)
302
303
# if defined(__SIZEOF_LONG__) && (__SIZEOF_LONG__ > 4)
304
static inline unsigned int flsnz64(unsigned long x)
305
{
306
  return (__SIZEOF_LONG__ * 8) - __builtin_clzl(x);
307
}
308
#  define flsnz64(x) flsnz64(x)
309
# endif
310
311
#endif /* end of arch-specific implementations */
312
313
/*** Fallback versions below ***/
314
315
#ifndef flsnz8
316
# if defined(flsnz32)
317
0
#  define flsnz8(x) flsnz32((unsigned char)x)
318
# else
319
static inline unsigned int flsnz8(unsigned int x)
320
{
321
  unsigned int ret = 0;
322
  if (x >> 4) { x >>= 4; ret += 4; }
323
  return ret + ((0xFFFFAA50U >> (x << 1)) & 3) + 1;
324
}
325
#  define flsnz8(x) flsnz8(x)
326
# endif
327
#endif
328
329
#ifndef flsnz32
330
# define flsnz32(___a) ({ \
331
  register unsigned int ___x, ___bits = 0; \
332
  ___x = (___a); \
333
  if (___x & 0xffff0000) { ___x &= 0xffff0000; ___bits += 16;} \
334
  if (___x & 0xff00ff00) { ___x &= 0xff00ff00; ___bits +=  8;} \
335
  if (___x & 0xf0f0f0f0) { ___x &= 0xf0f0f0f0; ___bits +=  4;} \
336
  if (___x & 0xcccccccc) { ___x &= 0xcccccccc; ___bits +=  2;} \
337
  if (___x & 0xaaaaaaaa) { ___x &= 0xaaaaaaaa; ___bits +=  1;} \
338
  ___bits + 1; \
339
  })
340
#endif
341
342
#ifndef flsnz64
343
static inline unsigned int flsnz64(unsigned long long x)
344
{
345
  unsigned int h;
346
  unsigned int bits = 32;
347
348
  h = x >> 32;
349
  if (!h) {
350
    h = x;
351
    bits = 0;
352
  }
353
  return flsnz32(h) + bits;
354
}
355
# define flsnz64(x) flsnz64(x)
356
#endif
357
358
#ifndef flsnz_long
359
0
# define flsnz_long(x) ((sizeof(long) > 4) ? flsnz64(x) : flsnz32(x))
360
#endif
361
362
#ifndef flsnz
363
0
# define flsnz(x) ((sizeof(x) > 4) ? flsnz64(x) : (sizeof(x) > 1) ? flsnz32(x) : flsnz8(x))
364
#endif
365
366
0
#define fls64(x) flsnz64(x)
367
#define fls_auto(x) ((x) ? flsnz(x) : 0)
368
369
/* offsetof() is provided as a builtin starting with gcc-4.1 */
370
#ifndef offsetof
371
# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
372
#  define offsetof(type, field)  __builtin_offsetof(type, field)
373
# else
374
#  define offsetof(type, field) ((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))
375
# endif
376
#endif
377
378
/* Linux-like "container_of". It returns a pointer to the structure of type
379
 * <type> which has its member <name> stored at address <ptr>.
380
 */
381
#ifndef container_of
382
#define container_of(ptr, type, name) ((type *)(((char *)(ptr)) - offsetof(type, name)))
383
#endif
384
385
/* returns a pointer to the structure of type <type> which has its member <name>
386
 * stored at address <ptr>, unless <ptr> is 0, in which case 0 is returned.
387
 */
388
#ifndef container_of_safe
389
#define container_of_safe(ptr, type, name) \
390
  ({ void *__p = (ptr); \
391
     __p ? container_of(__p, type, name) : (type *)0; \
392
  })
393
#endif
394
395
/* Return the structure of type <type> whose member <member> points to <ptr> */
396
#define eb_entry(ptr, type, member) container_of(ptr, type, member)
397
398
/***************************************\
399
 * Private functions. Not for end-user *
400
\***************************************/
401
402
/* Converts a root pointer to its equivalent eb_troot_t pointer,
403
 * ready to be stored in ->branch[], leaf_p or node_p. NULL is not
404
 * conserved. To be used with EB_LEAF, EB_NODE, EB_LEFT or EB_RGHT in <tag>.
405
 */
406
static inline eb_troot_t *eb_dotag(const struct eb_root *root, const int tag)
407
0
{
408
0
  return (eb_troot_t *)((void *)root + tag);
409
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_dotag
Unexecuted instantiation: cfgparse.c:eb_dotag
Unexecuted instantiation: chunk.c:eb_dotag
Unexecuted instantiation: cli.c:eb_dotag
Unexecuted instantiation: clock.c:eb_dotag
Unexecuted instantiation: connection.c:eb_dotag
Unexecuted instantiation: debug.c:eb_dotag
Unexecuted instantiation: dynbuf.c:eb_dotag
Unexecuted instantiation: ebtree.c:eb_dotag
Unexecuted instantiation: errors.c:eb_dotag
Unexecuted instantiation: fd.c:eb_dotag
Unexecuted instantiation: filters.c:eb_dotag
Unexecuted instantiation: flt_http_comp.c:eb_dotag
Unexecuted instantiation: freq_ctr.c:eb_dotag
Unexecuted instantiation: frontend.c:eb_dotag
Unexecuted instantiation: haproxy.c:eb_dotag
Unexecuted instantiation: http.c:eb_dotag
Unexecuted instantiation: http_ana.c:eb_dotag
Unexecuted instantiation: http_ext.c:eb_dotag
Unexecuted instantiation: http_htx.c:eb_dotag
Unexecuted instantiation: http_rules.c:eb_dotag
Unexecuted instantiation: lb_chash.c:eb_dotag
Unexecuted instantiation: lb_fas.c:eb_dotag
Unexecuted instantiation: lb_fwlc.c:eb_dotag
Unexecuted instantiation: lb_fwrr.c:eb_dotag
Unexecuted instantiation: lb_map.c:eb_dotag
Unexecuted instantiation: limits.c:eb_dotag
Unexecuted instantiation: listener.c:eb_dotag
Unexecuted instantiation: log.c:eb_dotag
Unexecuted instantiation: mailers.c:eb_dotag
Unexecuted instantiation: mworker.c:eb_dotag
Unexecuted instantiation: peers.c:eb_dotag
Unexecuted instantiation: pool.c:eb_dotag
Unexecuted instantiation: proto_rhttp.c:eb_dotag
Unexecuted instantiation: proto_sockpair.c:eb_dotag
Unexecuted instantiation: protocol.c:eb_dotag
Unexecuted instantiation: proxy.c:eb_dotag
Unexecuted instantiation: queue.c:eb_dotag
Unexecuted instantiation: regex.c:eb_dotag
Unexecuted instantiation: resolvers.c:eb_dotag
Unexecuted instantiation: ring.c:eb_dotag
Unexecuted instantiation: sample.c:eb_dotag
Unexecuted instantiation: server.c:eb_dotag
Unexecuted instantiation: session.c:eb_dotag
Unexecuted instantiation: signal.c:eb_dotag
Unexecuted instantiation: sink.c:eb_dotag
Unexecuted instantiation: sock.c:eb_dotag
Unexecuted instantiation: sock_inet.c:eb_dotag
Unexecuted instantiation: stats-html.c:eb_dotag
Unexecuted instantiation: stats.c:eb_dotag
Unexecuted instantiation: stconn.c:eb_dotag
Unexecuted instantiation: stick_table.c:eb_dotag
Unexecuted instantiation: stream.c:eb_dotag
Unexecuted instantiation: systemd.c:eb_dotag
Unexecuted instantiation: task.c:eb_dotag
Unexecuted instantiation: tcp_rules.c:eb_dotag
Unexecuted instantiation: tcpcheck.c:eb_dotag
Unexecuted instantiation: thread.c:eb_dotag
Unexecuted instantiation: tools.c:eb_dotag
Unexecuted instantiation: trace.c:eb_dotag
Unexecuted instantiation: vars.c:eb_dotag
Unexecuted instantiation: acl.c:eb_dotag
Unexecuted instantiation: action.c:eb_dotag
Unexecuted instantiation: activity.c:eb_dotag
Unexecuted instantiation: applet.c:eb_dotag
Unexecuted instantiation: arg.c:eb_dotag
Unexecuted instantiation: backend.c:eb_dotag
Unexecuted instantiation: cache.c:eb_dotag
Unexecuted instantiation: cfgcond.c:eb_dotag
Unexecuted instantiation: cfgparse-global.c:eb_dotag
Unexecuted instantiation: cfgparse-listen.c:eb_dotag
Unexecuted instantiation: channel.c:eb_dotag
Unexecuted instantiation: check.c:eb_dotag
Unexecuted instantiation: compression.c:eb_dotag
Unexecuted instantiation: counters.c:eb_dotag
Unexecuted instantiation: dgram.c:eb_dotag
Unexecuted instantiation: dict.c:eb_dotag
Unexecuted instantiation: dns.c:eb_dotag
Unexecuted instantiation: dns_ring.c:eb_dotag
Unexecuted instantiation: eb32tree.c:eb_dotag
Unexecuted instantiation: eb64tree.c:eb_dotag
Unexecuted instantiation: ebimtree.c:eb_dotag
Unexecuted instantiation: ebistree.c:eb_dotag
Unexecuted instantiation: ebmbtree.c:eb_dotag
Unexecuted instantiation: ebsttree.c:eb_dotag
Unexecuted instantiation: event_hdl.c:eb_dotag
Unexecuted instantiation: extcheck.c:eb_dotag
Unexecuted instantiation: fcgi-app.c:eb_dotag
Unexecuted instantiation: fix.c:eb_dotag
Unexecuted instantiation: guid.c:eb_dotag
Unexecuted instantiation: h1.c:eb_dotag
Unexecuted instantiation: http_fetch.c:eb_dotag
Unexecuted instantiation: mqtt.c:eb_dotag
Unexecuted instantiation: mux_spop.c:eb_dotag
Unexecuted instantiation: pattern.c:eb_dotag
Unexecuted instantiation: payload.c:eb_dotag
Unexecuted instantiation: proto_tcp.c:eb_dotag
Unexecuted instantiation: shctx.c:eb_dotag
Unexecuted instantiation: stats-file.c:eb_dotag
Unexecuted instantiation: stats-json.c:eb_dotag
Unexecuted instantiation: stats-proxy.c:eb_dotag
Unexecuted instantiation: flt_spoe.c:eb_dotag
Unexecuted instantiation: h1_htx.c:eb_dotag
Unexecuted instantiation: lru.c:eb_dotag
410
411
/* Converts an eb_troot_t pointer pointer to its equivalent eb_root pointer,
412
 * for use with pointers from ->branch[], leaf_p or node_p. NULL is conserved
413
 * as long as the tree is not corrupted. To be used with EB_LEAF, EB_NODE,
414
 * EB_LEFT or EB_RGHT in <tag>.
415
 */
416
static inline struct eb_root *eb_untag(const eb_troot_t *troot, const int tag)
417
0
{
418
0
  return (struct eb_root *)((void *)troot - tag);
419
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_untag
Unexecuted instantiation: cfgparse.c:eb_untag
Unexecuted instantiation: chunk.c:eb_untag
Unexecuted instantiation: cli.c:eb_untag
Unexecuted instantiation: clock.c:eb_untag
Unexecuted instantiation: connection.c:eb_untag
Unexecuted instantiation: debug.c:eb_untag
Unexecuted instantiation: dynbuf.c:eb_untag
Unexecuted instantiation: ebtree.c:eb_untag
Unexecuted instantiation: errors.c:eb_untag
Unexecuted instantiation: fd.c:eb_untag
Unexecuted instantiation: filters.c:eb_untag
Unexecuted instantiation: flt_http_comp.c:eb_untag
Unexecuted instantiation: freq_ctr.c:eb_untag
Unexecuted instantiation: frontend.c:eb_untag
Unexecuted instantiation: haproxy.c:eb_untag
Unexecuted instantiation: http.c:eb_untag
Unexecuted instantiation: http_ana.c:eb_untag
Unexecuted instantiation: http_ext.c:eb_untag
Unexecuted instantiation: http_htx.c:eb_untag
Unexecuted instantiation: http_rules.c:eb_untag
Unexecuted instantiation: lb_chash.c:eb_untag
Unexecuted instantiation: lb_fas.c:eb_untag
Unexecuted instantiation: lb_fwlc.c:eb_untag
Unexecuted instantiation: lb_fwrr.c:eb_untag
Unexecuted instantiation: lb_map.c:eb_untag
Unexecuted instantiation: limits.c:eb_untag
Unexecuted instantiation: listener.c:eb_untag
Unexecuted instantiation: log.c:eb_untag
Unexecuted instantiation: mailers.c:eb_untag
Unexecuted instantiation: mworker.c:eb_untag
Unexecuted instantiation: peers.c:eb_untag
Unexecuted instantiation: pool.c:eb_untag
Unexecuted instantiation: proto_rhttp.c:eb_untag
Unexecuted instantiation: proto_sockpair.c:eb_untag
Unexecuted instantiation: protocol.c:eb_untag
Unexecuted instantiation: proxy.c:eb_untag
Unexecuted instantiation: queue.c:eb_untag
Unexecuted instantiation: regex.c:eb_untag
Unexecuted instantiation: resolvers.c:eb_untag
Unexecuted instantiation: ring.c:eb_untag
Unexecuted instantiation: sample.c:eb_untag
Unexecuted instantiation: server.c:eb_untag
Unexecuted instantiation: session.c:eb_untag
Unexecuted instantiation: signal.c:eb_untag
Unexecuted instantiation: sink.c:eb_untag
Unexecuted instantiation: sock.c:eb_untag
Unexecuted instantiation: sock_inet.c:eb_untag
Unexecuted instantiation: stats-html.c:eb_untag
Unexecuted instantiation: stats.c:eb_untag
Unexecuted instantiation: stconn.c:eb_untag
Unexecuted instantiation: stick_table.c:eb_untag
Unexecuted instantiation: stream.c:eb_untag
Unexecuted instantiation: systemd.c:eb_untag
Unexecuted instantiation: task.c:eb_untag
Unexecuted instantiation: tcp_rules.c:eb_untag
Unexecuted instantiation: tcpcheck.c:eb_untag
Unexecuted instantiation: thread.c:eb_untag
Unexecuted instantiation: tools.c:eb_untag
Unexecuted instantiation: trace.c:eb_untag
Unexecuted instantiation: vars.c:eb_untag
Unexecuted instantiation: acl.c:eb_untag
Unexecuted instantiation: action.c:eb_untag
Unexecuted instantiation: activity.c:eb_untag
Unexecuted instantiation: applet.c:eb_untag
Unexecuted instantiation: arg.c:eb_untag
Unexecuted instantiation: backend.c:eb_untag
Unexecuted instantiation: cache.c:eb_untag
Unexecuted instantiation: cfgcond.c:eb_untag
Unexecuted instantiation: cfgparse-global.c:eb_untag
Unexecuted instantiation: cfgparse-listen.c:eb_untag
Unexecuted instantiation: channel.c:eb_untag
Unexecuted instantiation: check.c:eb_untag
Unexecuted instantiation: compression.c:eb_untag
Unexecuted instantiation: counters.c:eb_untag
Unexecuted instantiation: dgram.c:eb_untag
Unexecuted instantiation: dict.c:eb_untag
Unexecuted instantiation: dns.c:eb_untag
Unexecuted instantiation: dns_ring.c:eb_untag
Unexecuted instantiation: eb32tree.c:eb_untag
Unexecuted instantiation: eb64tree.c:eb_untag
Unexecuted instantiation: ebimtree.c:eb_untag
Unexecuted instantiation: ebistree.c:eb_untag
Unexecuted instantiation: ebmbtree.c:eb_untag
Unexecuted instantiation: ebsttree.c:eb_untag
Unexecuted instantiation: event_hdl.c:eb_untag
Unexecuted instantiation: extcheck.c:eb_untag
Unexecuted instantiation: fcgi-app.c:eb_untag
Unexecuted instantiation: fix.c:eb_untag
Unexecuted instantiation: guid.c:eb_untag
Unexecuted instantiation: h1.c:eb_untag
Unexecuted instantiation: http_fetch.c:eb_untag
Unexecuted instantiation: mqtt.c:eb_untag
Unexecuted instantiation: mux_spop.c:eb_untag
Unexecuted instantiation: pattern.c:eb_untag
Unexecuted instantiation: payload.c:eb_untag
Unexecuted instantiation: proto_tcp.c:eb_untag
Unexecuted instantiation: shctx.c:eb_untag
Unexecuted instantiation: stats-file.c:eb_untag
Unexecuted instantiation: stats-json.c:eb_untag
Unexecuted instantiation: stats-proxy.c:eb_untag
Unexecuted instantiation: flt_spoe.c:eb_untag
Unexecuted instantiation: h1_htx.c:eb_untag
Unexecuted instantiation: lru.c:eb_untag
420
421
/* returns the tag associated with an eb_troot_t pointer */
422
static inline int eb_gettag(eb_troot_t *troot)
423
0
{
424
0
  return (unsigned long)troot & 1;
425
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_gettag
Unexecuted instantiation: cfgparse.c:eb_gettag
Unexecuted instantiation: chunk.c:eb_gettag
Unexecuted instantiation: cli.c:eb_gettag
Unexecuted instantiation: clock.c:eb_gettag
Unexecuted instantiation: connection.c:eb_gettag
Unexecuted instantiation: debug.c:eb_gettag
Unexecuted instantiation: dynbuf.c:eb_gettag
Unexecuted instantiation: ebtree.c:eb_gettag
Unexecuted instantiation: errors.c:eb_gettag
Unexecuted instantiation: fd.c:eb_gettag
Unexecuted instantiation: filters.c:eb_gettag
Unexecuted instantiation: flt_http_comp.c:eb_gettag
Unexecuted instantiation: freq_ctr.c:eb_gettag
Unexecuted instantiation: frontend.c:eb_gettag
Unexecuted instantiation: haproxy.c:eb_gettag
Unexecuted instantiation: http.c:eb_gettag
Unexecuted instantiation: http_ana.c:eb_gettag
Unexecuted instantiation: http_ext.c:eb_gettag
Unexecuted instantiation: http_htx.c:eb_gettag
Unexecuted instantiation: http_rules.c:eb_gettag
Unexecuted instantiation: lb_chash.c:eb_gettag
Unexecuted instantiation: lb_fas.c:eb_gettag
Unexecuted instantiation: lb_fwlc.c:eb_gettag
Unexecuted instantiation: lb_fwrr.c:eb_gettag
Unexecuted instantiation: lb_map.c:eb_gettag
Unexecuted instantiation: limits.c:eb_gettag
Unexecuted instantiation: listener.c:eb_gettag
Unexecuted instantiation: log.c:eb_gettag
Unexecuted instantiation: mailers.c:eb_gettag
Unexecuted instantiation: mworker.c:eb_gettag
Unexecuted instantiation: peers.c:eb_gettag
Unexecuted instantiation: pool.c:eb_gettag
Unexecuted instantiation: proto_rhttp.c:eb_gettag
Unexecuted instantiation: proto_sockpair.c:eb_gettag
Unexecuted instantiation: protocol.c:eb_gettag
Unexecuted instantiation: proxy.c:eb_gettag
Unexecuted instantiation: queue.c:eb_gettag
Unexecuted instantiation: regex.c:eb_gettag
Unexecuted instantiation: resolvers.c:eb_gettag
Unexecuted instantiation: ring.c:eb_gettag
Unexecuted instantiation: sample.c:eb_gettag
Unexecuted instantiation: server.c:eb_gettag
Unexecuted instantiation: session.c:eb_gettag
Unexecuted instantiation: signal.c:eb_gettag
Unexecuted instantiation: sink.c:eb_gettag
Unexecuted instantiation: sock.c:eb_gettag
Unexecuted instantiation: sock_inet.c:eb_gettag
Unexecuted instantiation: stats-html.c:eb_gettag
Unexecuted instantiation: stats.c:eb_gettag
Unexecuted instantiation: stconn.c:eb_gettag
Unexecuted instantiation: stick_table.c:eb_gettag
Unexecuted instantiation: stream.c:eb_gettag
Unexecuted instantiation: systemd.c:eb_gettag
Unexecuted instantiation: task.c:eb_gettag
Unexecuted instantiation: tcp_rules.c:eb_gettag
Unexecuted instantiation: tcpcheck.c:eb_gettag
Unexecuted instantiation: thread.c:eb_gettag
Unexecuted instantiation: tools.c:eb_gettag
Unexecuted instantiation: trace.c:eb_gettag
Unexecuted instantiation: vars.c:eb_gettag
Unexecuted instantiation: acl.c:eb_gettag
Unexecuted instantiation: action.c:eb_gettag
Unexecuted instantiation: activity.c:eb_gettag
Unexecuted instantiation: applet.c:eb_gettag
Unexecuted instantiation: arg.c:eb_gettag
Unexecuted instantiation: backend.c:eb_gettag
Unexecuted instantiation: cache.c:eb_gettag
Unexecuted instantiation: cfgcond.c:eb_gettag
Unexecuted instantiation: cfgparse-global.c:eb_gettag
Unexecuted instantiation: cfgparse-listen.c:eb_gettag
Unexecuted instantiation: channel.c:eb_gettag
Unexecuted instantiation: check.c:eb_gettag
Unexecuted instantiation: compression.c:eb_gettag
Unexecuted instantiation: counters.c:eb_gettag
Unexecuted instantiation: dgram.c:eb_gettag
Unexecuted instantiation: dict.c:eb_gettag
Unexecuted instantiation: dns.c:eb_gettag
Unexecuted instantiation: dns_ring.c:eb_gettag
Unexecuted instantiation: eb32tree.c:eb_gettag
Unexecuted instantiation: eb64tree.c:eb_gettag
Unexecuted instantiation: ebimtree.c:eb_gettag
Unexecuted instantiation: ebistree.c:eb_gettag
Unexecuted instantiation: ebmbtree.c:eb_gettag
Unexecuted instantiation: ebsttree.c:eb_gettag
Unexecuted instantiation: event_hdl.c:eb_gettag
Unexecuted instantiation: extcheck.c:eb_gettag
Unexecuted instantiation: fcgi-app.c:eb_gettag
Unexecuted instantiation: fix.c:eb_gettag
Unexecuted instantiation: guid.c:eb_gettag
Unexecuted instantiation: h1.c:eb_gettag
Unexecuted instantiation: http_fetch.c:eb_gettag
Unexecuted instantiation: mqtt.c:eb_gettag
Unexecuted instantiation: mux_spop.c:eb_gettag
Unexecuted instantiation: pattern.c:eb_gettag
Unexecuted instantiation: payload.c:eb_gettag
Unexecuted instantiation: proto_tcp.c:eb_gettag
Unexecuted instantiation: shctx.c:eb_gettag
Unexecuted instantiation: stats-file.c:eb_gettag
Unexecuted instantiation: stats-json.c:eb_gettag
Unexecuted instantiation: stats-proxy.c:eb_gettag
Unexecuted instantiation: flt_spoe.c:eb_gettag
Unexecuted instantiation: h1_htx.c:eb_gettag
Unexecuted instantiation: lru.c:eb_gettag
426
427
/* Converts a root pointer to its equivalent eb_troot_t pointer and clears the
428
 * tag, no matter what its value was.
429
 */
430
static inline struct eb_root *eb_clrtag(const eb_troot_t *troot)
431
0
{
432
0
  return (struct eb_root *)((unsigned long)troot & ~1UL);
433
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_clrtag
Unexecuted instantiation: cfgparse.c:eb_clrtag
Unexecuted instantiation: chunk.c:eb_clrtag
Unexecuted instantiation: cli.c:eb_clrtag
Unexecuted instantiation: clock.c:eb_clrtag
Unexecuted instantiation: connection.c:eb_clrtag
Unexecuted instantiation: debug.c:eb_clrtag
Unexecuted instantiation: dynbuf.c:eb_clrtag
Unexecuted instantiation: ebtree.c:eb_clrtag
Unexecuted instantiation: errors.c:eb_clrtag
Unexecuted instantiation: fd.c:eb_clrtag
Unexecuted instantiation: filters.c:eb_clrtag
Unexecuted instantiation: flt_http_comp.c:eb_clrtag
Unexecuted instantiation: freq_ctr.c:eb_clrtag
Unexecuted instantiation: frontend.c:eb_clrtag
Unexecuted instantiation: haproxy.c:eb_clrtag
Unexecuted instantiation: http.c:eb_clrtag
Unexecuted instantiation: http_ana.c:eb_clrtag
Unexecuted instantiation: http_ext.c:eb_clrtag
Unexecuted instantiation: http_htx.c:eb_clrtag
Unexecuted instantiation: http_rules.c:eb_clrtag
Unexecuted instantiation: lb_chash.c:eb_clrtag
Unexecuted instantiation: lb_fas.c:eb_clrtag
Unexecuted instantiation: lb_fwlc.c:eb_clrtag
Unexecuted instantiation: lb_fwrr.c:eb_clrtag
Unexecuted instantiation: lb_map.c:eb_clrtag
Unexecuted instantiation: limits.c:eb_clrtag
Unexecuted instantiation: listener.c:eb_clrtag
Unexecuted instantiation: log.c:eb_clrtag
Unexecuted instantiation: mailers.c:eb_clrtag
Unexecuted instantiation: mworker.c:eb_clrtag
Unexecuted instantiation: peers.c:eb_clrtag
Unexecuted instantiation: pool.c:eb_clrtag
Unexecuted instantiation: proto_rhttp.c:eb_clrtag
Unexecuted instantiation: proto_sockpair.c:eb_clrtag
Unexecuted instantiation: protocol.c:eb_clrtag
Unexecuted instantiation: proxy.c:eb_clrtag
Unexecuted instantiation: queue.c:eb_clrtag
Unexecuted instantiation: regex.c:eb_clrtag
Unexecuted instantiation: resolvers.c:eb_clrtag
Unexecuted instantiation: ring.c:eb_clrtag
Unexecuted instantiation: sample.c:eb_clrtag
Unexecuted instantiation: server.c:eb_clrtag
Unexecuted instantiation: session.c:eb_clrtag
Unexecuted instantiation: signal.c:eb_clrtag
Unexecuted instantiation: sink.c:eb_clrtag
Unexecuted instantiation: sock.c:eb_clrtag
Unexecuted instantiation: sock_inet.c:eb_clrtag
Unexecuted instantiation: stats-html.c:eb_clrtag
Unexecuted instantiation: stats.c:eb_clrtag
Unexecuted instantiation: stconn.c:eb_clrtag
Unexecuted instantiation: stick_table.c:eb_clrtag
Unexecuted instantiation: stream.c:eb_clrtag
Unexecuted instantiation: systemd.c:eb_clrtag
Unexecuted instantiation: task.c:eb_clrtag
Unexecuted instantiation: tcp_rules.c:eb_clrtag
Unexecuted instantiation: tcpcheck.c:eb_clrtag
Unexecuted instantiation: thread.c:eb_clrtag
Unexecuted instantiation: tools.c:eb_clrtag
Unexecuted instantiation: trace.c:eb_clrtag
Unexecuted instantiation: vars.c:eb_clrtag
Unexecuted instantiation: acl.c:eb_clrtag
Unexecuted instantiation: action.c:eb_clrtag
Unexecuted instantiation: activity.c:eb_clrtag
Unexecuted instantiation: applet.c:eb_clrtag
Unexecuted instantiation: arg.c:eb_clrtag
Unexecuted instantiation: backend.c:eb_clrtag
Unexecuted instantiation: cache.c:eb_clrtag
Unexecuted instantiation: cfgcond.c:eb_clrtag
Unexecuted instantiation: cfgparse-global.c:eb_clrtag
Unexecuted instantiation: cfgparse-listen.c:eb_clrtag
Unexecuted instantiation: channel.c:eb_clrtag
Unexecuted instantiation: check.c:eb_clrtag
Unexecuted instantiation: compression.c:eb_clrtag
Unexecuted instantiation: counters.c:eb_clrtag
Unexecuted instantiation: dgram.c:eb_clrtag
Unexecuted instantiation: dict.c:eb_clrtag
Unexecuted instantiation: dns.c:eb_clrtag
Unexecuted instantiation: dns_ring.c:eb_clrtag
Unexecuted instantiation: eb32tree.c:eb_clrtag
Unexecuted instantiation: eb64tree.c:eb_clrtag
Unexecuted instantiation: ebimtree.c:eb_clrtag
Unexecuted instantiation: ebistree.c:eb_clrtag
Unexecuted instantiation: ebmbtree.c:eb_clrtag
Unexecuted instantiation: ebsttree.c:eb_clrtag
Unexecuted instantiation: event_hdl.c:eb_clrtag
Unexecuted instantiation: extcheck.c:eb_clrtag
Unexecuted instantiation: fcgi-app.c:eb_clrtag
Unexecuted instantiation: fix.c:eb_clrtag
Unexecuted instantiation: guid.c:eb_clrtag
Unexecuted instantiation: h1.c:eb_clrtag
Unexecuted instantiation: http_fetch.c:eb_clrtag
Unexecuted instantiation: mqtt.c:eb_clrtag
Unexecuted instantiation: mux_spop.c:eb_clrtag
Unexecuted instantiation: pattern.c:eb_clrtag
Unexecuted instantiation: payload.c:eb_clrtag
Unexecuted instantiation: proto_tcp.c:eb_clrtag
Unexecuted instantiation: shctx.c:eb_clrtag
Unexecuted instantiation: stats-file.c:eb_clrtag
Unexecuted instantiation: stats-json.c:eb_clrtag
Unexecuted instantiation: stats-proxy.c:eb_clrtag
Unexecuted instantiation: flt_spoe.c:eb_clrtag
Unexecuted instantiation: h1_htx.c:eb_clrtag
Unexecuted instantiation: lru.c:eb_clrtag
434
435
/* Returns a pointer to the eb_node holding <root> */
436
static inline struct eb_node *eb_root_to_node(struct eb_root *root)
437
0
{
438
0
  return container_of(root, struct eb_node, branches);
439
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_root_to_node
Unexecuted instantiation: cfgparse.c:eb_root_to_node
Unexecuted instantiation: chunk.c:eb_root_to_node
Unexecuted instantiation: cli.c:eb_root_to_node
Unexecuted instantiation: clock.c:eb_root_to_node
Unexecuted instantiation: connection.c:eb_root_to_node
Unexecuted instantiation: debug.c:eb_root_to_node
Unexecuted instantiation: dynbuf.c:eb_root_to_node
Unexecuted instantiation: ebtree.c:eb_root_to_node
Unexecuted instantiation: errors.c:eb_root_to_node
Unexecuted instantiation: fd.c:eb_root_to_node
Unexecuted instantiation: filters.c:eb_root_to_node
Unexecuted instantiation: flt_http_comp.c:eb_root_to_node
Unexecuted instantiation: freq_ctr.c:eb_root_to_node
Unexecuted instantiation: frontend.c:eb_root_to_node
Unexecuted instantiation: haproxy.c:eb_root_to_node
Unexecuted instantiation: http.c:eb_root_to_node
Unexecuted instantiation: http_ana.c:eb_root_to_node
Unexecuted instantiation: http_ext.c:eb_root_to_node
Unexecuted instantiation: http_htx.c:eb_root_to_node
Unexecuted instantiation: http_rules.c:eb_root_to_node
Unexecuted instantiation: lb_chash.c:eb_root_to_node
Unexecuted instantiation: lb_fas.c:eb_root_to_node
Unexecuted instantiation: lb_fwlc.c:eb_root_to_node
Unexecuted instantiation: lb_fwrr.c:eb_root_to_node
Unexecuted instantiation: lb_map.c:eb_root_to_node
Unexecuted instantiation: limits.c:eb_root_to_node
Unexecuted instantiation: listener.c:eb_root_to_node
Unexecuted instantiation: log.c:eb_root_to_node
Unexecuted instantiation: mailers.c:eb_root_to_node
Unexecuted instantiation: mworker.c:eb_root_to_node
Unexecuted instantiation: peers.c:eb_root_to_node
Unexecuted instantiation: pool.c:eb_root_to_node
Unexecuted instantiation: proto_rhttp.c:eb_root_to_node
Unexecuted instantiation: proto_sockpair.c:eb_root_to_node
Unexecuted instantiation: protocol.c:eb_root_to_node
Unexecuted instantiation: proxy.c:eb_root_to_node
Unexecuted instantiation: queue.c:eb_root_to_node
Unexecuted instantiation: regex.c:eb_root_to_node
Unexecuted instantiation: resolvers.c:eb_root_to_node
Unexecuted instantiation: ring.c:eb_root_to_node
Unexecuted instantiation: sample.c:eb_root_to_node
Unexecuted instantiation: server.c:eb_root_to_node
Unexecuted instantiation: session.c:eb_root_to_node
Unexecuted instantiation: signal.c:eb_root_to_node
Unexecuted instantiation: sink.c:eb_root_to_node
Unexecuted instantiation: sock.c:eb_root_to_node
Unexecuted instantiation: sock_inet.c:eb_root_to_node
Unexecuted instantiation: stats-html.c:eb_root_to_node
Unexecuted instantiation: stats.c:eb_root_to_node
Unexecuted instantiation: stconn.c:eb_root_to_node
Unexecuted instantiation: stick_table.c:eb_root_to_node
Unexecuted instantiation: stream.c:eb_root_to_node
Unexecuted instantiation: systemd.c:eb_root_to_node
Unexecuted instantiation: task.c:eb_root_to_node
Unexecuted instantiation: tcp_rules.c:eb_root_to_node
Unexecuted instantiation: tcpcheck.c:eb_root_to_node
Unexecuted instantiation: thread.c:eb_root_to_node
Unexecuted instantiation: tools.c:eb_root_to_node
Unexecuted instantiation: trace.c:eb_root_to_node
Unexecuted instantiation: vars.c:eb_root_to_node
Unexecuted instantiation: acl.c:eb_root_to_node
Unexecuted instantiation: action.c:eb_root_to_node
Unexecuted instantiation: activity.c:eb_root_to_node
Unexecuted instantiation: applet.c:eb_root_to_node
Unexecuted instantiation: arg.c:eb_root_to_node
Unexecuted instantiation: backend.c:eb_root_to_node
Unexecuted instantiation: cache.c:eb_root_to_node
Unexecuted instantiation: cfgcond.c:eb_root_to_node
Unexecuted instantiation: cfgparse-global.c:eb_root_to_node
Unexecuted instantiation: cfgparse-listen.c:eb_root_to_node
Unexecuted instantiation: channel.c:eb_root_to_node
Unexecuted instantiation: check.c:eb_root_to_node
Unexecuted instantiation: compression.c:eb_root_to_node
Unexecuted instantiation: counters.c:eb_root_to_node
Unexecuted instantiation: dgram.c:eb_root_to_node
Unexecuted instantiation: dict.c:eb_root_to_node
Unexecuted instantiation: dns.c:eb_root_to_node
Unexecuted instantiation: dns_ring.c:eb_root_to_node
Unexecuted instantiation: eb32tree.c:eb_root_to_node
Unexecuted instantiation: eb64tree.c:eb_root_to_node
Unexecuted instantiation: ebimtree.c:eb_root_to_node
Unexecuted instantiation: ebistree.c:eb_root_to_node
Unexecuted instantiation: ebmbtree.c:eb_root_to_node
Unexecuted instantiation: ebsttree.c:eb_root_to_node
Unexecuted instantiation: event_hdl.c:eb_root_to_node
Unexecuted instantiation: extcheck.c:eb_root_to_node
Unexecuted instantiation: fcgi-app.c:eb_root_to_node
Unexecuted instantiation: fix.c:eb_root_to_node
Unexecuted instantiation: guid.c:eb_root_to_node
Unexecuted instantiation: h1.c:eb_root_to_node
Unexecuted instantiation: http_fetch.c:eb_root_to_node
Unexecuted instantiation: mqtt.c:eb_root_to_node
Unexecuted instantiation: mux_spop.c:eb_root_to_node
Unexecuted instantiation: pattern.c:eb_root_to_node
Unexecuted instantiation: payload.c:eb_root_to_node
Unexecuted instantiation: proto_tcp.c:eb_root_to_node
Unexecuted instantiation: shctx.c:eb_root_to_node
Unexecuted instantiation: stats-file.c:eb_root_to_node
Unexecuted instantiation: stats-json.c:eb_root_to_node
Unexecuted instantiation: stats-proxy.c:eb_root_to_node
Unexecuted instantiation: flt_spoe.c:eb_root_to_node
Unexecuted instantiation: h1_htx.c:eb_root_to_node
Unexecuted instantiation: lru.c:eb_root_to_node
440
441
/* Walks down starting at root pointer <start>, and always walking on side
442
 * <side>. It either returns the node hosting the first leaf on that side,
443
 * or NULL if no leaf is found. <start> may either be NULL or a branch pointer.
444
 * The pointer to the leaf (or NULL) is returned.
445
 */
446
static inline struct eb_node *eb_walk_down(eb_troot_t *start, unsigned int side)
447
0
{
448
  /* A NULL pointer on an empty tree root will be returned as-is */
449
0
  while (eb_gettag(start) == EB_NODE)
450
0
    start = (eb_untag(start, EB_NODE))->b[side];
451
  /* NULL is left untouched (root==eb_node, EB_LEAF==0) */
452
0
  return eb_root_to_node(eb_untag(start, EB_LEAF));
453
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_walk_down
Unexecuted instantiation: cfgparse.c:eb_walk_down
Unexecuted instantiation: chunk.c:eb_walk_down
Unexecuted instantiation: cli.c:eb_walk_down
Unexecuted instantiation: clock.c:eb_walk_down
Unexecuted instantiation: connection.c:eb_walk_down
Unexecuted instantiation: debug.c:eb_walk_down
Unexecuted instantiation: dynbuf.c:eb_walk_down
Unexecuted instantiation: ebtree.c:eb_walk_down
Unexecuted instantiation: errors.c:eb_walk_down
Unexecuted instantiation: fd.c:eb_walk_down
Unexecuted instantiation: filters.c:eb_walk_down
Unexecuted instantiation: flt_http_comp.c:eb_walk_down
Unexecuted instantiation: freq_ctr.c:eb_walk_down
Unexecuted instantiation: frontend.c:eb_walk_down
Unexecuted instantiation: haproxy.c:eb_walk_down
Unexecuted instantiation: http.c:eb_walk_down
Unexecuted instantiation: http_ana.c:eb_walk_down
Unexecuted instantiation: http_ext.c:eb_walk_down
Unexecuted instantiation: http_htx.c:eb_walk_down
Unexecuted instantiation: http_rules.c:eb_walk_down
Unexecuted instantiation: lb_chash.c:eb_walk_down
Unexecuted instantiation: lb_fas.c:eb_walk_down
Unexecuted instantiation: lb_fwlc.c:eb_walk_down
Unexecuted instantiation: lb_fwrr.c:eb_walk_down
Unexecuted instantiation: lb_map.c:eb_walk_down
Unexecuted instantiation: limits.c:eb_walk_down
Unexecuted instantiation: listener.c:eb_walk_down
Unexecuted instantiation: log.c:eb_walk_down
Unexecuted instantiation: mailers.c:eb_walk_down
Unexecuted instantiation: mworker.c:eb_walk_down
Unexecuted instantiation: peers.c:eb_walk_down
Unexecuted instantiation: pool.c:eb_walk_down
Unexecuted instantiation: proto_rhttp.c:eb_walk_down
Unexecuted instantiation: proto_sockpair.c:eb_walk_down
Unexecuted instantiation: protocol.c:eb_walk_down
Unexecuted instantiation: proxy.c:eb_walk_down
Unexecuted instantiation: queue.c:eb_walk_down
Unexecuted instantiation: regex.c:eb_walk_down
Unexecuted instantiation: resolvers.c:eb_walk_down
Unexecuted instantiation: ring.c:eb_walk_down
Unexecuted instantiation: sample.c:eb_walk_down
Unexecuted instantiation: server.c:eb_walk_down
Unexecuted instantiation: session.c:eb_walk_down
Unexecuted instantiation: signal.c:eb_walk_down
Unexecuted instantiation: sink.c:eb_walk_down
Unexecuted instantiation: sock.c:eb_walk_down
Unexecuted instantiation: sock_inet.c:eb_walk_down
Unexecuted instantiation: stats-html.c:eb_walk_down
Unexecuted instantiation: stats.c:eb_walk_down
Unexecuted instantiation: stconn.c:eb_walk_down
Unexecuted instantiation: stick_table.c:eb_walk_down
Unexecuted instantiation: stream.c:eb_walk_down
Unexecuted instantiation: systemd.c:eb_walk_down
Unexecuted instantiation: task.c:eb_walk_down
Unexecuted instantiation: tcp_rules.c:eb_walk_down
Unexecuted instantiation: tcpcheck.c:eb_walk_down
Unexecuted instantiation: thread.c:eb_walk_down
Unexecuted instantiation: tools.c:eb_walk_down
Unexecuted instantiation: trace.c:eb_walk_down
Unexecuted instantiation: vars.c:eb_walk_down
Unexecuted instantiation: acl.c:eb_walk_down
Unexecuted instantiation: action.c:eb_walk_down
Unexecuted instantiation: activity.c:eb_walk_down
Unexecuted instantiation: applet.c:eb_walk_down
Unexecuted instantiation: arg.c:eb_walk_down
Unexecuted instantiation: backend.c:eb_walk_down
Unexecuted instantiation: cache.c:eb_walk_down
Unexecuted instantiation: cfgcond.c:eb_walk_down
Unexecuted instantiation: cfgparse-global.c:eb_walk_down
Unexecuted instantiation: cfgparse-listen.c:eb_walk_down
Unexecuted instantiation: channel.c:eb_walk_down
Unexecuted instantiation: check.c:eb_walk_down
Unexecuted instantiation: compression.c:eb_walk_down
Unexecuted instantiation: counters.c:eb_walk_down
Unexecuted instantiation: dgram.c:eb_walk_down
Unexecuted instantiation: dict.c:eb_walk_down
Unexecuted instantiation: dns.c:eb_walk_down
Unexecuted instantiation: dns_ring.c:eb_walk_down
Unexecuted instantiation: eb32tree.c:eb_walk_down
Unexecuted instantiation: eb64tree.c:eb_walk_down
Unexecuted instantiation: ebimtree.c:eb_walk_down
Unexecuted instantiation: ebistree.c:eb_walk_down
Unexecuted instantiation: ebmbtree.c:eb_walk_down
Unexecuted instantiation: ebsttree.c:eb_walk_down
Unexecuted instantiation: event_hdl.c:eb_walk_down
Unexecuted instantiation: extcheck.c:eb_walk_down
Unexecuted instantiation: fcgi-app.c:eb_walk_down
Unexecuted instantiation: fix.c:eb_walk_down
Unexecuted instantiation: guid.c:eb_walk_down
Unexecuted instantiation: h1.c:eb_walk_down
Unexecuted instantiation: http_fetch.c:eb_walk_down
Unexecuted instantiation: mqtt.c:eb_walk_down
Unexecuted instantiation: mux_spop.c:eb_walk_down
Unexecuted instantiation: pattern.c:eb_walk_down
Unexecuted instantiation: payload.c:eb_walk_down
Unexecuted instantiation: proto_tcp.c:eb_walk_down
Unexecuted instantiation: shctx.c:eb_walk_down
Unexecuted instantiation: stats-file.c:eb_walk_down
Unexecuted instantiation: stats-json.c:eb_walk_down
Unexecuted instantiation: stats-proxy.c:eb_walk_down
Unexecuted instantiation: flt_spoe.c:eb_walk_down
Unexecuted instantiation: h1_htx.c:eb_walk_down
Unexecuted instantiation: lru.c:eb_walk_down
454
455
/* This function is used to build a tree of duplicates by adding a new node to
456
 * a subtree of at least 2 entries. It will probably never be needed inlined,
457
 * and it is not for end-user.
458
 */
459
static forceinline struct eb_node *
460
__eb_insert_dup(struct eb_node *sub, struct eb_node *new)
461
0
{
462
0
  struct eb_node *head = sub;
463
  
464
0
  eb_troot_t *new_left = eb_dotag(&new->branches, EB_LEFT);
465
0
  eb_troot_t *new_rght = eb_dotag(&new->branches, EB_RGHT);
466
0
  eb_troot_t *new_leaf = eb_dotag(&new->branches, EB_LEAF);
467
468
  /* first, identify the deepest hole on the right branch */
469
0
  while (eb_gettag(head->branches.b[EB_RGHT]) != EB_LEAF) {
470
0
    struct eb_node *last = head;
471
0
    head = container_of(eb_untag(head->branches.b[EB_RGHT], EB_NODE),
472
0
            struct eb_node, branches);
473
0
    if (head->bit > last->bit + 1)
474
0
      sub = head;     /* there's a hole here */
475
0
  }
476
477
  /* Here we have a leaf attached to (head)->b[EB_RGHT] */
478
0
  if (head->bit < -1) {
479
    /* A hole exists just before the leaf, we insert there */
480
0
    new->bit = -1;
481
0
    sub = container_of(eb_untag(head->branches.b[EB_RGHT], EB_LEAF),
482
0
           struct eb_node, branches);
483
0
    head->branches.b[EB_RGHT] = eb_dotag(&new->branches, EB_NODE);
484
485
0
    new->node_p = sub->leaf_p;
486
0
    new->leaf_p = new_rght;
487
0
    sub->leaf_p = new_left;
488
0
    new->branches.b[EB_LEFT] = eb_dotag(&sub->branches, EB_LEAF);
489
0
    new->branches.b[EB_RGHT] = new_leaf;
490
0
    return new;
491
0
  } else {
492
0
    int side;
493
    /* No hole was found before a leaf. We have to insert above
494
     * <sub>. Note that we cannot be certain that <sub> is attached
495
     * to the right of its parent, as this is only true if <sub>
496
     * is inside the dup tree, not at the head.
497
     */
498
0
    new->bit = sub->bit - 1; /* install at the lowest level */
499
0
    side = eb_gettag(sub->node_p);
500
0
    head = container_of(eb_untag(sub->node_p, side), struct eb_node, branches);
501
0
    head->branches.b[side] = eb_dotag(&new->branches, EB_NODE);
502
          
503
0
    new->node_p = sub->node_p;
504
0
    new->leaf_p = new_rght;
505
0
    sub->node_p = new_left;
506
0
    new->branches.b[EB_LEFT] = eb_dotag(&sub->branches, EB_NODE);
507
0
    new->branches.b[EB_RGHT] = new_leaf;
508
0
    return new;
509
0
  }
510
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:__eb_insert_dup
Unexecuted instantiation: cfgparse.c:__eb_insert_dup
Unexecuted instantiation: chunk.c:__eb_insert_dup
Unexecuted instantiation: cli.c:__eb_insert_dup
Unexecuted instantiation: clock.c:__eb_insert_dup
Unexecuted instantiation: connection.c:__eb_insert_dup
Unexecuted instantiation: debug.c:__eb_insert_dup
Unexecuted instantiation: dynbuf.c:__eb_insert_dup
Unexecuted instantiation: ebtree.c:__eb_insert_dup
Unexecuted instantiation: errors.c:__eb_insert_dup
Unexecuted instantiation: fd.c:__eb_insert_dup
Unexecuted instantiation: filters.c:__eb_insert_dup
Unexecuted instantiation: flt_http_comp.c:__eb_insert_dup
Unexecuted instantiation: freq_ctr.c:__eb_insert_dup
Unexecuted instantiation: frontend.c:__eb_insert_dup
Unexecuted instantiation: haproxy.c:__eb_insert_dup
Unexecuted instantiation: http.c:__eb_insert_dup
Unexecuted instantiation: http_ana.c:__eb_insert_dup
Unexecuted instantiation: http_ext.c:__eb_insert_dup
Unexecuted instantiation: http_htx.c:__eb_insert_dup
Unexecuted instantiation: http_rules.c:__eb_insert_dup
Unexecuted instantiation: lb_chash.c:__eb_insert_dup
Unexecuted instantiation: lb_fas.c:__eb_insert_dup
Unexecuted instantiation: lb_fwlc.c:__eb_insert_dup
Unexecuted instantiation: lb_fwrr.c:__eb_insert_dup
Unexecuted instantiation: lb_map.c:__eb_insert_dup
Unexecuted instantiation: limits.c:__eb_insert_dup
Unexecuted instantiation: listener.c:__eb_insert_dup
Unexecuted instantiation: log.c:__eb_insert_dup
Unexecuted instantiation: mailers.c:__eb_insert_dup
Unexecuted instantiation: mworker.c:__eb_insert_dup
Unexecuted instantiation: peers.c:__eb_insert_dup
Unexecuted instantiation: pool.c:__eb_insert_dup
Unexecuted instantiation: proto_rhttp.c:__eb_insert_dup
Unexecuted instantiation: proto_sockpair.c:__eb_insert_dup
Unexecuted instantiation: protocol.c:__eb_insert_dup
Unexecuted instantiation: proxy.c:__eb_insert_dup
Unexecuted instantiation: queue.c:__eb_insert_dup
Unexecuted instantiation: regex.c:__eb_insert_dup
Unexecuted instantiation: resolvers.c:__eb_insert_dup
Unexecuted instantiation: ring.c:__eb_insert_dup
Unexecuted instantiation: sample.c:__eb_insert_dup
Unexecuted instantiation: server.c:__eb_insert_dup
Unexecuted instantiation: session.c:__eb_insert_dup
Unexecuted instantiation: signal.c:__eb_insert_dup
Unexecuted instantiation: sink.c:__eb_insert_dup
Unexecuted instantiation: sock.c:__eb_insert_dup
Unexecuted instantiation: sock_inet.c:__eb_insert_dup
Unexecuted instantiation: stats-html.c:__eb_insert_dup
Unexecuted instantiation: stats.c:__eb_insert_dup
Unexecuted instantiation: stconn.c:__eb_insert_dup
Unexecuted instantiation: stick_table.c:__eb_insert_dup
Unexecuted instantiation: stream.c:__eb_insert_dup
Unexecuted instantiation: systemd.c:__eb_insert_dup
Unexecuted instantiation: task.c:__eb_insert_dup
Unexecuted instantiation: tcp_rules.c:__eb_insert_dup
Unexecuted instantiation: tcpcheck.c:__eb_insert_dup
Unexecuted instantiation: thread.c:__eb_insert_dup
Unexecuted instantiation: tools.c:__eb_insert_dup
Unexecuted instantiation: trace.c:__eb_insert_dup
Unexecuted instantiation: vars.c:__eb_insert_dup
Unexecuted instantiation: acl.c:__eb_insert_dup
Unexecuted instantiation: action.c:__eb_insert_dup
Unexecuted instantiation: activity.c:__eb_insert_dup
Unexecuted instantiation: applet.c:__eb_insert_dup
Unexecuted instantiation: arg.c:__eb_insert_dup
Unexecuted instantiation: backend.c:__eb_insert_dup
Unexecuted instantiation: cache.c:__eb_insert_dup
Unexecuted instantiation: cfgcond.c:__eb_insert_dup
Unexecuted instantiation: cfgparse-global.c:__eb_insert_dup
Unexecuted instantiation: cfgparse-listen.c:__eb_insert_dup
Unexecuted instantiation: channel.c:__eb_insert_dup
Unexecuted instantiation: check.c:__eb_insert_dup
Unexecuted instantiation: compression.c:__eb_insert_dup
Unexecuted instantiation: counters.c:__eb_insert_dup
Unexecuted instantiation: dgram.c:__eb_insert_dup
Unexecuted instantiation: dict.c:__eb_insert_dup
Unexecuted instantiation: dns.c:__eb_insert_dup
Unexecuted instantiation: dns_ring.c:__eb_insert_dup
Unexecuted instantiation: eb32tree.c:__eb_insert_dup
Unexecuted instantiation: eb64tree.c:__eb_insert_dup
Unexecuted instantiation: ebimtree.c:__eb_insert_dup
Unexecuted instantiation: ebistree.c:__eb_insert_dup
Unexecuted instantiation: ebmbtree.c:__eb_insert_dup
Unexecuted instantiation: ebsttree.c:__eb_insert_dup
Unexecuted instantiation: event_hdl.c:__eb_insert_dup
Unexecuted instantiation: extcheck.c:__eb_insert_dup
Unexecuted instantiation: fcgi-app.c:__eb_insert_dup
Unexecuted instantiation: fix.c:__eb_insert_dup
Unexecuted instantiation: guid.c:__eb_insert_dup
Unexecuted instantiation: h1.c:__eb_insert_dup
Unexecuted instantiation: http_fetch.c:__eb_insert_dup
Unexecuted instantiation: mqtt.c:__eb_insert_dup
Unexecuted instantiation: mux_spop.c:__eb_insert_dup
Unexecuted instantiation: pattern.c:__eb_insert_dup
Unexecuted instantiation: payload.c:__eb_insert_dup
Unexecuted instantiation: proto_tcp.c:__eb_insert_dup
Unexecuted instantiation: shctx.c:__eb_insert_dup
Unexecuted instantiation: stats-file.c:__eb_insert_dup
Unexecuted instantiation: stats-json.c:__eb_insert_dup
Unexecuted instantiation: stats-proxy.c:__eb_insert_dup
Unexecuted instantiation: flt_spoe.c:__eb_insert_dup
Unexecuted instantiation: h1_htx.c:__eb_insert_dup
Unexecuted instantiation: lru.c:__eb_insert_dup
511
512
/* __builtin_prefetch() appears in gcc-3.1 documentation */
513
#if !defined(eb_prefetch)
514
# if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
515
0
#  define eb_prefetch(a,b) __builtin_prefetch(a,b)
516
# else
517
#  define eb_prefetch(a,b) do { } while (0)
518
# endif
519
#endif
520
521
522
/**************************************\
523
 * Public functions, for the end-user *
524
\**************************************/
525
526
/* Return non-zero if the tree is empty, otherwise zero */
527
static inline int eb_is_empty(const struct eb_root *root)
528
0
{
529
0
  return !root->b[EB_LEFT];
530
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_is_empty
Unexecuted instantiation: cfgparse.c:eb_is_empty
Unexecuted instantiation: chunk.c:eb_is_empty
Unexecuted instantiation: cli.c:eb_is_empty
Unexecuted instantiation: clock.c:eb_is_empty
Unexecuted instantiation: connection.c:eb_is_empty
Unexecuted instantiation: debug.c:eb_is_empty
Unexecuted instantiation: dynbuf.c:eb_is_empty
Unexecuted instantiation: ebtree.c:eb_is_empty
Unexecuted instantiation: errors.c:eb_is_empty
Unexecuted instantiation: fd.c:eb_is_empty
Unexecuted instantiation: filters.c:eb_is_empty
Unexecuted instantiation: flt_http_comp.c:eb_is_empty
Unexecuted instantiation: freq_ctr.c:eb_is_empty
Unexecuted instantiation: frontend.c:eb_is_empty
Unexecuted instantiation: haproxy.c:eb_is_empty
Unexecuted instantiation: http.c:eb_is_empty
Unexecuted instantiation: http_ana.c:eb_is_empty
Unexecuted instantiation: http_ext.c:eb_is_empty
Unexecuted instantiation: http_htx.c:eb_is_empty
Unexecuted instantiation: http_rules.c:eb_is_empty
Unexecuted instantiation: lb_chash.c:eb_is_empty
Unexecuted instantiation: lb_fas.c:eb_is_empty
Unexecuted instantiation: lb_fwlc.c:eb_is_empty
Unexecuted instantiation: lb_fwrr.c:eb_is_empty
Unexecuted instantiation: lb_map.c:eb_is_empty
Unexecuted instantiation: limits.c:eb_is_empty
Unexecuted instantiation: listener.c:eb_is_empty
Unexecuted instantiation: log.c:eb_is_empty
Unexecuted instantiation: mailers.c:eb_is_empty
Unexecuted instantiation: mworker.c:eb_is_empty
Unexecuted instantiation: peers.c:eb_is_empty
Unexecuted instantiation: pool.c:eb_is_empty
Unexecuted instantiation: proto_rhttp.c:eb_is_empty
Unexecuted instantiation: proto_sockpair.c:eb_is_empty
Unexecuted instantiation: protocol.c:eb_is_empty
Unexecuted instantiation: proxy.c:eb_is_empty
Unexecuted instantiation: queue.c:eb_is_empty
Unexecuted instantiation: regex.c:eb_is_empty
Unexecuted instantiation: resolvers.c:eb_is_empty
Unexecuted instantiation: ring.c:eb_is_empty
Unexecuted instantiation: sample.c:eb_is_empty
Unexecuted instantiation: server.c:eb_is_empty
Unexecuted instantiation: session.c:eb_is_empty
Unexecuted instantiation: signal.c:eb_is_empty
Unexecuted instantiation: sink.c:eb_is_empty
Unexecuted instantiation: sock.c:eb_is_empty
Unexecuted instantiation: sock_inet.c:eb_is_empty
Unexecuted instantiation: stats-html.c:eb_is_empty
Unexecuted instantiation: stats.c:eb_is_empty
Unexecuted instantiation: stconn.c:eb_is_empty
Unexecuted instantiation: stick_table.c:eb_is_empty
Unexecuted instantiation: stream.c:eb_is_empty
Unexecuted instantiation: systemd.c:eb_is_empty
Unexecuted instantiation: task.c:eb_is_empty
Unexecuted instantiation: tcp_rules.c:eb_is_empty
Unexecuted instantiation: tcpcheck.c:eb_is_empty
Unexecuted instantiation: thread.c:eb_is_empty
Unexecuted instantiation: tools.c:eb_is_empty
Unexecuted instantiation: trace.c:eb_is_empty
Unexecuted instantiation: vars.c:eb_is_empty
Unexecuted instantiation: acl.c:eb_is_empty
Unexecuted instantiation: action.c:eb_is_empty
Unexecuted instantiation: activity.c:eb_is_empty
Unexecuted instantiation: applet.c:eb_is_empty
Unexecuted instantiation: arg.c:eb_is_empty
Unexecuted instantiation: backend.c:eb_is_empty
Unexecuted instantiation: cache.c:eb_is_empty
Unexecuted instantiation: cfgcond.c:eb_is_empty
Unexecuted instantiation: cfgparse-global.c:eb_is_empty
Unexecuted instantiation: cfgparse-listen.c:eb_is_empty
Unexecuted instantiation: channel.c:eb_is_empty
Unexecuted instantiation: check.c:eb_is_empty
Unexecuted instantiation: compression.c:eb_is_empty
Unexecuted instantiation: counters.c:eb_is_empty
Unexecuted instantiation: dgram.c:eb_is_empty
Unexecuted instantiation: dict.c:eb_is_empty
Unexecuted instantiation: dns.c:eb_is_empty
Unexecuted instantiation: dns_ring.c:eb_is_empty
Unexecuted instantiation: eb32tree.c:eb_is_empty
Unexecuted instantiation: eb64tree.c:eb_is_empty
Unexecuted instantiation: ebimtree.c:eb_is_empty
Unexecuted instantiation: ebistree.c:eb_is_empty
Unexecuted instantiation: ebmbtree.c:eb_is_empty
Unexecuted instantiation: ebsttree.c:eb_is_empty
Unexecuted instantiation: event_hdl.c:eb_is_empty
Unexecuted instantiation: extcheck.c:eb_is_empty
Unexecuted instantiation: fcgi-app.c:eb_is_empty
Unexecuted instantiation: fix.c:eb_is_empty
Unexecuted instantiation: guid.c:eb_is_empty
Unexecuted instantiation: h1.c:eb_is_empty
Unexecuted instantiation: http_fetch.c:eb_is_empty
Unexecuted instantiation: mqtt.c:eb_is_empty
Unexecuted instantiation: mux_spop.c:eb_is_empty
Unexecuted instantiation: pattern.c:eb_is_empty
Unexecuted instantiation: payload.c:eb_is_empty
Unexecuted instantiation: proto_tcp.c:eb_is_empty
Unexecuted instantiation: shctx.c:eb_is_empty
Unexecuted instantiation: stats-file.c:eb_is_empty
Unexecuted instantiation: stats-json.c:eb_is_empty
Unexecuted instantiation: stats-proxy.c:eb_is_empty
Unexecuted instantiation: flt_spoe.c:eb_is_empty
Unexecuted instantiation: h1_htx.c:eb_is_empty
Unexecuted instantiation: lru.c:eb_is_empty
531
532
/* Return non-zero if the node is a duplicate, otherwise zero */
533
static inline int eb_is_dup(const struct eb_node *node)
534
0
{
535
0
  return node->bit < 0;
536
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_is_dup
Unexecuted instantiation: cfgparse.c:eb_is_dup
Unexecuted instantiation: chunk.c:eb_is_dup
Unexecuted instantiation: cli.c:eb_is_dup
Unexecuted instantiation: clock.c:eb_is_dup
Unexecuted instantiation: connection.c:eb_is_dup
Unexecuted instantiation: debug.c:eb_is_dup
Unexecuted instantiation: dynbuf.c:eb_is_dup
Unexecuted instantiation: ebtree.c:eb_is_dup
Unexecuted instantiation: errors.c:eb_is_dup
Unexecuted instantiation: fd.c:eb_is_dup
Unexecuted instantiation: filters.c:eb_is_dup
Unexecuted instantiation: flt_http_comp.c:eb_is_dup
Unexecuted instantiation: freq_ctr.c:eb_is_dup
Unexecuted instantiation: frontend.c:eb_is_dup
Unexecuted instantiation: haproxy.c:eb_is_dup
Unexecuted instantiation: http.c:eb_is_dup
Unexecuted instantiation: http_ana.c:eb_is_dup
Unexecuted instantiation: http_ext.c:eb_is_dup
Unexecuted instantiation: http_htx.c:eb_is_dup
Unexecuted instantiation: http_rules.c:eb_is_dup
Unexecuted instantiation: lb_chash.c:eb_is_dup
Unexecuted instantiation: lb_fas.c:eb_is_dup
Unexecuted instantiation: lb_fwlc.c:eb_is_dup
Unexecuted instantiation: lb_fwrr.c:eb_is_dup
Unexecuted instantiation: lb_map.c:eb_is_dup
Unexecuted instantiation: limits.c:eb_is_dup
Unexecuted instantiation: listener.c:eb_is_dup
Unexecuted instantiation: log.c:eb_is_dup
Unexecuted instantiation: mailers.c:eb_is_dup
Unexecuted instantiation: mworker.c:eb_is_dup
Unexecuted instantiation: peers.c:eb_is_dup
Unexecuted instantiation: pool.c:eb_is_dup
Unexecuted instantiation: proto_rhttp.c:eb_is_dup
Unexecuted instantiation: proto_sockpair.c:eb_is_dup
Unexecuted instantiation: protocol.c:eb_is_dup
Unexecuted instantiation: proxy.c:eb_is_dup
Unexecuted instantiation: queue.c:eb_is_dup
Unexecuted instantiation: regex.c:eb_is_dup
Unexecuted instantiation: resolvers.c:eb_is_dup
Unexecuted instantiation: ring.c:eb_is_dup
Unexecuted instantiation: sample.c:eb_is_dup
Unexecuted instantiation: server.c:eb_is_dup
Unexecuted instantiation: session.c:eb_is_dup
Unexecuted instantiation: signal.c:eb_is_dup
Unexecuted instantiation: sink.c:eb_is_dup
Unexecuted instantiation: sock.c:eb_is_dup
Unexecuted instantiation: sock_inet.c:eb_is_dup
Unexecuted instantiation: stats-html.c:eb_is_dup
Unexecuted instantiation: stats.c:eb_is_dup
Unexecuted instantiation: stconn.c:eb_is_dup
Unexecuted instantiation: stick_table.c:eb_is_dup
Unexecuted instantiation: stream.c:eb_is_dup
Unexecuted instantiation: systemd.c:eb_is_dup
Unexecuted instantiation: task.c:eb_is_dup
Unexecuted instantiation: tcp_rules.c:eb_is_dup
Unexecuted instantiation: tcpcheck.c:eb_is_dup
Unexecuted instantiation: thread.c:eb_is_dup
Unexecuted instantiation: tools.c:eb_is_dup
Unexecuted instantiation: trace.c:eb_is_dup
Unexecuted instantiation: vars.c:eb_is_dup
Unexecuted instantiation: acl.c:eb_is_dup
Unexecuted instantiation: action.c:eb_is_dup
Unexecuted instantiation: activity.c:eb_is_dup
Unexecuted instantiation: applet.c:eb_is_dup
Unexecuted instantiation: arg.c:eb_is_dup
Unexecuted instantiation: backend.c:eb_is_dup
Unexecuted instantiation: cache.c:eb_is_dup
Unexecuted instantiation: cfgcond.c:eb_is_dup
Unexecuted instantiation: cfgparse-global.c:eb_is_dup
Unexecuted instantiation: cfgparse-listen.c:eb_is_dup
Unexecuted instantiation: channel.c:eb_is_dup
Unexecuted instantiation: check.c:eb_is_dup
Unexecuted instantiation: compression.c:eb_is_dup
Unexecuted instantiation: counters.c:eb_is_dup
Unexecuted instantiation: dgram.c:eb_is_dup
Unexecuted instantiation: dict.c:eb_is_dup
Unexecuted instantiation: dns.c:eb_is_dup
Unexecuted instantiation: dns_ring.c:eb_is_dup
Unexecuted instantiation: eb32tree.c:eb_is_dup
Unexecuted instantiation: eb64tree.c:eb_is_dup
Unexecuted instantiation: ebimtree.c:eb_is_dup
Unexecuted instantiation: ebistree.c:eb_is_dup
Unexecuted instantiation: ebmbtree.c:eb_is_dup
Unexecuted instantiation: ebsttree.c:eb_is_dup
Unexecuted instantiation: event_hdl.c:eb_is_dup
Unexecuted instantiation: extcheck.c:eb_is_dup
Unexecuted instantiation: fcgi-app.c:eb_is_dup
Unexecuted instantiation: fix.c:eb_is_dup
Unexecuted instantiation: guid.c:eb_is_dup
Unexecuted instantiation: h1.c:eb_is_dup
Unexecuted instantiation: http_fetch.c:eb_is_dup
Unexecuted instantiation: mqtt.c:eb_is_dup
Unexecuted instantiation: mux_spop.c:eb_is_dup
Unexecuted instantiation: pattern.c:eb_is_dup
Unexecuted instantiation: payload.c:eb_is_dup
Unexecuted instantiation: proto_tcp.c:eb_is_dup
Unexecuted instantiation: shctx.c:eb_is_dup
Unexecuted instantiation: stats-file.c:eb_is_dup
Unexecuted instantiation: stats-json.c:eb_is_dup
Unexecuted instantiation: stats-proxy.c:eb_is_dup
Unexecuted instantiation: flt_spoe.c:eb_is_dup
Unexecuted instantiation: h1_htx.c:eb_is_dup
Unexecuted instantiation: lru.c:eb_is_dup
537
538
/* Return the first leaf in the tree starting at <root>, or NULL if none */
539
static inline struct eb_node *eb_first(struct eb_root *root)
540
0
{
541
0
  return eb_walk_down(root->b[0], EB_LEFT);
542
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_first
Unexecuted instantiation: cfgparse.c:eb_first
Unexecuted instantiation: chunk.c:eb_first
Unexecuted instantiation: cli.c:eb_first
Unexecuted instantiation: clock.c:eb_first
Unexecuted instantiation: connection.c:eb_first
Unexecuted instantiation: debug.c:eb_first
Unexecuted instantiation: dynbuf.c:eb_first
Unexecuted instantiation: ebtree.c:eb_first
Unexecuted instantiation: errors.c:eb_first
Unexecuted instantiation: fd.c:eb_first
Unexecuted instantiation: filters.c:eb_first
Unexecuted instantiation: flt_http_comp.c:eb_first
Unexecuted instantiation: freq_ctr.c:eb_first
Unexecuted instantiation: frontend.c:eb_first
Unexecuted instantiation: haproxy.c:eb_first
Unexecuted instantiation: http.c:eb_first
Unexecuted instantiation: http_ana.c:eb_first
Unexecuted instantiation: http_ext.c:eb_first
Unexecuted instantiation: http_htx.c:eb_first
Unexecuted instantiation: http_rules.c:eb_first
Unexecuted instantiation: lb_chash.c:eb_first
Unexecuted instantiation: lb_fas.c:eb_first
Unexecuted instantiation: lb_fwlc.c:eb_first
Unexecuted instantiation: lb_fwrr.c:eb_first
Unexecuted instantiation: lb_map.c:eb_first
Unexecuted instantiation: limits.c:eb_first
Unexecuted instantiation: listener.c:eb_first
Unexecuted instantiation: log.c:eb_first
Unexecuted instantiation: mailers.c:eb_first
Unexecuted instantiation: mworker.c:eb_first
Unexecuted instantiation: peers.c:eb_first
Unexecuted instantiation: pool.c:eb_first
Unexecuted instantiation: proto_rhttp.c:eb_first
Unexecuted instantiation: proto_sockpair.c:eb_first
Unexecuted instantiation: protocol.c:eb_first
Unexecuted instantiation: proxy.c:eb_first
Unexecuted instantiation: queue.c:eb_first
Unexecuted instantiation: regex.c:eb_first
Unexecuted instantiation: resolvers.c:eb_first
Unexecuted instantiation: ring.c:eb_first
Unexecuted instantiation: sample.c:eb_first
Unexecuted instantiation: server.c:eb_first
Unexecuted instantiation: session.c:eb_first
Unexecuted instantiation: signal.c:eb_first
Unexecuted instantiation: sink.c:eb_first
Unexecuted instantiation: sock.c:eb_first
Unexecuted instantiation: sock_inet.c:eb_first
Unexecuted instantiation: stats-html.c:eb_first
Unexecuted instantiation: stats.c:eb_first
Unexecuted instantiation: stconn.c:eb_first
Unexecuted instantiation: stick_table.c:eb_first
Unexecuted instantiation: stream.c:eb_first
Unexecuted instantiation: systemd.c:eb_first
Unexecuted instantiation: task.c:eb_first
Unexecuted instantiation: tcp_rules.c:eb_first
Unexecuted instantiation: tcpcheck.c:eb_first
Unexecuted instantiation: thread.c:eb_first
Unexecuted instantiation: tools.c:eb_first
Unexecuted instantiation: trace.c:eb_first
Unexecuted instantiation: vars.c:eb_first
Unexecuted instantiation: acl.c:eb_first
Unexecuted instantiation: action.c:eb_first
Unexecuted instantiation: activity.c:eb_first
Unexecuted instantiation: applet.c:eb_first
Unexecuted instantiation: arg.c:eb_first
Unexecuted instantiation: backend.c:eb_first
Unexecuted instantiation: cache.c:eb_first
Unexecuted instantiation: cfgcond.c:eb_first
Unexecuted instantiation: cfgparse-global.c:eb_first
Unexecuted instantiation: cfgparse-listen.c:eb_first
Unexecuted instantiation: channel.c:eb_first
Unexecuted instantiation: check.c:eb_first
Unexecuted instantiation: compression.c:eb_first
Unexecuted instantiation: counters.c:eb_first
Unexecuted instantiation: dgram.c:eb_first
Unexecuted instantiation: dict.c:eb_first
Unexecuted instantiation: dns.c:eb_first
Unexecuted instantiation: dns_ring.c:eb_first
Unexecuted instantiation: eb32tree.c:eb_first
Unexecuted instantiation: eb64tree.c:eb_first
Unexecuted instantiation: ebimtree.c:eb_first
Unexecuted instantiation: ebistree.c:eb_first
Unexecuted instantiation: ebmbtree.c:eb_first
Unexecuted instantiation: ebsttree.c:eb_first
Unexecuted instantiation: event_hdl.c:eb_first
Unexecuted instantiation: extcheck.c:eb_first
Unexecuted instantiation: fcgi-app.c:eb_first
Unexecuted instantiation: fix.c:eb_first
Unexecuted instantiation: guid.c:eb_first
Unexecuted instantiation: h1.c:eb_first
Unexecuted instantiation: http_fetch.c:eb_first
Unexecuted instantiation: mqtt.c:eb_first
Unexecuted instantiation: mux_spop.c:eb_first
Unexecuted instantiation: pattern.c:eb_first
Unexecuted instantiation: payload.c:eb_first
Unexecuted instantiation: proto_tcp.c:eb_first
Unexecuted instantiation: shctx.c:eb_first
Unexecuted instantiation: stats-file.c:eb_first
Unexecuted instantiation: stats-json.c:eb_first
Unexecuted instantiation: stats-proxy.c:eb_first
Unexecuted instantiation: flt_spoe.c:eb_first
Unexecuted instantiation: h1_htx.c:eb_first
Unexecuted instantiation: lru.c:eb_first
543
544
/* Return the last leaf in the tree starting at <root>, or NULL if none */
545
static inline struct eb_node *eb_last(struct eb_root *root)
546
0
{
547
0
  return eb_walk_down(root->b[0], EB_RGHT);
548
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_last
Unexecuted instantiation: cfgparse.c:eb_last
Unexecuted instantiation: chunk.c:eb_last
Unexecuted instantiation: cli.c:eb_last
Unexecuted instantiation: clock.c:eb_last
Unexecuted instantiation: connection.c:eb_last
Unexecuted instantiation: debug.c:eb_last
Unexecuted instantiation: dynbuf.c:eb_last
Unexecuted instantiation: ebtree.c:eb_last
Unexecuted instantiation: errors.c:eb_last
Unexecuted instantiation: fd.c:eb_last
Unexecuted instantiation: filters.c:eb_last
Unexecuted instantiation: flt_http_comp.c:eb_last
Unexecuted instantiation: freq_ctr.c:eb_last
Unexecuted instantiation: frontend.c:eb_last
Unexecuted instantiation: haproxy.c:eb_last
Unexecuted instantiation: http.c:eb_last
Unexecuted instantiation: http_ana.c:eb_last
Unexecuted instantiation: http_ext.c:eb_last
Unexecuted instantiation: http_htx.c:eb_last
Unexecuted instantiation: http_rules.c:eb_last
Unexecuted instantiation: lb_chash.c:eb_last
Unexecuted instantiation: lb_fas.c:eb_last
Unexecuted instantiation: lb_fwlc.c:eb_last
Unexecuted instantiation: lb_fwrr.c:eb_last
Unexecuted instantiation: lb_map.c:eb_last
Unexecuted instantiation: limits.c:eb_last
Unexecuted instantiation: listener.c:eb_last
Unexecuted instantiation: log.c:eb_last
Unexecuted instantiation: mailers.c:eb_last
Unexecuted instantiation: mworker.c:eb_last
Unexecuted instantiation: peers.c:eb_last
Unexecuted instantiation: pool.c:eb_last
Unexecuted instantiation: proto_rhttp.c:eb_last
Unexecuted instantiation: proto_sockpair.c:eb_last
Unexecuted instantiation: protocol.c:eb_last
Unexecuted instantiation: proxy.c:eb_last
Unexecuted instantiation: queue.c:eb_last
Unexecuted instantiation: regex.c:eb_last
Unexecuted instantiation: resolvers.c:eb_last
Unexecuted instantiation: ring.c:eb_last
Unexecuted instantiation: sample.c:eb_last
Unexecuted instantiation: server.c:eb_last
Unexecuted instantiation: session.c:eb_last
Unexecuted instantiation: signal.c:eb_last
Unexecuted instantiation: sink.c:eb_last
Unexecuted instantiation: sock.c:eb_last
Unexecuted instantiation: sock_inet.c:eb_last
Unexecuted instantiation: stats-html.c:eb_last
Unexecuted instantiation: stats.c:eb_last
Unexecuted instantiation: stconn.c:eb_last
Unexecuted instantiation: stick_table.c:eb_last
Unexecuted instantiation: stream.c:eb_last
Unexecuted instantiation: systemd.c:eb_last
Unexecuted instantiation: task.c:eb_last
Unexecuted instantiation: tcp_rules.c:eb_last
Unexecuted instantiation: tcpcheck.c:eb_last
Unexecuted instantiation: thread.c:eb_last
Unexecuted instantiation: tools.c:eb_last
Unexecuted instantiation: trace.c:eb_last
Unexecuted instantiation: vars.c:eb_last
Unexecuted instantiation: acl.c:eb_last
Unexecuted instantiation: action.c:eb_last
Unexecuted instantiation: activity.c:eb_last
Unexecuted instantiation: applet.c:eb_last
Unexecuted instantiation: arg.c:eb_last
Unexecuted instantiation: backend.c:eb_last
Unexecuted instantiation: cache.c:eb_last
Unexecuted instantiation: cfgcond.c:eb_last
Unexecuted instantiation: cfgparse-global.c:eb_last
Unexecuted instantiation: cfgparse-listen.c:eb_last
Unexecuted instantiation: channel.c:eb_last
Unexecuted instantiation: check.c:eb_last
Unexecuted instantiation: compression.c:eb_last
Unexecuted instantiation: counters.c:eb_last
Unexecuted instantiation: dgram.c:eb_last
Unexecuted instantiation: dict.c:eb_last
Unexecuted instantiation: dns.c:eb_last
Unexecuted instantiation: dns_ring.c:eb_last
Unexecuted instantiation: eb32tree.c:eb_last
Unexecuted instantiation: eb64tree.c:eb_last
Unexecuted instantiation: ebimtree.c:eb_last
Unexecuted instantiation: ebistree.c:eb_last
Unexecuted instantiation: ebmbtree.c:eb_last
Unexecuted instantiation: ebsttree.c:eb_last
Unexecuted instantiation: event_hdl.c:eb_last
Unexecuted instantiation: extcheck.c:eb_last
Unexecuted instantiation: fcgi-app.c:eb_last
Unexecuted instantiation: fix.c:eb_last
Unexecuted instantiation: guid.c:eb_last
Unexecuted instantiation: h1.c:eb_last
Unexecuted instantiation: http_fetch.c:eb_last
Unexecuted instantiation: mqtt.c:eb_last
Unexecuted instantiation: mux_spop.c:eb_last
Unexecuted instantiation: pattern.c:eb_last
Unexecuted instantiation: payload.c:eb_last
Unexecuted instantiation: proto_tcp.c:eb_last
Unexecuted instantiation: shctx.c:eb_last
Unexecuted instantiation: stats-file.c:eb_last
Unexecuted instantiation: stats-json.c:eb_last
Unexecuted instantiation: stats-proxy.c:eb_last
Unexecuted instantiation: flt_spoe.c:eb_last
Unexecuted instantiation: h1_htx.c:eb_last
Unexecuted instantiation: lru.c:eb_last
549
550
/* Return previous leaf node before an existing leaf node, or NULL if none. */
551
static inline struct eb_node *eb_prev(struct eb_node *node)
552
0
{
553
0
  eb_troot_t *t = node->leaf_p;
554
555
0
  while (eb_gettag(t) == EB_LEFT) {
556
    /* Walking up from left branch. We must ensure that we never
557
     * walk beyond root.
558
     */
559
0
    if (unlikely(eb_clrtag((eb_untag(t, EB_LEFT))->b[EB_RGHT]) == NULL))
560
0
      return NULL;
561
0
    t = (eb_root_to_node(eb_untag(t, EB_LEFT)))->node_p;
562
0
  }
563
  /* Note that <t> cannot be NULL at this stage */
564
0
  t = (eb_untag(t, EB_RGHT))->b[EB_LEFT];
565
0
  return eb_walk_down(t, EB_RGHT);
566
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_prev
Unexecuted instantiation: cfgparse.c:eb_prev
Unexecuted instantiation: chunk.c:eb_prev
Unexecuted instantiation: cli.c:eb_prev
Unexecuted instantiation: clock.c:eb_prev
Unexecuted instantiation: connection.c:eb_prev
Unexecuted instantiation: debug.c:eb_prev
Unexecuted instantiation: dynbuf.c:eb_prev
Unexecuted instantiation: ebtree.c:eb_prev
Unexecuted instantiation: errors.c:eb_prev
Unexecuted instantiation: fd.c:eb_prev
Unexecuted instantiation: filters.c:eb_prev
Unexecuted instantiation: flt_http_comp.c:eb_prev
Unexecuted instantiation: freq_ctr.c:eb_prev
Unexecuted instantiation: frontend.c:eb_prev
Unexecuted instantiation: haproxy.c:eb_prev
Unexecuted instantiation: http.c:eb_prev
Unexecuted instantiation: http_ana.c:eb_prev
Unexecuted instantiation: http_ext.c:eb_prev
Unexecuted instantiation: http_htx.c:eb_prev
Unexecuted instantiation: http_rules.c:eb_prev
Unexecuted instantiation: lb_chash.c:eb_prev
Unexecuted instantiation: lb_fas.c:eb_prev
Unexecuted instantiation: lb_fwlc.c:eb_prev
Unexecuted instantiation: lb_fwrr.c:eb_prev
Unexecuted instantiation: lb_map.c:eb_prev
Unexecuted instantiation: limits.c:eb_prev
Unexecuted instantiation: listener.c:eb_prev
Unexecuted instantiation: log.c:eb_prev
Unexecuted instantiation: mailers.c:eb_prev
Unexecuted instantiation: mworker.c:eb_prev
Unexecuted instantiation: peers.c:eb_prev
Unexecuted instantiation: pool.c:eb_prev
Unexecuted instantiation: proto_rhttp.c:eb_prev
Unexecuted instantiation: proto_sockpair.c:eb_prev
Unexecuted instantiation: protocol.c:eb_prev
Unexecuted instantiation: proxy.c:eb_prev
Unexecuted instantiation: queue.c:eb_prev
Unexecuted instantiation: regex.c:eb_prev
Unexecuted instantiation: resolvers.c:eb_prev
Unexecuted instantiation: ring.c:eb_prev
Unexecuted instantiation: sample.c:eb_prev
Unexecuted instantiation: server.c:eb_prev
Unexecuted instantiation: session.c:eb_prev
Unexecuted instantiation: signal.c:eb_prev
Unexecuted instantiation: sink.c:eb_prev
Unexecuted instantiation: sock.c:eb_prev
Unexecuted instantiation: sock_inet.c:eb_prev
Unexecuted instantiation: stats-html.c:eb_prev
Unexecuted instantiation: stats.c:eb_prev
Unexecuted instantiation: stconn.c:eb_prev
Unexecuted instantiation: stick_table.c:eb_prev
Unexecuted instantiation: stream.c:eb_prev
Unexecuted instantiation: systemd.c:eb_prev
Unexecuted instantiation: task.c:eb_prev
Unexecuted instantiation: tcp_rules.c:eb_prev
Unexecuted instantiation: tcpcheck.c:eb_prev
Unexecuted instantiation: thread.c:eb_prev
Unexecuted instantiation: tools.c:eb_prev
Unexecuted instantiation: trace.c:eb_prev
Unexecuted instantiation: vars.c:eb_prev
Unexecuted instantiation: acl.c:eb_prev
Unexecuted instantiation: action.c:eb_prev
Unexecuted instantiation: activity.c:eb_prev
Unexecuted instantiation: applet.c:eb_prev
Unexecuted instantiation: arg.c:eb_prev
Unexecuted instantiation: backend.c:eb_prev
Unexecuted instantiation: cache.c:eb_prev
Unexecuted instantiation: cfgcond.c:eb_prev
Unexecuted instantiation: cfgparse-global.c:eb_prev
Unexecuted instantiation: cfgparse-listen.c:eb_prev
Unexecuted instantiation: channel.c:eb_prev
Unexecuted instantiation: check.c:eb_prev
Unexecuted instantiation: compression.c:eb_prev
Unexecuted instantiation: counters.c:eb_prev
Unexecuted instantiation: dgram.c:eb_prev
Unexecuted instantiation: dict.c:eb_prev
Unexecuted instantiation: dns.c:eb_prev
Unexecuted instantiation: dns_ring.c:eb_prev
Unexecuted instantiation: eb32tree.c:eb_prev
Unexecuted instantiation: eb64tree.c:eb_prev
Unexecuted instantiation: ebimtree.c:eb_prev
Unexecuted instantiation: ebistree.c:eb_prev
Unexecuted instantiation: ebmbtree.c:eb_prev
Unexecuted instantiation: ebsttree.c:eb_prev
Unexecuted instantiation: event_hdl.c:eb_prev
Unexecuted instantiation: extcheck.c:eb_prev
Unexecuted instantiation: fcgi-app.c:eb_prev
Unexecuted instantiation: fix.c:eb_prev
Unexecuted instantiation: guid.c:eb_prev
Unexecuted instantiation: h1.c:eb_prev
Unexecuted instantiation: http_fetch.c:eb_prev
Unexecuted instantiation: mqtt.c:eb_prev
Unexecuted instantiation: mux_spop.c:eb_prev
Unexecuted instantiation: pattern.c:eb_prev
Unexecuted instantiation: payload.c:eb_prev
Unexecuted instantiation: proto_tcp.c:eb_prev
Unexecuted instantiation: shctx.c:eb_prev
Unexecuted instantiation: stats-file.c:eb_prev
Unexecuted instantiation: stats-json.c:eb_prev
Unexecuted instantiation: stats-proxy.c:eb_prev
Unexecuted instantiation: flt_spoe.c:eb_prev
Unexecuted instantiation: h1_htx.c:eb_prev
Unexecuted instantiation: lru.c:eb_prev
567
568
/* Return next leaf node after an existing leaf node, or NULL if none. */
569
static inline struct eb_node *eb_next(struct eb_node *node)
570
0
{
571
0
  eb_troot_t *t = node->leaf_p;
572
573
0
  while (eb_gettag(t) != EB_LEFT)
574
    /* Walking up from right branch, so we cannot be below root */
575
0
    t = (eb_root_to_node(eb_untag(t, EB_RGHT)))->node_p;
576
577
  /* Note that <t> cannot be NULL at this stage */
578
0
  t = (eb_untag(t, EB_LEFT))->b[EB_RGHT];
579
0
  if (eb_clrtag(t) == NULL)
580
0
    return NULL;
581
0
  return eb_walk_down(t, EB_LEFT);
582
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_next
Unexecuted instantiation: cfgparse.c:eb_next
Unexecuted instantiation: chunk.c:eb_next
Unexecuted instantiation: cli.c:eb_next
Unexecuted instantiation: clock.c:eb_next
Unexecuted instantiation: connection.c:eb_next
Unexecuted instantiation: debug.c:eb_next
Unexecuted instantiation: dynbuf.c:eb_next
Unexecuted instantiation: ebtree.c:eb_next
Unexecuted instantiation: errors.c:eb_next
Unexecuted instantiation: fd.c:eb_next
Unexecuted instantiation: filters.c:eb_next
Unexecuted instantiation: flt_http_comp.c:eb_next
Unexecuted instantiation: freq_ctr.c:eb_next
Unexecuted instantiation: frontend.c:eb_next
Unexecuted instantiation: haproxy.c:eb_next
Unexecuted instantiation: http.c:eb_next
Unexecuted instantiation: http_ana.c:eb_next
Unexecuted instantiation: http_ext.c:eb_next
Unexecuted instantiation: http_htx.c:eb_next
Unexecuted instantiation: http_rules.c:eb_next
Unexecuted instantiation: lb_chash.c:eb_next
Unexecuted instantiation: lb_fas.c:eb_next
Unexecuted instantiation: lb_fwlc.c:eb_next
Unexecuted instantiation: lb_fwrr.c:eb_next
Unexecuted instantiation: lb_map.c:eb_next
Unexecuted instantiation: limits.c:eb_next
Unexecuted instantiation: listener.c:eb_next
Unexecuted instantiation: log.c:eb_next
Unexecuted instantiation: mailers.c:eb_next
Unexecuted instantiation: mworker.c:eb_next
Unexecuted instantiation: peers.c:eb_next
Unexecuted instantiation: pool.c:eb_next
Unexecuted instantiation: proto_rhttp.c:eb_next
Unexecuted instantiation: proto_sockpair.c:eb_next
Unexecuted instantiation: protocol.c:eb_next
Unexecuted instantiation: proxy.c:eb_next
Unexecuted instantiation: queue.c:eb_next
Unexecuted instantiation: regex.c:eb_next
Unexecuted instantiation: resolvers.c:eb_next
Unexecuted instantiation: ring.c:eb_next
Unexecuted instantiation: sample.c:eb_next
Unexecuted instantiation: server.c:eb_next
Unexecuted instantiation: session.c:eb_next
Unexecuted instantiation: signal.c:eb_next
Unexecuted instantiation: sink.c:eb_next
Unexecuted instantiation: sock.c:eb_next
Unexecuted instantiation: sock_inet.c:eb_next
Unexecuted instantiation: stats-html.c:eb_next
Unexecuted instantiation: stats.c:eb_next
Unexecuted instantiation: stconn.c:eb_next
Unexecuted instantiation: stick_table.c:eb_next
Unexecuted instantiation: stream.c:eb_next
Unexecuted instantiation: systemd.c:eb_next
Unexecuted instantiation: task.c:eb_next
Unexecuted instantiation: tcp_rules.c:eb_next
Unexecuted instantiation: tcpcheck.c:eb_next
Unexecuted instantiation: thread.c:eb_next
Unexecuted instantiation: tools.c:eb_next
Unexecuted instantiation: trace.c:eb_next
Unexecuted instantiation: vars.c:eb_next
Unexecuted instantiation: acl.c:eb_next
Unexecuted instantiation: action.c:eb_next
Unexecuted instantiation: activity.c:eb_next
Unexecuted instantiation: applet.c:eb_next
Unexecuted instantiation: arg.c:eb_next
Unexecuted instantiation: backend.c:eb_next
Unexecuted instantiation: cache.c:eb_next
Unexecuted instantiation: cfgcond.c:eb_next
Unexecuted instantiation: cfgparse-global.c:eb_next
Unexecuted instantiation: cfgparse-listen.c:eb_next
Unexecuted instantiation: channel.c:eb_next
Unexecuted instantiation: check.c:eb_next
Unexecuted instantiation: compression.c:eb_next
Unexecuted instantiation: counters.c:eb_next
Unexecuted instantiation: dgram.c:eb_next
Unexecuted instantiation: dict.c:eb_next
Unexecuted instantiation: dns.c:eb_next
Unexecuted instantiation: dns_ring.c:eb_next
Unexecuted instantiation: eb32tree.c:eb_next
Unexecuted instantiation: eb64tree.c:eb_next
Unexecuted instantiation: ebimtree.c:eb_next
Unexecuted instantiation: ebistree.c:eb_next
Unexecuted instantiation: ebmbtree.c:eb_next
Unexecuted instantiation: ebsttree.c:eb_next
Unexecuted instantiation: event_hdl.c:eb_next
Unexecuted instantiation: extcheck.c:eb_next
Unexecuted instantiation: fcgi-app.c:eb_next
Unexecuted instantiation: fix.c:eb_next
Unexecuted instantiation: guid.c:eb_next
Unexecuted instantiation: h1.c:eb_next
Unexecuted instantiation: http_fetch.c:eb_next
Unexecuted instantiation: mqtt.c:eb_next
Unexecuted instantiation: mux_spop.c:eb_next
Unexecuted instantiation: pattern.c:eb_next
Unexecuted instantiation: payload.c:eb_next
Unexecuted instantiation: proto_tcp.c:eb_next
Unexecuted instantiation: shctx.c:eb_next
Unexecuted instantiation: stats-file.c:eb_next
Unexecuted instantiation: stats-json.c:eb_next
Unexecuted instantiation: stats-proxy.c:eb_next
Unexecuted instantiation: flt_spoe.c:eb_next
Unexecuted instantiation: h1_htx.c:eb_next
Unexecuted instantiation: lru.c:eb_next
583
584
/* Return previous leaf node within a duplicate sub-tree, or NULL if none. */
585
static inline struct eb_node *eb_prev_dup(struct eb_node *node)
586
0
{
587
0
  eb_troot_t *t = node->leaf_p;
588
589
0
  while (eb_gettag(t) == EB_LEFT) {
590
    /* Walking up from left branch. We must ensure that we never
591
     * walk beyond root.
592
     */
593
0
    if (unlikely(eb_clrtag((eb_untag(t, EB_LEFT))->b[EB_RGHT]) == NULL))
594
0
      return NULL;
595
    /* if the current node leaves a dup tree, quit */
596
0
    if ((eb_root_to_node(eb_untag(t, EB_LEFT)))->bit >= 0)
597
0
      return NULL;
598
0
    t = (eb_root_to_node(eb_untag(t, EB_LEFT)))->node_p;
599
0
  }
600
  /* Note that <t> cannot be NULL at this stage */
601
0
  if ((eb_root_to_node(eb_untag(t, EB_RGHT)))->bit >= 0)
602
0
    return NULL;
603
0
  t = (eb_untag(t, EB_RGHT))->b[EB_LEFT];
604
0
  return eb_walk_down(t, EB_RGHT);
605
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_prev_dup
Unexecuted instantiation: cfgparse.c:eb_prev_dup
Unexecuted instantiation: chunk.c:eb_prev_dup
Unexecuted instantiation: cli.c:eb_prev_dup
Unexecuted instantiation: clock.c:eb_prev_dup
Unexecuted instantiation: connection.c:eb_prev_dup
Unexecuted instantiation: debug.c:eb_prev_dup
Unexecuted instantiation: dynbuf.c:eb_prev_dup
Unexecuted instantiation: ebtree.c:eb_prev_dup
Unexecuted instantiation: errors.c:eb_prev_dup
Unexecuted instantiation: fd.c:eb_prev_dup
Unexecuted instantiation: filters.c:eb_prev_dup
Unexecuted instantiation: flt_http_comp.c:eb_prev_dup
Unexecuted instantiation: freq_ctr.c:eb_prev_dup
Unexecuted instantiation: frontend.c:eb_prev_dup
Unexecuted instantiation: haproxy.c:eb_prev_dup
Unexecuted instantiation: http.c:eb_prev_dup
Unexecuted instantiation: http_ana.c:eb_prev_dup
Unexecuted instantiation: http_ext.c:eb_prev_dup
Unexecuted instantiation: http_htx.c:eb_prev_dup
Unexecuted instantiation: http_rules.c:eb_prev_dup
Unexecuted instantiation: lb_chash.c:eb_prev_dup
Unexecuted instantiation: lb_fas.c:eb_prev_dup
Unexecuted instantiation: lb_fwlc.c:eb_prev_dup
Unexecuted instantiation: lb_fwrr.c:eb_prev_dup
Unexecuted instantiation: lb_map.c:eb_prev_dup
Unexecuted instantiation: limits.c:eb_prev_dup
Unexecuted instantiation: listener.c:eb_prev_dup
Unexecuted instantiation: log.c:eb_prev_dup
Unexecuted instantiation: mailers.c:eb_prev_dup
Unexecuted instantiation: mworker.c:eb_prev_dup
Unexecuted instantiation: peers.c:eb_prev_dup
Unexecuted instantiation: pool.c:eb_prev_dup
Unexecuted instantiation: proto_rhttp.c:eb_prev_dup
Unexecuted instantiation: proto_sockpair.c:eb_prev_dup
Unexecuted instantiation: protocol.c:eb_prev_dup
Unexecuted instantiation: proxy.c:eb_prev_dup
Unexecuted instantiation: queue.c:eb_prev_dup
Unexecuted instantiation: regex.c:eb_prev_dup
Unexecuted instantiation: resolvers.c:eb_prev_dup
Unexecuted instantiation: ring.c:eb_prev_dup
Unexecuted instantiation: sample.c:eb_prev_dup
Unexecuted instantiation: server.c:eb_prev_dup
Unexecuted instantiation: session.c:eb_prev_dup
Unexecuted instantiation: signal.c:eb_prev_dup
Unexecuted instantiation: sink.c:eb_prev_dup
Unexecuted instantiation: sock.c:eb_prev_dup
Unexecuted instantiation: sock_inet.c:eb_prev_dup
Unexecuted instantiation: stats-html.c:eb_prev_dup
Unexecuted instantiation: stats.c:eb_prev_dup
Unexecuted instantiation: stconn.c:eb_prev_dup
Unexecuted instantiation: stick_table.c:eb_prev_dup
Unexecuted instantiation: stream.c:eb_prev_dup
Unexecuted instantiation: systemd.c:eb_prev_dup
Unexecuted instantiation: task.c:eb_prev_dup
Unexecuted instantiation: tcp_rules.c:eb_prev_dup
Unexecuted instantiation: tcpcheck.c:eb_prev_dup
Unexecuted instantiation: thread.c:eb_prev_dup
Unexecuted instantiation: tools.c:eb_prev_dup
Unexecuted instantiation: trace.c:eb_prev_dup
Unexecuted instantiation: vars.c:eb_prev_dup
Unexecuted instantiation: acl.c:eb_prev_dup
Unexecuted instantiation: action.c:eb_prev_dup
Unexecuted instantiation: activity.c:eb_prev_dup
Unexecuted instantiation: applet.c:eb_prev_dup
Unexecuted instantiation: arg.c:eb_prev_dup
Unexecuted instantiation: backend.c:eb_prev_dup
Unexecuted instantiation: cache.c:eb_prev_dup
Unexecuted instantiation: cfgcond.c:eb_prev_dup
Unexecuted instantiation: cfgparse-global.c:eb_prev_dup
Unexecuted instantiation: cfgparse-listen.c:eb_prev_dup
Unexecuted instantiation: channel.c:eb_prev_dup
Unexecuted instantiation: check.c:eb_prev_dup
Unexecuted instantiation: compression.c:eb_prev_dup
Unexecuted instantiation: counters.c:eb_prev_dup
Unexecuted instantiation: dgram.c:eb_prev_dup
Unexecuted instantiation: dict.c:eb_prev_dup
Unexecuted instantiation: dns.c:eb_prev_dup
Unexecuted instantiation: dns_ring.c:eb_prev_dup
Unexecuted instantiation: eb32tree.c:eb_prev_dup
Unexecuted instantiation: eb64tree.c:eb_prev_dup
Unexecuted instantiation: ebimtree.c:eb_prev_dup
Unexecuted instantiation: ebistree.c:eb_prev_dup
Unexecuted instantiation: ebmbtree.c:eb_prev_dup
Unexecuted instantiation: ebsttree.c:eb_prev_dup
Unexecuted instantiation: event_hdl.c:eb_prev_dup
Unexecuted instantiation: extcheck.c:eb_prev_dup
Unexecuted instantiation: fcgi-app.c:eb_prev_dup
Unexecuted instantiation: fix.c:eb_prev_dup
Unexecuted instantiation: guid.c:eb_prev_dup
Unexecuted instantiation: h1.c:eb_prev_dup
Unexecuted instantiation: http_fetch.c:eb_prev_dup
Unexecuted instantiation: mqtt.c:eb_prev_dup
Unexecuted instantiation: mux_spop.c:eb_prev_dup
Unexecuted instantiation: pattern.c:eb_prev_dup
Unexecuted instantiation: payload.c:eb_prev_dup
Unexecuted instantiation: proto_tcp.c:eb_prev_dup
Unexecuted instantiation: shctx.c:eb_prev_dup
Unexecuted instantiation: stats-file.c:eb_prev_dup
Unexecuted instantiation: stats-json.c:eb_prev_dup
Unexecuted instantiation: stats-proxy.c:eb_prev_dup
Unexecuted instantiation: flt_spoe.c:eb_prev_dup
Unexecuted instantiation: h1_htx.c:eb_prev_dup
Unexecuted instantiation: lru.c:eb_prev_dup
606
607
/* Return next leaf node within a duplicate sub-tree, or NULL if none. */
608
static inline struct eb_node *eb_next_dup(struct eb_node *node)
609
0
{
610
0
  eb_troot_t *t = node->leaf_p;
611
612
0
  while (eb_gettag(t) != EB_LEFT) {
613
    /* Walking up from right branch, so we cannot be below root */
614
    /* if the current node leaves a dup tree, quit */
615
0
    if ((eb_root_to_node(eb_untag(t, EB_RGHT)))->bit >= 0)
616
0
      return NULL;
617
0
    t = (eb_root_to_node(eb_untag(t, EB_RGHT)))->node_p;
618
0
  }
619
620
  /* Note that <t> cannot be NULL at this stage. If our leaf is directly
621
   * under the root, we must not try to cast the leaf_p into a eb_node*
622
   * since it is a pointer to an eb_root.
623
   */
624
0
  if (eb_clrtag((eb_untag(t, EB_LEFT))->b[EB_RGHT]) == NULL)
625
0
    return NULL;
626
627
0
  if ((eb_root_to_node(eb_untag(t, EB_LEFT)))->bit >= 0)
628
0
    return NULL;
629
0
  t = (eb_untag(t, EB_LEFT))->b[EB_RGHT];
630
0
  return eb_walk_down(t, EB_LEFT);
631
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_next_dup
Unexecuted instantiation: cfgparse.c:eb_next_dup
Unexecuted instantiation: chunk.c:eb_next_dup
Unexecuted instantiation: cli.c:eb_next_dup
Unexecuted instantiation: clock.c:eb_next_dup
Unexecuted instantiation: connection.c:eb_next_dup
Unexecuted instantiation: debug.c:eb_next_dup
Unexecuted instantiation: dynbuf.c:eb_next_dup
Unexecuted instantiation: ebtree.c:eb_next_dup
Unexecuted instantiation: errors.c:eb_next_dup
Unexecuted instantiation: fd.c:eb_next_dup
Unexecuted instantiation: filters.c:eb_next_dup
Unexecuted instantiation: flt_http_comp.c:eb_next_dup
Unexecuted instantiation: freq_ctr.c:eb_next_dup
Unexecuted instantiation: frontend.c:eb_next_dup
Unexecuted instantiation: haproxy.c:eb_next_dup
Unexecuted instantiation: http.c:eb_next_dup
Unexecuted instantiation: http_ana.c:eb_next_dup
Unexecuted instantiation: http_ext.c:eb_next_dup
Unexecuted instantiation: http_htx.c:eb_next_dup
Unexecuted instantiation: http_rules.c:eb_next_dup
Unexecuted instantiation: lb_chash.c:eb_next_dup
Unexecuted instantiation: lb_fas.c:eb_next_dup
Unexecuted instantiation: lb_fwlc.c:eb_next_dup
Unexecuted instantiation: lb_fwrr.c:eb_next_dup
Unexecuted instantiation: lb_map.c:eb_next_dup
Unexecuted instantiation: limits.c:eb_next_dup
Unexecuted instantiation: listener.c:eb_next_dup
Unexecuted instantiation: log.c:eb_next_dup
Unexecuted instantiation: mailers.c:eb_next_dup
Unexecuted instantiation: mworker.c:eb_next_dup
Unexecuted instantiation: peers.c:eb_next_dup
Unexecuted instantiation: pool.c:eb_next_dup
Unexecuted instantiation: proto_rhttp.c:eb_next_dup
Unexecuted instantiation: proto_sockpair.c:eb_next_dup
Unexecuted instantiation: protocol.c:eb_next_dup
Unexecuted instantiation: proxy.c:eb_next_dup
Unexecuted instantiation: queue.c:eb_next_dup
Unexecuted instantiation: regex.c:eb_next_dup
Unexecuted instantiation: resolvers.c:eb_next_dup
Unexecuted instantiation: ring.c:eb_next_dup
Unexecuted instantiation: sample.c:eb_next_dup
Unexecuted instantiation: server.c:eb_next_dup
Unexecuted instantiation: session.c:eb_next_dup
Unexecuted instantiation: signal.c:eb_next_dup
Unexecuted instantiation: sink.c:eb_next_dup
Unexecuted instantiation: sock.c:eb_next_dup
Unexecuted instantiation: sock_inet.c:eb_next_dup
Unexecuted instantiation: stats-html.c:eb_next_dup
Unexecuted instantiation: stats.c:eb_next_dup
Unexecuted instantiation: stconn.c:eb_next_dup
Unexecuted instantiation: stick_table.c:eb_next_dup
Unexecuted instantiation: stream.c:eb_next_dup
Unexecuted instantiation: systemd.c:eb_next_dup
Unexecuted instantiation: task.c:eb_next_dup
Unexecuted instantiation: tcp_rules.c:eb_next_dup
Unexecuted instantiation: tcpcheck.c:eb_next_dup
Unexecuted instantiation: thread.c:eb_next_dup
Unexecuted instantiation: tools.c:eb_next_dup
Unexecuted instantiation: trace.c:eb_next_dup
Unexecuted instantiation: vars.c:eb_next_dup
Unexecuted instantiation: acl.c:eb_next_dup
Unexecuted instantiation: action.c:eb_next_dup
Unexecuted instantiation: activity.c:eb_next_dup
Unexecuted instantiation: applet.c:eb_next_dup
Unexecuted instantiation: arg.c:eb_next_dup
Unexecuted instantiation: backend.c:eb_next_dup
Unexecuted instantiation: cache.c:eb_next_dup
Unexecuted instantiation: cfgcond.c:eb_next_dup
Unexecuted instantiation: cfgparse-global.c:eb_next_dup
Unexecuted instantiation: cfgparse-listen.c:eb_next_dup
Unexecuted instantiation: channel.c:eb_next_dup
Unexecuted instantiation: check.c:eb_next_dup
Unexecuted instantiation: compression.c:eb_next_dup
Unexecuted instantiation: counters.c:eb_next_dup
Unexecuted instantiation: dgram.c:eb_next_dup
Unexecuted instantiation: dict.c:eb_next_dup
Unexecuted instantiation: dns.c:eb_next_dup
Unexecuted instantiation: dns_ring.c:eb_next_dup
Unexecuted instantiation: eb32tree.c:eb_next_dup
Unexecuted instantiation: eb64tree.c:eb_next_dup
Unexecuted instantiation: ebimtree.c:eb_next_dup
Unexecuted instantiation: ebistree.c:eb_next_dup
Unexecuted instantiation: ebmbtree.c:eb_next_dup
Unexecuted instantiation: ebsttree.c:eb_next_dup
Unexecuted instantiation: event_hdl.c:eb_next_dup
Unexecuted instantiation: extcheck.c:eb_next_dup
Unexecuted instantiation: fcgi-app.c:eb_next_dup
Unexecuted instantiation: fix.c:eb_next_dup
Unexecuted instantiation: guid.c:eb_next_dup
Unexecuted instantiation: h1.c:eb_next_dup
Unexecuted instantiation: http_fetch.c:eb_next_dup
Unexecuted instantiation: mqtt.c:eb_next_dup
Unexecuted instantiation: mux_spop.c:eb_next_dup
Unexecuted instantiation: pattern.c:eb_next_dup
Unexecuted instantiation: payload.c:eb_next_dup
Unexecuted instantiation: proto_tcp.c:eb_next_dup
Unexecuted instantiation: shctx.c:eb_next_dup
Unexecuted instantiation: stats-file.c:eb_next_dup
Unexecuted instantiation: stats-json.c:eb_next_dup
Unexecuted instantiation: stats-proxy.c:eb_next_dup
Unexecuted instantiation: flt_spoe.c:eb_next_dup
Unexecuted instantiation: h1_htx.c:eb_next_dup
Unexecuted instantiation: lru.c:eb_next_dup
632
633
/* Return previous leaf node before an existing leaf node, skipping duplicates,
634
 * or NULL if none. */
635
static inline struct eb_node *eb_prev_unique(struct eb_node *node)
636
0
{
637
0
  eb_troot_t *t = node->leaf_p;
638
0
639
0
  while (1) {
640
0
    if (eb_gettag(t) != EB_LEFT) {
641
0
      node = eb_root_to_node(eb_untag(t, EB_RGHT));
642
0
      /* if we're right and not in duplicates, stop here */
643
0
      if (node->bit >= 0)
644
0
        break;
645
0
      t = node->node_p;
646
0
    }
647
0
    else {
648
0
      /* Walking up from left branch. We must ensure that we never
649
0
       * walk beyond root.
650
0
       */
651
0
      if (unlikely(eb_clrtag((eb_untag(t, EB_LEFT))->b[EB_RGHT]) == NULL))
652
0
        return NULL;
653
0
      t = (eb_root_to_node(eb_untag(t, EB_LEFT)))->node_p;
654
0
    }
655
0
  }
656
0
  /* Note that <t> cannot be NULL at this stage */
657
0
  t = (eb_untag(t, EB_RGHT))->b[EB_LEFT];
658
0
  return eb_walk_down(t, EB_RGHT);
659
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_prev_unique
Unexecuted instantiation: cfgparse.c:eb_prev_unique
Unexecuted instantiation: chunk.c:eb_prev_unique
Unexecuted instantiation: cli.c:eb_prev_unique
Unexecuted instantiation: clock.c:eb_prev_unique
Unexecuted instantiation: connection.c:eb_prev_unique
Unexecuted instantiation: debug.c:eb_prev_unique
Unexecuted instantiation: dynbuf.c:eb_prev_unique
Unexecuted instantiation: ebtree.c:eb_prev_unique
Unexecuted instantiation: errors.c:eb_prev_unique
Unexecuted instantiation: fd.c:eb_prev_unique
Unexecuted instantiation: filters.c:eb_prev_unique
Unexecuted instantiation: flt_http_comp.c:eb_prev_unique
Unexecuted instantiation: freq_ctr.c:eb_prev_unique
Unexecuted instantiation: frontend.c:eb_prev_unique
Unexecuted instantiation: haproxy.c:eb_prev_unique
Unexecuted instantiation: http.c:eb_prev_unique
Unexecuted instantiation: http_ana.c:eb_prev_unique
Unexecuted instantiation: http_ext.c:eb_prev_unique
Unexecuted instantiation: http_htx.c:eb_prev_unique
Unexecuted instantiation: http_rules.c:eb_prev_unique
Unexecuted instantiation: lb_chash.c:eb_prev_unique
Unexecuted instantiation: lb_fas.c:eb_prev_unique
Unexecuted instantiation: lb_fwlc.c:eb_prev_unique
Unexecuted instantiation: lb_fwrr.c:eb_prev_unique
Unexecuted instantiation: lb_map.c:eb_prev_unique
Unexecuted instantiation: limits.c:eb_prev_unique
Unexecuted instantiation: listener.c:eb_prev_unique
Unexecuted instantiation: log.c:eb_prev_unique
Unexecuted instantiation: mailers.c:eb_prev_unique
Unexecuted instantiation: mworker.c:eb_prev_unique
Unexecuted instantiation: peers.c:eb_prev_unique
Unexecuted instantiation: pool.c:eb_prev_unique
Unexecuted instantiation: proto_rhttp.c:eb_prev_unique
Unexecuted instantiation: proto_sockpair.c:eb_prev_unique
Unexecuted instantiation: protocol.c:eb_prev_unique
Unexecuted instantiation: proxy.c:eb_prev_unique
Unexecuted instantiation: queue.c:eb_prev_unique
Unexecuted instantiation: regex.c:eb_prev_unique
Unexecuted instantiation: resolvers.c:eb_prev_unique
Unexecuted instantiation: ring.c:eb_prev_unique
Unexecuted instantiation: sample.c:eb_prev_unique
Unexecuted instantiation: server.c:eb_prev_unique
Unexecuted instantiation: session.c:eb_prev_unique
Unexecuted instantiation: signal.c:eb_prev_unique
Unexecuted instantiation: sink.c:eb_prev_unique
Unexecuted instantiation: sock.c:eb_prev_unique
Unexecuted instantiation: sock_inet.c:eb_prev_unique
Unexecuted instantiation: stats-html.c:eb_prev_unique
Unexecuted instantiation: stats.c:eb_prev_unique
Unexecuted instantiation: stconn.c:eb_prev_unique
Unexecuted instantiation: stick_table.c:eb_prev_unique
Unexecuted instantiation: stream.c:eb_prev_unique
Unexecuted instantiation: systemd.c:eb_prev_unique
Unexecuted instantiation: task.c:eb_prev_unique
Unexecuted instantiation: tcp_rules.c:eb_prev_unique
Unexecuted instantiation: tcpcheck.c:eb_prev_unique
Unexecuted instantiation: thread.c:eb_prev_unique
Unexecuted instantiation: tools.c:eb_prev_unique
Unexecuted instantiation: trace.c:eb_prev_unique
Unexecuted instantiation: vars.c:eb_prev_unique
Unexecuted instantiation: acl.c:eb_prev_unique
Unexecuted instantiation: action.c:eb_prev_unique
Unexecuted instantiation: activity.c:eb_prev_unique
Unexecuted instantiation: applet.c:eb_prev_unique
Unexecuted instantiation: arg.c:eb_prev_unique
Unexecuted instantiation: backend.c:eb_prev_unique
Unexecuted instantiation: cache.c:eb_prev_unique
Unexecuted instantiation: cfgcond.c:eb_prev_unique
Unexecuted instantiation: cfgparse-global.c:eb_prev_unique
Unexecuted instantiation: cfgparse-listen.c:eb_prev_unique
Unexecuted instantiation: channel.c:eb_prev_unique
Unexecuted instantiation: check.c:eb_prev_unique
Unexecuted instantiation: compression.c:eb_prev_unique
Unexecuted instantiation: counters.c:eb_prev_unique
Unexecuted instantiation: dgram.c:eb_prev_unique
Unexecuted instantiation: dict.c:eb_prev_unique
Unexecuted instantiation: dns.c:eb_prev_unique
Unexecuted instantiation: dns_ring.c:eb_prev_unique
Unexecuted instantiation: eb32tree.c:eb_prev_unique
Unexecuted instantiation: eb64tree.c:eb_prev_unique
Unexecuted instantiation: ebimtree.c:eb_prev_unique
Unexecuted instantiation: ebistree.c:eb_prev_unique
Unexecuted instantiation: ebmbtree.c:eb_prev_unique
Unexecuted instantiation: ebsttree.c:eb_prev_unique
Unexecuted instantiation: event_hdl.c:eb_prev_unique
Unexecuted instantiation: extcheck.c:eb_prev_unique
Unexecuted instantiation: fcgi-app.c:eb_prev_unique
Unexecuted instantiation: fix.c:eb_prev_unique
Unexecuted instantiation: guid.c:eb_prev_unique
Unexecuted instantiation: h1.c:eb_prev_unique
Unexecuted instantiation: http_fetch.c:eb_prev_unique
Unexecuted instantiation: mqtt.c:eb_prev_unique
Unexecuted instantiation: mux_spop.c:eb_prev_unique
Unexecuted instantiation: pattern.c:eb_prev_unique
Unexecuted instantiation: payload.c:eb_prev_unique
Unexecuted instantiation: proto_tcp.c:eb_prev_unique
Unexecuted instantiation: shctx.c:eb_prev_unique
Unexecuted instantiation: stats-file.c:eb_prev_unique
Unexecuted instantiation: stats-json.c:eb_prev_unique
Unexecuted instantiation: stats-proxy.c:eb_prev_unique
Unexecuted instantiation: flt_spoe.c:eb_prev_unique
Unexecuted instantiation: h1_htx.c:eb_prev_unique
Unexecuted instantiation: lru.c:eb_prev_unique
660
661
/* Return next leaf node after an existing leaf node, skipping duplicates, or
662
 * NULL if none.
663
 */
664
static inline struct eb_node *eb_next_unique(struct eb_node *node)
665
0
{
666
0
  eb_troot_t *t = node->leaf_p;
667
0
668
0
  while (1) {
669
0
    if (eb_gettag(t) == EB_LEFT) {
670
0
      if (unlikely(eb_clrtag((eb_untag(t, EB_LEFT))->b[EB_RGHT]) == NULL))
671
0
        return NULL;  /* we reached root */
672
0
      node = eb_root_to_node(eb_untag(t, EB_LEFT));
673
0
      /* if we're left and not in duplicates, stop here */
674
0
      if (node->bit >= 0)
675
0
        break;
676
0
      t = node->node_p;
677
0
    }
678
0
    else {
679
0
      /* Walking up from right branch, so we cannot be below root */
680
0
      t = (eb_root_to_node(eb_untag(t, EB_RGHT)))->node_p;
681
0
    }
682
0
  }
683
0
684
0
  /* Note that <t> cannot be NULL at this stage */
685
0
  t = (eb_untag(t, EB_LEFT))->b[EB_RGHT];
686
0
  if (eb_clrtag(t) == NULL)
687
0
    return NULL;
688
0
  return eb_walk_down(t, EB_LEFT);
689
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:eb_next_unique
Unexecuted instantiation: cfgparse.c:eb_next_unique
Unexecuted instantiation: chunk.c:eb_next_unique
Unexecuted instantiation: cli.c:eb_next_unique
Unexecuted instantiation: clock.c:eb_next_unique
Unexecuted instantiation: connection.c:eb_next_unique
Unexecuted instantiation: debug.c:eb_next_unique
Unexecuted instantiation: dynbuf.c:eb_next_unique
Unexecuted instantiation: ebtree.c:eb_next_unique
Unexecuted instantiation: errors.c:eb_next_unique
Unexecuted instantiation: fd.c:eb_next_unique
Unexecuted instantiation: filters.c:eb_next_unique
Unexecuted instantiation: flt_http_comp.c:eb_next_unique
Unexecuted instantiation: freq_ctr.c:eb_next_unique
Unexecuted instantiation: frontend.c:eb_next_unique
Unexecuted instantiation: haproxy.c:eb_next_unique
Unexecuted instantiation: http.c:eb_next_unique
Unexecuted instantiation: http_ana.c:eb_next_unique
Unexecuted instantiation: http_ext.c:eb_next_unique
Unexecuted instantiation: http_htx.c:eb_next_unique
Unexecuted instantiation: http_rules.c:eb_next_unique
Unexecuted instantiation: lb_chash.c:eb_next_unique
Unexecuted instantiation: lb_fas.c:eb_next_unique
Unexecuted instantiation: lb_fwlc.c:eb_next_unique
Unexecuted instantiation: lb_fwrr.c:eb_next_unique
Unexecuted instantiation: lb_map.c:eb_next_unique
Unexecuted instantiation: limits.c:eb_next_unique
Unexecuted instantiation: listener.c:eb_next_unique
Unexecuted instantiation: log.c:eb_next_unique
Unexecuted instantiation: mailers.c:eb_next_unique
Unexecuted instantiation: mworker.c:eb_next_unique
Unexecuted instantiation: peers.c:eb_next_unique
Unexecuted instantiation: pool.c:eb_next_unique
Unexecuted instantiation: proto_rhttp.c:eb_next_unique
Unexecuted instantiation: proto_sockpair.c:eb_next_unique
Unexecuted instantiation: protocol.c:eb_next_unique
Unexecuted instantiation: proxy.c:eb_next_unique
Unexecuted instantiation: queue.c:eb_next_unique
Unexecuted instantiation: regex.c:eb_next_unique
Unexecuted instantiation: resolvers.c:eb_next_unique
Unexecuted instantiation: ring.c:eb_next_unique
Unexecuted instantiation: sample.c:eb_next_unique
Unexecuted instantiation: server.c:eb_next_unique
Unexecuted instantiation: session.c:eb_next_unique
Unexecuted instantiation: signal.c:eb_next_unique
Unexecuted instantiation: sink.c:eb_next_unique
Unexecuted instantiation: sock.c:eb_next_unique
Unexecuted instantiation: sock_inet.c:eb_next_unique
Unexecuted instantiation: stats-html.c:eb_next_unique
Unexecuted instantiation: stats.c:eb_next_unique
Unexecuted instantiation: stconn.c:eb_next_unique
Unexecuted instantiation: stick_table.c:eb_next_unique
Unexecuted instantiation: stream.c:eb_next_unique
Unexecuted instantiation: systemd.c:eb_next_unique
Unexecuted instantiation: task.c:eb_next_unique
Unexecuted instantiation: tcp_rules.c:eb_next_unique
Unexecuted instantiation: tcpcheck.c:eb_next_unique
Unexecuted instantiation: thread.c:eb_next_unique
Unexecuted instantiation: tools.c:eb_next_unique
Unexecuted instantiation: trace.c:eb_next_unique
Unexecuted instantiation: vars.c:eb_next_unique
Unexecuted instantiation: acl.c:eb_next_unique
Unexecuted instantiation: action.c:eb_next_unique
Unexecuted instantiation: activity.c:eb_next_unique
Unexecuted instantiation: applet.c:eb_next_unique
Unexecuted instantiation: arg.c:eb_next_unique
Unexecuted instantiation: backend.c:eb_next_unique
Unexecuted instantiation: cache.c:eb_next_unique
Unexecuted instantiation: cfgcond.c:eb_next_unique
Unexecuted instantiation: cfgparse-global.c:eb_next_unique
Unexecuted instantiation: cfgparse-listen.c:eb_next_unique
Unexecuted instantiation: channel.c:eb_next_unique
Unexecuted instantiation: check.c:eb_next_unique
Unexecuted instantiation: compression.c:eb_next_unique
Unexecuted instantiation: counters.c:eb_next_unique
Unexecuted instantiation: dgram.c:eb_next_unique
Unexecuted instantiation: dict.c:eb_next_unique
Unexecuted instantiation: dns.c:eb_next_unique
Unexecuted instantiation: dns_ring.c:eb_next_unique
Unexecuted instantiation: eb32tree.c:eb_next_unique
Unexecuted instantiation: eb64tree.c:eb_next_unique
Unexecuted instantiation: ebimtree.c:eb_next_unique
Unexecuted instantiation: ebistree.c:eb_next_unique
Unexecuted instantiation: ebmbtree.c:eb_next_unique
Unexecuted instantiation: ebsttree.c:eb_next_unique
Unexecuted instantiation: event_hdl.c:eb_next_unique
Unexecuted instantiation: extcheck.c:eb_next_unique
Unexecuted instantiation: fcgi-app.c:eb_next_unique
Unexecuted instantiation: fix.c:eb_next_unique
Unexecuted instantiation: guid.c:eb_next_unique
Unexecuted instantiation: h1.c:eb_next_unique
Unexecuted instantiation: http_fetch.c:eb_next_unique
Unexecuted instantiation: mqtt.c:eb_next_unique
Unexecuted instantiation: mux_spop.c:eb_next_unique
Unexecuted instantiation: pattern.c:eb_next_unique
Unexecuted instantiation: payload.c:eb_next_unique
Unexecuted instantiation: proto_tcp.c:eb_next_unique
Unexecuted instantiation: shctx.c:eb_next_unique
Unexecuted instantiation: stats-file.c:eb_next_unique
Unexecuted instantiation: stats-json.c:eb_next_unique
Unexecuted instantiation: stats-proxy.c:eb_next_unique
Unexecuted instantiation: flt_spoe.c:eb_next_unique
Unexecuted instantiation: h1_htx.c:eb_next_unique
Unexecuted instantiation: lru.c:eb_next_unique
690
691
692
/* Removes a leaf node from the tree if it was still in it. Marks the node
693
 * as unlinked.
694
 */
695
static forceinline void __eb_delete(struct eb_node *node)
696
0
{
697
0
  __label__ delete_unlink;
698
0
  unsigned int pside, gpside, sibtype;
699
0
  struct eb_node *parent;
700
0
  struct eb_root *gparent;
701
702
0
  if (!node->leaf_p)
703
0
    return;
704
705
  /* we need the parent, our side, and the grand parent */
706
0
  pside = eb_gettag(node->leaf_p);
707
0
  parent = eb_root_to_node(eb_untag(node->leaf_p, pside));
708
709
  /* We likely have to release the parent link, unless it's the root,
710
   * in which case we only set our branch to NULL. Note that we can
711
   * only be attached to the root by its left branch.
712
   */
713
714
0
  if (eb_clrtag(parent->branches.b[EB_RGHT]) == NULL) {
715
    /* we're just below the root, it's trivial. */
716
0
    parent->branches.b[EB_LEFT] = NULL;
717
0
    goto delete_unlink;
718
0
  }
719
720
  /* To release our parent, we have to identify our sibling, and reparent
721
   * it directly to/from the grand parent. Note that the sibling can
722
   * either be a link or a leaf.
723
   */
724
725
0
  gpside = eb_gettag(parent->node_p);
726
0
  gparent = eb_untag(parent->node_p, gpside);
727
728
0
  gparent->b[gpside] = parent->branches.b[!pside];
729
0
  sibtype = eb_gettag(gparent->b[gpside]);
730
731
0
  if (sibtype == EB_LEAF) {
732
0
    eb_root_to_node(eb_untag(gparent->b[gpside], EB_LEAF))->leaf_p =
733
0
      eb_dotag(gparent, gpside);
734
0
  } else {
735
0
    eb_root_to_node(eb_untag(gparent->b[gpside], EB_NODE))->node_p =
736
0
      eb_dotag(gparent, gpside);
737
0
  }
738
  /* Mark the parent unused. Note that we do not check if the parent is
739
   * our own node, but that's not a problem because if it is, it will be
740
   * marked unused at the same time, which we'll use below to know we can
741
   * safely remove it.
742
   */
743
0
  parent->node_p = NULL;
744
745
  /* The parent node has been detached, and is currently unused. It may
746
   * belong to another node, so we cannot remove it that way. Also, our
747
   * own node part might still be used. so we can use this spare node
748
   * to replace ours if needed.
749
   */
750
751
  /* If our link part is unused, we can safely exit now */
752
0
  if (!node->node_p)
753
0
    goto delete_unlink;
754
755
  /* From now on, <node> and <parent> are necessarily different, and the
756
   * <node>'s node part is in use. By definition, <parent> is at least
757
   * below <node>, so keeping its key for the bit string is OK.
758
   */
759
760
0
  parent->node_p = node->node_p;
761
0
  parent->branches = node->branches;
762
0
  parent->bit = node->bit;
763
764
  /* We must now update the new node's parent... */
765
0
  gpside = eb_gettag(parent->node_p);
766
0
  gparent = eb_untag(parent->node_p, gpside);
767
0
  gparent->b[gpside] = eb_dotag(&parent->branches, EB_NODE);
768
769
  /* ... and its branches */
770
0
  for (pside = 0; pside <= 1; pside++) {
771
0
    if (eb_gettag(parent->branches.b[pside]) == EB_NODE) {
772
0
      eb_root_to_node(eb_untag(parent->branches.b[pside], EB_NODE))->node_p =
773
0
        eb_dotag(&parent->branches, pside);
774
0
    } else {
775
0
      eb_root_to_node(eb_untag(parent->branches.b[pside], EB_LEAF))->leaf_p =
776
0
        eb_dotag(&parent->branches, pside);
777
0
    }
778
0
  }
779
0
 delete_unlink:
780
  /* Now the node has been completely unlinked */
781
0
  node->leaf_p = NULL;
782
0
  return; /* tree is not empty yet */
783
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:__eb_delete
Unexecuted instantiation: cfgparse.c:__eb_delete
Unexecuted instantiation: chunk.c:__eb_delete
Unexecuted instantiation: cli.c:__eb_delete
Unexecuted instantiation: clock.c:__eb_delete
Unexecuted instantiation: connection.c:__eb_delete
Unexecuted instantiation: debug.c:__eb_delete
Unexecuted instantiation: dynbuf.c:__eb_delete
Unexecuted instantiation: ebtree.c:__eb_delete
Unexecuted instantiation: errors.c:__eb_delete
Unexecuted instantiation: fd.c:__eb_delete
Unexecuted instantiation: filters.c:__eb_delete
Unexecuted instantiation: flt_http_comp.c:__eb_delete
Unexecuted instantiation: freq_ctr.c:__eb_delete
Unexecuted instantiation: frontend.c:__eb_delete
Unexecuted instantiation: haproxy.c:__eb_delete
Unexecuted instantiation: http.c:__eb_delete
Unexecuted instantiation: http_ana.c:__eb_delete
Unexecuted instantiation: http_ext.c:__eb_delete
Unexecuted instantiation: http_htx.c:__eb_delete
Unexecuted instantiation: http_rules.c:__eb_delete
Unexecuted instantiation: lb_chash.c:__eb_delete
Unexecuted instantiation: lb_fas.c:__eb_delete
Unexecuted instantiation: lb_fwlc.c:__eb_delete
Unexecuted instantiation: lb_fwrr.c:__eb_delete
Unexecuted instantiation: lb_map.c:__eb_delete
Unexecuted instantiation: limits.c:__eb_delete
Unexecuted instantiation: listener.c:__eb_delete
Unexecuted instantiation: log.c:__eb_delete
Unexecuted instantiation: mailers.c:__eb_delete
Unexecuted instantiation: mworker.c:__eb_delete
Unexecuted instantiation: peers.c:__eb_delete
Unexecuted instantiation: pool.c:__eb_delete
Unexecuted instantiation: proto_rhttp.c:__eb_delete
Unexecuted instantiation: proto_sockpair.c:__eb_delete
Unexecuted instantiation: protocol.c:__eb_delete
Unexecuted instantiation: proxy.c:__eb_delete
Unexecuted instantiation: queue.c:__eb_delete
Unexecuted instantiation: regex.c:__eb_delete
Unexecuted instantiation: resolvers.c:__eb_delete
Unexecuted instantiation: ring.c:__eb_delete
Unexecuted instantiation: sample.c:__eb_delete
Unexecuted instantiation: server.c:__eb_delete
Unexecuted instantiation: session.c:__eb_delete
Unexecuted instantiation: signal.c:__eb_delete
Unexecuted instantiation: sink.c:__eb_delete
Unexecuted instantiation: sock.c:__eb_delete
Unexecuted instantiation: sock_inet.c:__eb_delete
Unexecuted instantiation: stats-html.c:__eb_delete
Unexecuted instantiation: stats.c:__eb_delete
Unexecuted instantiation: stconn.c:__eb_delete
Unexecuted instantiation: stick_table.c:__eb_delete
Unexecuted instantiation: stream.c:__eb_delete
Unexecuted instantiation: systemd.c:__eb_delete
Unexecuted instantiation: task.c:__eb_delete
Unexecuted instantiation: tcp_rules.c:__eb_delete
Unexecuted instantiation: tcpcheck.c:__eb_delete
Unexecuted instantiation: thread.c:__eb_delete
Unexecuted instantiation: tools.c:__eb_delete
Unexecuted instantiation: trace.c:__eb_delete
Unexecuted instantiation: vars.c:__eb_delete
Unexecuted instantiation: acl.c:__eb_delete
Unexecuted instantiation: action.c:__eb_delete
Unexecuted instantiation: activity.c:__eb_delete
Unexecuted instantiation: applet.c:__eb_delete
Unexecuted instantiation: arg.c:__eb_delete
Unexecuted instantiation: backend.c:__eb_delete
Unexecuted instantiation: cache.c:__eb_delete
Unexecuted instantiation: cfgcond.c:__eb_delete
Unexecuted instantiation: cfgparse-global.c:__eb_delete
Unexecuted instantiation: cfgparse-listen.c:__eb_delete
Unexecuted instantiation: channel.c:__eb_delete
Unexecuted instantiation: check.c:__eb_delete
Unexecuted instantiation: compression.c:__eb_delete
Unexecuted instantiation: counters.c:__eb_delete
Unexecuted instantiation: dgram.c:__eb_delete
Unexecuted instantiation: dict.c:__eb_delete
Unexecuted instantiation: dns.c:__eb_delete
Unexecuted instantiation: dns_ring.c:__eb_delete
Unexecuted instantiation: eb32tree.c:__eb_delete
Unexecuted instantiation: eb64tree.c:__eb_delete
Unexecuted instantiation: ebimtree.c:__eb_delete
Unexecuted instantiation: ebistree.c:__eb_delete
Unexecuted instantiation: ebmbtree.c:__eb_delete
Unexecuted instantiation: ebsttree.c:__eb_delete
Unexecuted instantiation: event_hdl.c:__eb_delete
Unexecuted instantiation: extcheck.c:__eb_delete
Unexecuted instantiation: fcgi-app.c:__eb_delete
Unexecuted instantiation: fix.c:__eb_delete
Unexecuted instantiation: guid.c:__eb_delete
Unexecuted instantiation: h1.c:__eb_delete
Unexecuted instantiation: http_fetch.c:__eb_delete
Unexecuted instantiation: mqtt.c:__eb_delete
Unexecuted instantiation: mux_spop.c:__eb_delete
Unexecuted instantiation: pattern.c:__eb_delete
Unexecuted instantiation: payload.c:__eb_delete
Unexecuted instantiation: proto_tcp.c:__eb_delete
Unexecuted instantiation: shctx.c:__eb_delete
Unexecuted instantiation: stats-file.c:__eb_delete
Unexecuted instantiation: stats-json.c:__eb_delete
Unexecuted instantiation: stats-proxy.c:__eb_delete
Unexecuted instantiation: flt_spoe.c:__eb_delete
Unexecuted instantiation: h1_htx.c:__eb_delete
Unexecuted instantiation: lru.c:__eb_delete
784
785
/* Compare blocks <a> and <b> byte-to-byte, from bit <ignore> to bit <len-1>.
786
 * Return the number of equal bits between strings, assuming that the first
787
 * <ignore> bits are already identical. It is possible to return slightly more
788
 * than <len> bits if <len> does not stop on a byte boundary and we find exact
789
 * bytes. Note that parts or all of <ignore> bits may be rechecked. It is only
790
 * passed here as a hint to speed up the check.
791
 */
792
static forceinline size_t equal_bits(const unsigned char *a,
793
             const unsigned char *b,
794
             size_t ignore, size_t len)
795
0
{
796
0
  for (ignore >>= 3, a += ignore, b += ignore, ignore <<= 3;
797
0
       ignore < len; ) {
798
0
    unsigned char c;
799
800
0
    a++; b++;
801
0
    ignore += 8;
802
0
    c = b[-1] ^ a[-1];
803
804
0
    if (c) {
805
      /* OK now we know that old and new differ at byte <ptr> and that <c> holds
806
       * the bit differences. We have to find what bit is differing and report
807
       * it as the number of identical bits. Note that low bit numbers are
808
       * assigned to high positions in the byte, as we compare them as strings.
809
       */
810
0
      ignore -= flsnz_long(c);
811
0
      break;
812
0
    }
813
0
  }
814
0
  return ignore;
815
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:equal_bits
Unexecuted instantiation: cfgparse.c:equal_bits
Unexecuted instantiation: chunk.c:equal_bits
Unexecuted instantiation: cli.c:equal_bits
Unexecuted instantiation: clock.c:equal_bits
Unexecuted instantiation: connection.c:equal_bits
Unexecuted instantiation: debug.c:equal_bits
Unexecuted instantiation: dynbuf.c:equal_bits
Unexecuted instantiation: ebtree.c:equal_bits
Unexecuted instantiation: errors.c:equal_bits
Unexecuted instantiation: fd.c:equal_bits
Unexecuted instantiation: filters.c:equal_bits
Unexecuted instantiation: flt_http_comp.c:equal_bits
Unexecuted instantiation: freq_ctr.c:equal_bits
Unexecuted instantiation: frontend.c:equal_bits
Unexecuted instantiation: haproxy.c:equal_bits
Unexecuted instantiation: http.c:equal_bits
Unexecuted instantiation: http_ana.c:equal_bits
Unexecuted instantiation: http_ext.c:equal_bits
Unexecuted instantiation: http_htx.c:equal_bits
Unexecuted instantiation: http_rules.c:equal_bits
Unexecuted instantiation: lb_chash.c:equal_bits
Unexecuted instantiation: lb_fas.c:equal_bits
Unexecuted instantiation: lb_fwlc.c:equal_bits
Unexecuted instantiation: lb_fwrr.c:equal_bits
Unexecuted instantiation: lb_map.c:equal_bits
Unexecuted instantiation: limits.c:equal_bits
Unexecuted instantiation: listener.c:equal_bits
Unexecuted instantiation: log.c:equal_bits
Unexecuted instantiation: mailers.c:equal_bits
Unexecuted instantiation: mworker.c:equal_bits
Unexecuted instantiation: peers.c:equal_bits
Unexecuted instantiation: pool.c:equal_bits
Unexecuted instantiation: proto_rhttp.c:equal_bits
Unexecuted instantiation: proto_sockpair.c:equal_bits
Unexecuted instantiation: protocol.c:equal_bits
Unexecuted instantiation: proxy.c:equal_bits
Unexecuted instantiation: queue.c:equal_bits
Unexecuted instantiation: regex.c:equal_bits
Unexecuted instantiation: resolvers.c:equal_bits
Unexecuted instantiation: ring.c:equal_bits
Unexecuted instantiation: sample.c:equal_bits
Unexecuted instantiation: server.c:equal_bits
Unexecuted instantiation: session.c:equal_bits
Unexecuted instantiation: signal.c:equal_bits
Unexecuted instantiation: sink.c:equal_bits
Unexecuted instantiation: sock.c:equal_bits
Unexecuted instantiation: sock_inet.c:equal_bits
Unexecuted instantiation: stats-html.c:equal_bits
Unexecuted instantiation: stats.c:equal_bits
Unexecuted instantiation: stconn.c:equal_bits
Unexecuted instantiation: stick_table.c:equal_bits
Unexecuted instantiation: stream.c:equal_bits
Unexecuted instantiation: systemd.c:equal_bits
Unexecuted instantiation: task.c:equal_bits
Unexecuted instantiation: tcp_rules.c:equal_bits
Unexecuted instantiation: tcpcheck.c:equal_bits
Unexecuted instantiation: thread.c:equal_bits
Unexecuted instantiation: tools.c:equal_bits
Unexecuted instantiation: trace.c:equal_bits
Unexecuted instantiation: vars.c:equal_bits
Unexecuted instantiation: acl.c:equal_bits
Unexecuted instantiation: action.c:equal_bits
Unexecuted instantiation: activity.c:equal_bits
Unexecuted instantiation: applet.c:equal_bits
Unexecuted instantiation: arg.c:equal_bits
Unexecuted instantiation: backend.c:equal_bits
Unexecuted instantiation: cache.c:equal_bits
Unexecuted instantiation: cfgcond.c:equal_bits
Unexecuted instantiation: cfgparse-global.c:equal_bits
Unexecuted instantiation: cfgparse-listen.c:equal_bits
Unexecuted instantiation: channel.c:equal_bits
Unexecuted instantiation: check.c:equal_bits
Unexecuted instantiation: compression.c:equal_bits
Unexecuted instantiation: counters.c:equal_bits
Unexecuted instantiation: dgram.c:equal_bits
Unexecuted instantiation: dict.c:equal_bits
Unexecuted instantiation: dns.c:equal_bits
Unexecuted instantiation: dns_ring.c:equal_bits
Unexecuted instantiation: eb32tree.c:equal_bits
Unexecuted instantiation: eb64tree.c:equal_bits
Unexecuted instantiation: ebimtree.c:equal_bits
Unexecuted instantiation: ebistree.c:equal_bits
Unexecuted instantiation: ebmbtree.c:equal_bits
Unexecuted instantiation: ebsttree.c:equal_bits
Unexecuted instantiation: event_hdl.c:equal_bits
Unexecuted instantiation: extcheck.c:equal_bits
Unexecuted instantiation: fcgi-app.c:equal_bits
Unexecuted instantiation: fix.c:equal_bits
Unexecuted instantiation: guid.c:equal_bits
Unexecuted instantiation: h1.c:equal_bits
Unexecuted instantiation: http_fetch.c:equal_bits
Unexecuted instantiation: mqtt.c:equal_bits
Unexecuted instantiation: mux_spop.c:equal_bits
Unexecuted instantiation: pattern.c:equal_bits
Unexecuted instantiation: payload.c:equal_bits
Unexecuted instantiation: proto_tcp.c:equal_bits
Unexecuted instantiation: shctx.c:equal_bits
Unexecuted instantiation: stats-file.c:equal_bits
Unexecuted instantiation: stats-json.c:equal_bits
Unexecuted instantiation: stats-proxy.c:equal_bits
Unexecuted instantiation: flt_spoe.c:equal_bits
Unexecuted instantiation: h1_htx.c:equal_bits
Unexecuted instantiation: lru.c:equal_bits
816
817
/* check that the two blocks <a> and <b> are equal on <len> bits. If it is known
818
 * they already are on some bytes, this number of equal bytes to be skipped may
819
 * be passed in <skip>. It returns 0 if they match, otherwise non-zero.
820
 */
821
static forceinline int check_bits(const unsigned char *a,
822
          const unsigned char *b,
823
          int skip,
824
          int len)
825
0
{
826
0
  int bit, ret;
827
828
  /* This uncommon construction gives the best performance on x86 because
829
   * it makes heavy use multiple-index addressing and parallel instructions,
830
   * and it prevents gcc from reordering the loop since it is already
831
   * properly oriented. Tested to be fine with 2.95 to 4.2.
832
   */
833
0
  bit = ~len + (skip << 3) + 9; // = (skip << 3) + (8 - len)
834
0
  ret = a[skip] ^ b[skip];
835
0
  if (unlikely(bit >= 0))
836
0
    return ret >> bit;
837
0
  while (1) {
838
0
    skip++;
839
0
    if (ret)
840
0
      return ret;
841
0
    ret = a[skip] ^ b[skip];
842
0
    bit += 8;
843
0
    if (bit >= 0)
844
0
      return ret >> bit;
845
0
  }
846
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:check_bits
Unexecuted instantiation: cfgparse.c:check_bits
Unexecuted instantiation: chunk.c:check_bits
Unexecuted instantiation: cli.c:check_bits
Unexecuted instantiation: clock.c:check_bits
Unexecuted instantiation: connection.c:check_bits
Unexecuted instantiation: debug.c:check_bits
Unexecuted instantiation: dynbuf.c:check_bits
Unexecuted instantiation: ebtree.c:check_bits
Unexecuted instantiation: errors.c:check_bits
Unexecuted instantiation: fd.c:check_bits
Unexecuted instantiation: filters.c:check_bits
Unexecuted instantiation: flt_http_comp.c:check_bits
Unexecuted instantiation: freq_ctr.c:check_bits
Unexecuted instantiation: frontend.c:check_bits
Unexecuted instantiation: haproxy.c:check_bits
Unexecuted instantiation: http.c:check_bits
Unexecuted instantiation: http_ana.c:check_bits
Unexecuted instantiation: http_ext.c:check_bits
Unexecuted instantiation: http_htx.c:check_bits
Unexecuted instantiation: http_rules.c:check_bits
Unexecuted instantiation: lb_chash.c:check_bits
Unexecuted instantiation: lb_fas.c:check_bits
Unexecuted instantiation: lb_fwlc.c:check_bits
Unexecuted instantiation: lb_fwrr.c:check_bits
Unexecuted instantiation: lb_map.c:check_bits
Unexecuted instantiation: limits.c:check_bits
Unexecuted instantiation: listener.c:check_bits
Unexecuted instantiation: log.c:check_bits
Unexecuted instantiation: mailers.c:check_bits
Unexecuted instantiation: mworker.c:check_bits
Unexecuted instantiation: peers.c:check_bits
Unexecuted instantiation: pool.c:check_bits
Unexecuted instantiation: proto_rhttp.c:check_bits
Unexecuted instantiation: proto_sockpair.c:check_bits
Unexecuted instantiation: protocol.c:check_bits
Unexecuted instantiation: proxy.c:check_bits
Unexecuted instantiation: queue.c:check_bits
Unexecuted instantiation: regex.c:check_bits
Unexecuted instantiation: resolvers.c:check_bits
Unexecuted instantiation: ring.c:check_bits
Unexecuted instantiation: sample.c:check_bits
Unexecuted instantiation: server.c:check_bits
Unexecuted instantiation: session.c:check_bits
Unexecuted instantiation: signal.c:check_bits
Unexecuted instantiation: sink.c:check_bits
Unexecuted instantiation: sock.c:check_bits
Unexecuted instantiation: sock_inet.c:check_bits
Unexecuted instantiation: stats-html.c:check_bits
Unexecuted instantiation: stats.c:check_bits
Unexecuted instantiation: stconn.c:check_bits
Unexecuted instantiation: stick_table.c:check_bits
Unexecuted instantiation: stream.c:check_bits
Unexecuted instantiation: systemd.c:check_bits
Unexecuted instantiation: task.c:check_bits
Unexecuted instantiation: tcp_rules.c:check_bits
Unexecuted instantiation: tcpcheck.c:check_bits
Unexecuted instantiation: thread.c:check_bits
Unexecuted instantiation: tools.c:check_bits
Unexecuted instantiation: trace.c:check_bits
Unexecuted instantiation: vars.c:check_bits
Unexecuted instantiation: acl.c:check_bits
Unexecuted instantiation: action.c:check_bits
Unexecuted instantiation: activity.c:check_bits
Unexecuted instantiation: applet.c:check_bits
Unexecuted instantiation: arg.c:check_bits
Unexecuted instantiation: backend.c:check_bits
Unexecuted instantiation: cache.c:check_bits
Unexecuted instantiation: cfgcond.c:check_bits
Unexecuted instantiation: cfgparse-global.c:check_bits
Unexecuted instantiation: cfgparse-listen.c:check_bits
Unexecuted instantiation: channel.c:check_bits
Unexecuted instantiation: check.c:check_bits
Unexecuted instantiation: compression.c:check_bits
Unexecuted instantiation: counters.c:check_bits
Unexecuted instantiation: dgram.c:check_bits
Unexecuted instantiation: dict.c:check_bits
Unexecuted instantiation: dns.c:check_bits
Unexecuted instantiation: dns_ring.c:check_bits
Unexecuted instantiation: eb32tree.c:check_bits
Unexecuted instantiation: eb64tree.c:check_bits
Unexecuted instantiation: ebimtree.c:check_bits
Unexecuted instantiation: ebistree.c:check_bits
Unexecuted instantiation: ebmbtree.c:check_bits
Unexecuted instantiation: ebsttree.c:check_bits
Unexecuted instantiation: event_hdl.c:check_bits
Unexecuted instantiation: extcheck.c:check_bits
Unexecuted instantiation: fcgi-app.c:check_bits
Unexecuted instantiation: fix.c:check_bits
Unexecuted instantiation: guid.c:check_bits
Unexecuted instantiation: h1.c:check_bits
Unexecuted instantiation: http_fetch.c:check_bits
Unexecuted instantiation: mqtt.c:check_bits
Unexecuted instantiation: mux_spop.c:check_bits
Unexecuted instantiation: pattern.c:check_bits
Unexecuted instantiation: payload.c:check_bits
Unexecuted instantiation: proto_tcp.c:check_bits
Unexecuted instantiation: shctx.c:check_bits
Unexecuted instantiation: stats-file.c:check_bits
Unexecuted instantiation: stats-json.c:check_bits
Unexecuted instantiation: stats-proxy.c:check_bits
Unexecuted instantiation: flt_spoe.c:check_bits
Unexecuted instantiation: h1_htx.c:check_bits
Unexecuted instantiation: lru.c:check_bits
847
848
849
/* Compare strings <a> and <b> byte-to-byte, from bit <ignore> to the last 0.
850
 * Return the number of equal bits between strings, assuming that the first
851
 * <ignore> bits are already identical. Note that parts or all of <ignore> bits
852
 * may be rechecked. It is only passed here as a hint to speed up the check.
853
 * The caller is responsible for not passing an <ignore> value larger than any
854
 * of the two strings. However, referencing any bit from the trailing zero is
855
 * permitted. Equal strings are reported as a negative number of bits, which
856
 * indicates the end was reached.
857
 */
858
static forceinline size_t string_equal_bits(const unsigned char *a,
859
               const unsigned char *b,
860
               size_t ignore)
861
0
{
862
0
  unsigned char c, d;
863
0
  size_t beg;
864
865
0
  beg = ignore >> 3;
866
867
  /* skip known and identical bits. We stop at the first different byte
868
   * or at the first zero we encounter on either side.
869
   */
870
0
  while (1) {
871
0
    c = a[beg];
872
0
    d = b[beg];
873
0
    beg++;
874
875
0
    c ^= d;
876
0
    if (c)
877
0
      break;
878
0
    if (!d)
879
0
      return (size_t)-1;
880
0
  }
881
  /* OK now we know that a and b differ at byte <beg>, or that both are zero.
882
   * We have to find what bit is differing and report it as the number of
883
   * identical bits. Note that low bit numbers are assigned to high positions
884
   * in the byte, as we compare them as strings.
885
   */
886
0
  return (beg << 3) - flsnz(c);
887
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:string_equal_bits
Unexecuted instantiation: cfgparse.c:string_equal_bits
Unexecuted instantiation: chunk.c:string_equal_bits
Unexecuted instantiation: cli.c:string_equal_bits
Unexecuted instantiation: clock.c:string_equal_bits
Unexecuted instantiation: connection.c:string_equal_bits
Unexecuted instantiation: debug.c:string_equal_bits
Unexecuted instantiation: dynbuf.c:string_equal_bits
Unexecuted instantiation: ebtree.c:string_equal_bits
Unexecuted instantiation: errors.c:string_equal_bits
Unexecuted instantiation: fd.c:string_equal_bits
Unexecuted instantiation: filters.c:string_equal_bits
Unexecuted instantiation: flt_http_comp.c:string_equal_bits
Unexecuted instantiation: freq_ctr.c:string_equal_bits
Unexecuted instantiation: frontend.c:string_equal_bits
Unexecuted instantiation: haproxy.c:string_equal_bits
Unexecuted instantiation: http.c:string_equal_bits
Unexecuted instantiation: http_ana.c:string_equal_bits
Unexecuted instantiation: http_ext.c:string_equal_bits
Unexecuted instantiation: http_htx.c:string_equal_bits
Unexecuted instantiation: http_rules.c:string_equal_bits
Unexecuted instantiation: lb_chash.c:string_equal_bits
Unexecuted instantiation: lb_fas.c:string_equal_bits
Unexecuted instantiation: lb_fwlc.c:string_equal_bits
Unexecuted instantiation: lb_fwrr.c:string_equal_bits
Unexecuted instantiation: lb_map.c:string_equal_bits
Unexecuted instantiation: limits.c:string_equal_bits
Unexecuted instantiation: listener.c:string_equal_bits
Unexecuted instantiation: log.c:string_equal_bits
Unexecuted instantiation: mailers.c:string_equal_bits
Unexecuted instantiation: mworker.c:string_equal_bits
Unexecuted instantiation: peers.c:string_equal_bits
Unexecuted instantiation: pool.c:string_equal_bits
Unexecuted instantiation: proto_rhttp.c:string_equal_bits
Unexecuted instantiation: proto_sockpair.c:string_equal_bits
Unexecuted instantiation: protocol.c:string_equal_bits
Unexecuted instantiation: proxy.c:string_equal_bits
Unexecuted instantiation: queue.c:string_equal_bits
Unexecuted instantiation: regex.c:string_equal_bits
Unexecuted instantiation: resolvers.c:string_equal_bits
Unexecuted instantiation: ring.c:string_equal_bits
Unexecuted instantiation: sample.c:string_equal_bits
Unexecuted instantiation: server.c:string_equal_bits
Unexecuted instantiation: session.c:string_equal_bits
Unexecuted instantiation: signal.c:string_equal_bits
Unexecuted instantiation: sink.c:string_equal_bits
Unexecuted instantiation: sock.c:string_equal_bits
Unexecuted instantiation: sock_inet.c:string_equal_bits
Unexecuted instantiation: stats-html.c:string_equal_bits
Unexecuted instantiation: stats.c:string_equal_bits
Unexecuted instantiation: stconn.c:string_equal_bits
Unexecuted instantiation: stick_table.c:string_equal_bits
Unexecuted instantiation: stream.c:string_equal_bits
Unexecuted instantiation: systemd.c:string_equal_bits
Unexecuted instantiation: task.c:string_equal_bits
Unexecuted instantiation: tcp_rules.c:string_equal_bits
Unexecuted instantiation: tcpcheck.c:string_equal_bits
Unexecuted instantiation: thread.c:string_equal_bits
Unexecuted instantiation: tools.c:string_equal_bits
Unexecuted instantiation: trace.c:string_equal_bits
Unexecuted instantiation: vars.c:string_equal_bits
Unexecuted instantiation: acl.c:string_equal_bits
Unexecuted instantiation: action.c:string_equal_bits
Unexecuted instantiation: activity.c:string_equal_bits
Unexecuted instantiation: applet.c:string_equal_bits
Unexecuted instantiation: arg.c:string_equal_bits
Unexecuted instantiation: backend.c:string_equal_bits
Unexecuted instantiation: cache.c:string_equal_bits
Unexecuted instantiation: cfgcond.c:string_equal_bits
Unexecuted instantiation: cfgparse-global.c:string_equal_bits
Unexecuted instantiation: cfgparse-listen.c:string_equal_bits
Unexecuted instantiation: channel.c:string_equal_bits
Unexecuted instantiation: check.c:string_equal_bits
Unexecuted instantiation: compression.c:string_equal_bits
Unexecuted instantiation: counters.c:string_equal_bits
Unexecuted instantiation: dgram.c:string_equal_bits
Unexecuted instantiation: dict.c:string_equal_bits
Unexecuted instantiation: dns.c:string_equal_bits
Unexecuted instantiation: dns_ring.c:string_equal_bits
Unexecuted instantiation: eb32tree.c:string_equal_bits
Unexecuted instantiation: eb64tree.c:string_equal_bits
Unexecuted instantiation: ebimtree.c:string_equal_bits
Unexecuted instantiation: ebistree.c:string_equal_bits
Unexecuted instantiation: ebmbtree.c:string_equal_bits
Unexecuted instantiation: ebsttree.c:string_equal_bits
Unexecuted instantiation: event_hdl.c:string_equal_bits
Unexecuted instantiation: extcheck.c:string_equal_bits
Unexecuted instantiation: fcgi-app.c:string_equal_bits
Unexecuted instantiation: fix.c:string_equal_bits
Unexecuted instantiation: guid.c:string_equal_bits
Unexecuted instantiation: h1.c:string_equal_bits
Unexecuted instantiation: http_fetch.c:string_equal_bits
Unexecuted instantiation: mqtt.c:string_equal_bits
Unexecuted instantiation: mux_spop.c:string_equal_bits
Unexecuted instantiation: pattern.c:string_equal_bits
Unexecuted instantiation: payload.c:string_equal_bits
Unexecuted instantiation: proto_tcp.c:string_equal_bits
Unexecuted instantiation: shctx.c:string_equal_bits
Unexecuted instantiation: stats-file.c:string_equal_bits
Unexecuted instantiation: stats-json.c:string_equal_bits
Unexecuted instantiation: stats-proxy.c:string_equal_bits
Unexecuted instantiation: flt_spoe.c:string_equal_bits
Unexecuted instantiation: h1_htx.c:string_equal_bits
Unexecuted instantiation: lru.c:string_equal_bits
888
889
static forceinline int cmp_bits(const unsigned char *a, const unsigned char *b, unsigned int pos)
890
0
{
891
0
  unsigned int ofs;
892
0
  unsigned char bit_a, bit_b;
893
894
0
  ofs = pos >> 3;
895
0
  pos = ~pos & 7;
896
897
0
  bit_a = (a[ofs] >> pos) & 1;
898
0
  bit_b = (b[ofs] >> pos) & 1;
899
900
0
  return bit_a - bit_b; /* -1: a<b; 0: a=b; 1: a>b */
901
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:cmp_bits
Unexecuted instantiation: cfgparse.c:cmp_bits
Unexecuted instantiation: chunk.c:cmp_bits
Unexecuted instantiation: cli.c:cmp_bits
Unexecuted instantiation: clock.c:cmp_bits
Unexecuted instantiation: connection.c:cmp_bits
Unexecuted instantiation: debug.c:cmp_bits
Unexecuted instantiation: dynbuf.c:cmp_bits
Unexecuted instantiation: ebtree.c:cmp_bits
Unexecuted instantiation: errors.c:cmp_bits
Unexecuted instantiation: fd.c:cmp_bits
Unexecuted instantiation: filters.c:cmp_bits
Unexecuted instantiation: flt_http_comp.c:cmp_bits
Unexecuted instantiation: freq_ctr.c:cmp_bits
Unexecuted instantiation: frontend.c:cmp_bits
Unexecuted instantiation: haproxy.c:cmp_bits
Unexecuted instantiation: http.c:cmp_bits
Unexecuted instantiation: http_ana.c:cmp_bits
Unexecuted instantiation: http_ext.c:cmp_bits
Unexecuted instantiation: http_htx.c:cmp_bits
Unexecuted instantiation: http_rules.c:cmp_bits
Unexecuted instantiation: lb_chash.c:cmp_bits
Unexecuted instantiation: lb_fas.c:cmp_bits
Unexecuted instantiation: lb_fwlc.c:cmp_bits
Unexecuted instantiation: lb_fwrr.c:cmp_bits
Unexecuted instantiation: lb_map.c:cmp_bits
Unexecuted instantiation: limits.c:cmp_bits
Unexecuted instantiation: listener.c:cmp_bits
Unexecuted instantiation: log.c:cmp_bits
Unexecuted instantiation: mailers.c:cmp_bits
Unexecuted instantiation: mworker.c:cmp_bits
Unexecuted instantiation: peers.c:cmp_bits
Unexecuted instantiation: pool.c:cmp_bits
Unexecuted instantiation: proto_rhttp.c:cmp_bits
Unexecuted instantiation: proto_sockpair.c:cmp_bits
Unexecuted instantiation: protocol.c:cmp_bits
Unexecuted instantiation: proxy.c:cmp_bits
Unexecuted instantiation: queue.c:cmp_bits
Unexecuted instantiation: regex.c:cmp_bits
Unexecuted instantiation: resolvers.c:cmp_bits
Unexecuted instantiation: ring.c:cmp_bits
Unexecuted instantiation: sample.c:cmp_bits
Unexecuted instantiation: server.c:cmp_bits
Unexecuted instantiation: session.c:cmp_bits
Unexecuted instantiation: signal.c:cmp_bits
Unexecuted instantiation: sink.c:cmp_bits
Unexecuted instantiation: sock.c:cmp_bits
Unexecuted instantiation: sock_inet.c:cmp_bits
Unexecuted instantiation: stats-html.c:cmp_bits
Unexecuted instantiation: stats.c:cmp_bits
Unexecuted instantiation: stconn.c:cmp_bits
Unexecuted instantiation: stick_table.c:cmp_bits
Unexecuted instantiation: stream.c:cmp_bits
Unexecuted instantiation: systemd.c:cmp_bits
Unexecuted instantiation: task.c:cmp_bits
Unexecuted instantiation: tcp_rules.c:cmp_bits
Unexecuted instantiation: tcpcheck.c:cmp_bits
Unexecuted instantiation: thread.c:cmp_bits
Unexecuted instantiation: tools.c:cmp_bits
Unexecuted instantiation: trace.c:cmp_bits
Unexecuted instantiation: vars.c:cmp_bits
Unexecuted instantiation: acl.c:cmp_bits
Unexecuted instantiation: action.c:cmp_bits
Unexecuted instantiation: activity.c:cmp_bits
Unexecuted instantiation: applet.c:cmp_bits
Unexecuted instantiation: arg.c:cmp_bits
Unexecuted instantiation: backend.c:cmp_bits
Unexecuted instantiation: cache.c:cmp_bits
Unexecuted instantiation: cfgcond.c:cmp_bits
Unexecuted instantiation: cfgparse-global.c:cmp_bits
Unexecuted instantiation: cfgparse-listen.c:cmp_bits
Unexecuted instantiation: channel.c:cmp_bits
Unexecuted instantiation: check.c:cmp_bits
Unexecuted instantiation: compression.c:cmp_bits
Unexecuted instantiation: counters.c:cmp_bits
Unexecuted instantiation: dgram.c:cmp_bits
Unexecuted instantiation: dict.c:cmp_bits
Unexecuted instantiation: dns.c:cmp_bits
Unexecuted instantiation: dns_ring.c:cmp_bits
Unexecuted instantiation: eb32tree.c:cmp_bits
Unexecuted instantiation: eb64tree.c:cmp_bits
Unexecuted instantiation: ebimtree.c:cmp_bits
Unexecuted instantiation: ebistree.c:cmp_bits
Unexecuted instantiation: ebmbtree.c:cmp_bits
Unexecuted instantiation: ebsttree.c:cmp_bits
Unexecuted instantiation: event_hdl.c:cmp_bits
Unexecuted instantiation: extcheck.c:cmp_bits
Unexecuted instantiation: fcgi-app.c:cmp_bits
Unexecuted instantiation: fix.c:cmp_bits
Unexecuted instantiation: guid.c:cmp_bits
Unexecuted instantiation: h1.c:cmp_bits
Unexecuted instantiation: http_fetch.c:cmp_bits
Unexecuted instantiation: mqtt.c:cmp_bits
Unexecuted instantiation: mux_spop.c:cmp_bits
Unexecuted instantiation: pattern.c:cmp_bits
Unexecuted instantiation: payload.c:cmp_bits
Unexecuted instantiation: proto_tcp.c:cmp_bits
Unexecuted instantiation: shctx.c:cmp_bits
Unexecuted instantiation: stats-file.c:cmp_bits
Unexecuted instantiation: stats-json.c:cmp_bits
Unexecuted instantiation: stats-proxy.c:cmp_bits
Unexecuted instantiation: flt_spoe.c:cmp_bits
Unexecuted instantiation: h1_htx.c:cmp_bits
Unexecuted instantiation: lru.c:cmp_bits
902
903
static forceinline int get_bit(const unsigned char *a, unsigned int pos)
904
0
{
905
0
  unsigned int ofs;
906
0
907
0
  ofs = pos >> 3;
908
0
  pos = ~pos & 7;
909
0
  return (a[ofs] >> pos) & 1;
910
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:get_bit
Unexecuted instantiation: cfgparse.c:get_bit
Unexecuted instantiation: chunk.c:get_bit
Unexecuted instantiation: cli.c:get_bit
Unexecuted instantiation: clock.c:get_bit
Unexecuted instantiation: connection.c:get_bit
Unexecuted instantiation: debug.c:get_bit
Unexecuted instantiation: dynbuf.c:get_bit
Unexecuted instantiation: ebtree.c:get_bit
Unexecuted instantiation: errors.c:get_bit
Unexecuted instantiation: fd.c:get_bit
Unexecuted instantiation: filters.c:get_bit
Unexecuted instantiation: flt_http_comp.c:get_bit
Unexecuted instantiation: freq_ctr.c:get_bit
Unexecuted instantiation: frontend.c:get_bit
Unexecuted instantiation: haproxy.c:get_bit
Unexecuted instantiation: http.c:get_bit
Unexecuted instantiation: http_ana.c:get_bit
Unexecuted instantiation: http_ext.c:get_bit
Unexecuted instantiation: http_htx.c:get_bit
Unexecuted instantiation: http_rules.c:get_bit
Unexecuted instantiation: lb_chash.c:get_bit
Unexecuted instantiation: lb_fas.c:get_bit
Unexecuted instantiation: lb_fwlc.c:get_bit
Unexecuted instantiation: lb_fwrr.c:get_bit
Unexecuted instantiation: lb_map.c:get_bit
Unexecuted instantiation: limits.c:get_bit
Unexecuted instantiation: listener.c:get_bit
Unexecuted instantiation: log.c:get_bit
Unexecuted instantiation: mailers.c:get_bit
Unexecuted instantiation: mworker.c:get_bit
Unexecuted instantiation: peers.c:get_bit
Unexecuted instantiation: pool.c:get_bit
Unexecuted instantiation: proto_rhttp.c:get_bit
Unexecuted instantiation: proto_sockpair.c:get_bit
Unexecuted instantiation: protocol.c:get_bit
Unexecuted instantiation: proxy.c:get_bit
Unexecuted instantiation: queue.c:get_bit
Unexecuted instantiation: regex.c:get_bit
Unexecuted instantiation: resolvers.c:get_bit
Unexecuted instantiation: ring.c:get_bit
Unexecuted instantiation: sample.c:get_bit
Unexecuted instantiation: server.c:get_bit
Unexecuted instantiation: session.c:get_bit
Unexecuted instantiation: signal.c:get_bit
Unexecuted instantiation: sink.c:get_bit
Unexecuted instantiation: sock.c:get_bit
Unexecuted instantiation: sock_inet.c:get_bit
Unexecuted instantiation: stats-html.c:get_bit
Unexecuted instantiation: stats.c:get_bit
Unexecuted instantiation: stconn.c:get_bit
Unexecuted instantiation: stick_table.c:get_bit
Unexecuted instantiation: stream.c:get_bit
Unexecuted instantiation: systemd.c:get_bit
Unexecuted instantiation: task.c:get_bit
Unexecuted instantiation: tcp_rules.c:get_bit
Unexecuted instantiation: tcpcheck.c:get_bit
Unexecuted instantiation: thread.c:get_bit
Unexecuted instantiation: tools.c:get_bit
Unexecuted instantiation: trace.c:get_bit
Unexecuted instantiation: vars.c:get_bit
Unexecuted instantiation: acl.c:get_bit
Unexecuted instantiation: action.c:get_bit
Unexecuted instantiation: activity.c:get_bit
Unexecuted instantiation: applet.c:get_bit
Unexecuted instantiation: arg.c:get_bit
Unexecuted instantiation: backend.c:get_bit
Unexecuted instantiation: cache.c:get_bit
Unexecuted instantiation: cfgcond.c:get_bit
Unexecuted instantiation: cfgparse-global.c:get_bit
Unexecuted instantiation: cfgparse-listen.c:get_bit
Unexecuted instantiation: channel.c:get_bit
Unexecuted instantiation: check.c:get_bit
Unexecuted instantiation: compression.c:get_bit
Unexecuted instantiation: counters.c:get_bit
Unexecuted instantiation: dgram.c:get_bit
Unexecuted instantiation: dict.c:get_bit
Unexecuted instantiation: dns.c:get_bit
Unexecuted instantiation: dns_ring.c:get_bit
Unexecuted instantiation: eb32tree.c:get_bit
Unexecuted instantiation: eb64tree.c:get_bit
Unexecuted instantiation: ebimtree.c:get_bit
Unexecuted instantiation: ebistree.c:get_bit
Unexecuted instantiation: ebmbtree.c:get_bit
Unexecuted instantiation: ebsttree.c:get_bit
Unexecuted instantiation: event_hdl.c:get_bit
Unexecuted instantiation: extcheck.c:get_bit
Unexecuted instantiation: fcgi-app.c:get_bit
Unexecuted instantiation: fix.c:get_bit
Unexecuted instantiation: guid.c:get_bit
Unexecuted instantiation: h1.c:get_bit
Unexecuted instantiation: http_fetch.c:get_bit
Unexecuted instantiation: mqtt.c:get_bit
Unexecuted instantiation: mux_spop.c:get_bit
Unexecuted instantiation: pattern.c:get_bit
Unexecuted instantiation: payload.c:get_bit
Unexecuted instantiation: proto_tcp.c:get_bit
Unexecuted instantiation: shctx.c:get_bit
Unexecuted instantiation: stats-file.c:get_bit
Unexecuted instantiation: stats-json.c:get_bit
Unexecuted instantiation: stats-proxy.c:get_bit
Unexecuted instantiation: flt_spoe.c:get_bit
Unexecuted instantiation: h1_htx.c:get_bit
Unexecuted instantiation: lru.c:get_bit
911
912
/* These functions are declared in ebtree.c */
913
void eb_delete(struct eb_node *node);
914
struct eb_node *eb_insert_dup(struct eb_node *sub, struct eb_node *new);
915
int eb_memcmp(const void *m1, const void *m2, size_t len);
916
917
#endif /* _EB_TREE_H */
918
919
/*
920
 * Local variables:
921
 *  c-indent-level: 8
922
 *  c-basic-offset: 8
923
 * End:
924
 */