/src/haproxy/include/import/cebtree.h
Line | Count | Source |
1 | | /* |
2 | | * Compact Elastic Binary Trees - exported functions operating on node's address |
3 | | * |
4 | | * Copyright (C) 2014-2024 Willy Tarreau - w@1wt.eu |
5 | | * |
6 | | * Permission is hereby granted, free of charge, to any person obtaining |
7 | | * a copy of this software and associated documentation files (the |
8 | | * "Software"), to deal in the Software without restriction, including |
9 | | * without limitation the rights to use, copy, modify, merge, publish, |
10 | | * distribute, sublicense, and/or sell copies of the Software, and to |
11 | | * permit persons to whom the Software is furnished to do so, subject to |
12 | | * the following conditions: |
13 | | * |
14 | | * The above copyright notice and this permission notice shall be |
15 | | * included in all copies or substantial portions of the Software. |
16 | | * |
17 | | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
18 | | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
19 | | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
20 | | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
21 | | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
22 | | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
23 | | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
24 | | * OTHER DEALINGS IN THE SOFTWARE. |
25 | | */ |
26 | | |
27 | | #ifndef _CEBTREE_H |
28 | | #define _CEBTREE_H |
29 | | |
30 | | #include <stddef.h> |
31 | | |
32 | | /* offsetof() is provided as a builtin starting with gcc-4.1 */ |
33 | | #ifndef offsetof |
34 | | # if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) |
35 | | # define offsetof(type, field) __builtin_offsetof(type, field) |
36 | | # else |
37 | | # define offsetof(type, field) ((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field)) |
38 | | # endif |
39 | | #endif |
40 | | |
41 | | /* Linux-like "container_of". It returns a pointer to the structure of type |
42 | | * <type> which has its member <name> stored at address <ptr>. |
43 | | */ |
44 | | #ifndef container_of |
45 | 0 | #define container_of(ptr, type, name) ((type *)(((char *)(ptr)) - offsetof(type, name))) |
46 | | #endif |
47 | | |
48 | | /* returns a pointer to the structure of type <type> which has its member <name> |
49 | | * stored at address <ptr>, unless <ptr> is 0, in which case 0 is returned. |
50 | | */ |
51 | | #ifndef container_of_safe |
52 | | #define container_of_safe(ptr, type, name) \ |
53 | | ({ void *__p = (ptr); \ |
54 | | __p ? container_of(__p, type, name) : (type *)0; \ |
55 | | }) |
56 | | #endif |
57 | | |
58 | | /* This is what a tagged pointer points to, as found on the root or any branch. |
59 | | * It's only a forward declaration so that it is never directly dereferenced. |
60 | | */ |
61 | | struct ceb_root; |
62 | | |
63 | | /* Standard node when using absolute pointers */ |
64 | | struct ceb_node { |
65 | | struct ceb_root *b[2]; /* branches: 0=left, 1=right */ |
66 | | }; |
67 | | |
68 | | /* initializes a root as an empty tree */ |
69 | | static inline void ceb_init_root(struct ceb_root **root) |
70 | 0 | { |
71 | 0 | *root = NULL; |
72 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ceb_init_root Unexecuted instantiation: fuzz_cfg_parser.c:ceb_init_root Unexecuted instantiation: cfgparse.c:ceb_init_root Unexecuted instantiation: chunk.c:ceb_init_root Unexecuted instantiation: cli.c:ceb_init_root Unexecuted instantiation: clock.c:ceb_init_root Unexecuted instantiation: connection.c:ceb_init_root Unexecuted instantiation: debug.c:ceb_init_root Unexecuted instantiation: dynbuf.c:ceb_init_root Unexecuted instantiation: errors.c:ceb_init_root Unexecuted instantiation: fd.c:ceb_init_root Unexecuted instantiation: filters.c:ceb_init_root Unexecuted instantiation: flt_http_comp.c:ceb_init_root Unexecuted instantiation: freq_ctr.c:ceb_init_root Unexecuted instantiation: frontend.c:ceb_init_root Unexecuted instantiation: haproxy.c:ceb_init_root Unexecuted instantiation: http.c:ceb_init_root Unexecuted instantiation: http_ana.c:ceb_init_root Unexecuted instantiation: http_ext.c:ceb_init_root Unexecuted instantiation: http_htx.c:ceb_init_root Unexecuted instantiation: http_rules.c:ceb_init_root Unexecuted instantiation: lb_chash.c:ceb_init_root Unexecuted instantiation: lb_fas.c:ceb_init_root Unexecuted instantiation: lb_fwlc.c:ceb_init_root Unexecuted instantiation: lb_fwrr.c:ceb_init_root Unexecuted instantiation: lb_map.c:ceb_init_root Unexecuted instantiation: lb_ss.c:ceb_init_root Unexecuted instantiation: limits.c:ceb_init_root Unexecuted instantiation: listener.c:ceb_init_root Unexecuted instantiation: log.c:ceb_init_root Unexecuted instantiation: mailers.c:ceb_init_root Unexecuted instantiation: mworker.c:ceb_init_root Unexecuted instantiation: peers.c:ceb_init_root Unexecuted instantiation: pool.c:ceb_init_root Unexecuted instantiation: proto_rhttp.c:ceb_init_root Unexecuted instantiation: proto_sockpair.c:ceb_init_root Unexecuted instantiation: protocol.c:ceb_init_root Unexecuted instantiation: proxy.c:ceb_init_root Unexecuted instantiation: queue.c:ceb_init_root Unexecuted instantiation: regex.c:ceb_init_root Unexecuted instantiation: resolvers.c:ceb_init_root Unexecuted instantiation: ring.c:ceb_init_root Unexecuted instantiation: sample.c:ceb_init_root Unexecuted instantiation: server.c:ceb_init_root Unexecuted instantiation: session.c:ceb_init_root Unexecuted instantiation: sink.c:ceb_init_root Unexecuted instantiation: sock.c:ceb_init_root Unexecuted instantiation: sock_inet.c:ceb_init_root Unexecuted instantiation: stats-html.c:ceb_init_root Unexecuted instantiation: stats.c:ceb_init_root Unexecuted instantiation: stconn.c:ceb_init_root Unexecuted instantiation: stick_table.c:ceb_init_root Unexecuted instantiation: stream.c:ceb_init_root Unexecuted instantiation: systemd.c:ceb_init_root Unexecuted instantiation: task.c:ceb_init_root Unexecuted instantiation: tcp_rules.c:ceb_init_root Unexecuted instantiation: tcpcheck.c:ceb_init_root Unexecuted instantiation: thread.c:ceb_init_root Unexecuted instantiation: tools.c:ceb_init_root Unexecuted instantiation: trace.c:ceb_init_root Unexecuted instantiation: uri_auth.c:ceb_init_root Unexecuted instantiation: vars.c:ceb_init_root Unexecuted instantiation: acl.c:ceb_init_root Unexecuted instantiation: action.c:ceb_init_root Unexecuted instantiation: activity.c:ceb_init_root Unexecuted instantiation: applet.c:ceb_init_root Unexecuted instantiation: arg.c:ceb_init_root Unexecuted instantiation: auth.c:ceb_init_root Unexecuted instantiation: backend.c:ceb_init_root Unexecuted instantiation: cache.c:ceb_init_root Unexecuted instantiation: ceb32_tree.c:ceb_init_root Unexecuted instantiation: ceb64_tree.c:ceb_init_root Unexecuted instantiation: cebis_tree.c:ceb_init_root Unexecuted instantiation: cebs_tree.c:ceb_init_root Unexecuted instantiation: cfgcond.c:ceb_init_root Unexecuted instantiation: cfgparse-global.c:ceb_init_root Unexecuted instantiation: cfgparse-listen.c:ceb_init_root Unexecuted instantiation: channel.c:ceb_init_root Unexecuted instantiation: check.c:ceb_init_root Unexecuted instantiation: compression.c:ceb_init_root Unexecuted instantiation: counters.c:ceb_init_root Unexecuted instantiation: dgram.c:ceb_init_root Unexecuted instantiation: dns.c:ceb_init_root Unexecuted instantiation: dns_ring.c:ceb_init_root Unexecuted instantiation: event_hdl.c:ceb_init_root Unexecuted instantiation: extcheck.c:ceb_init_root Unexecuted instantiation: fcgi-app.c:ceb_init_root Unexecuted instantiation: fix.c:ceb_init_root Unexecuted instantiation: guid.c:ceb_init_root Unexecuted instantiation: h1.c:ceb_init_root Unexecuted instantiation: http_fetch.c:ceb_init_root Unexecuted instantiation: mqtt.c:ceb_init_root Unexecuted instantiation: mux_spop.c:ceb_init_root Unexecuted instantiation: pattern.c:ceb_init_root Unexecuted instantiation: payload.c:ceb_init_root Unexecuted instantiation: proto_tcp.c:ceb_init_root Unexecuted instantiation: shctx.c:ceb_init_root Unexecuted instantiation: stats-file.c:ceb_init_root Unexecuted instantiation: stats-json.c:ceb_init_root Unexecuted instantiation: stats-proxy.c:ceb_init_root Unexecuted instantiation: flt_spoe.c:ceb_init_root Unexecuted instantiation: h1_htx.c:ceb_init_root |
73 | | |
74 | | /* initializes a node as not belonging to a tree */ |
75 | | static inline void ceb_init_node(struct ceb_node *node) |
76 | 0 | { |
77 | 0 | node->b[0] = NULL; |
78 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ceb_init_node Unexecuted instantiation: fuzz_cfg_parser.c:ceb_init_node Unexecuted instantiation: cfgparse.c:ceb_init_node Unexecuted instantiation: chunk.c:ceb_init_node Unexecuted instantiation: cli.c:ceb_init_node Unexecuted instantiation: clock.c:ceb_init_node Unexecuted instantiation: connection.c:ceb_init_node Unexecuted instantiation: debug.c:ceb_init_node Unexecuted instantiation: dynbuf.c:ceb_init_node Unexecuted instantiation: errors.c:ceb_init_node Unexecuted instantiation: fd.c:ceb_init_node Unexecuted instantiation: filters.c:ceb_init_node Unexecuted instantiation: flt_http_comp.c:ceb_init_node Unexecuted instantiation: freq_ctr.c:ceb_init_node Unexecuted instantiation: frontend.c:ceb_init_node Unexecuted instantiation: haproxy.c:ceb_init_node Unexecuted instantiation: http.c:ceb_init_node Unexecuted instantiation: http_ana.c:ceb_init_node Unexecuted instantiation: http_ext.c:ceb_init_node Unexecuted instantiation: http_htx.c:ceb_init_node Unexecuted instantiation: http_rules.c:ceb_init_node Unexecuted instantiation: lb_chash.c:ceb_init_node Unexecuted instantiation: lb_fas.c:ceb_init_node Unexecuted instantiation: lb_fwlc.c:ceb_init_node Unexecuted instantiation: lb_fwrr.c:ceb_init_node Unexecuted instantiation: lb_map.c:ceb_init_node Unexecuted instantiation: lb_ss.c:ceb_init_node Unexecuted instantiation: limits.c:ceb_init_node Unexecuted instantiation: listener.c:ceb_init_node Unexecuted instantiation: log.c:ceb_init_node Unexecuted instantiation: mailers.c:ceb_init_node Unexecuted instantiation: mworker.c:ceb_init_node Unexecuted instantiation: peers.c:ceb_init_node Unexecuted instantiation: pool.c:ceb_init_node Unexecuted instantiation: proto_rhttp.c:ceb_init_node Unexecuted instantiation: proto_sockpair.c:ceb_init_node Unexecuted instantiation: protocol.c:ceb_init_node Unexecuted instantiation: proxy.c:ceb_init_node Unexecuted instantiation: queue.c:ceb_init_node Unexecuted instantiation: regex.c:ceb_init_node Unexecuted instantiation: resolvers.c:ceb_init_node Unexecuted instantiation: ring.c:ceb_init_node Unexecuted instantiation: sample.c:ceb_init_node Unexecuted instantiation: server.c:ceb_init_node Unexecuted instantiation: session.c:ceb_init_node Unexecuted instantiation: sink.c:ceb_init_node Unexecuted instantiation: sock.c:ceb_init_node Unexecuted instantiation: sock_inet.c:ceb_init_node Unexecuted instantiation: stats-html.c:ceb_init_node Unexecuted instantiation: stats.c:ceb_init_node Unexecuted instantiation: stconn.c:ceb_init_node Unexecuted instantiation: stick_table.c:ceb_init_node Unexecuted instantiation: stream.c:ceb_init_node Unexecuted instantiation: systemd.c:ceb_init_node Unexecuted instantiation: task.c:ceb_init_node Unexecuted instantiation: tcp_rules.c:ceb_init_node Unexecuted instantiation: tcpcheck.c:ceb_init_node Unexecuted instantiation: thread.c:ceb_init_node Unexecuted instantiation: tools.c:ceb_init_node Unexecuted instantiation: trace.c:ceb_init_node Unexecuted instantiation: uri_auth.c:ceb_init_node Unexecuted instantiation: vars.c:ceb_init_node Unexecuted instantiation: acl.c:ceb_init_node Unexecuted instantiation: action.c:ceb_init_node Unexecuted instantiation: activity.c:ceb_init_node Unexecuted instantiation: applet.c:ceb_init_node Unexecuted instantiation: arg.c:ceb_init_node Unexecuted instantiation: auth.c:ceb_init_node Unexecuted instantiation: backend.c:ceb_init_node Unexecuted instantiation: cache.c:ceb_init_node Unexecuted instantiation: ceb32_tree.c:ceb_init_node Unexecuted instantiation: ceb64_tree.c:ceb_init_node Unexecuted instantiation: cebis_tree.c:ceb_init_node Unexecuted instantiation: cebs_tree.c:ceb_init_node Unexecuted instantiation: cfgcond.c:ceb_init_node Unexecuted instantiation: cfgparse-global.c:ceb_init_node Unexecuted instantiation: cfgparse-listen.c:ceb_init_node Unexecuted instantiation: channel.c:ceb_init_node Unexecuted instantiation: check.c:ceb_init_node Unexecuted instantiation: compression.c:ceb_init_node Unexecuted instantiation: counters.c:ceb_init_node Unexecuted instantiation: dgram.c:ceb_init_node Unexecuted instantiation: dns.c:ceb_init_node Unexecuted instantiation: dns_ring.c:ceb_init_node Unexecuted instantiation: event_hdl.c:ceb_init_node Unexecuted instantiation: extcheck.c:ceb_init_node Unexecuted instantiation: fcgi-app.c:ceb_init_node Unexecuted instantiation: fix.c:ceb_init_node Unexecuted instantiation: guid.c:ceb_init_node Unexecuted instantiation: h1.c:ceb_init_node Unexecuted instantiation: http_fetch.c:ceb_init_node Unexecuted instantiation: mqtt.c:ceb_init_node Unexecuted instantiation: mux_spop.c:ceb_init_node Unexecuted instantiation: pattern.c:ceb_init_node Unexecuted instantiation: payload.c:ceb_init_node Unexecuted instantiation: proto_tcp.c:ceb_init_node Unexecuted instantiation: shctx.c:ceb_init_node Unexecuted instantiation: stats-file.c:ceb_init_node Unexecuted instantiation: stats-json.c:ceb_init_node Unexecuted instantiation: stats-proxy.c:ceb_init_node Unexecuted instantiation: flt_spoe.c:ceb_init_node Unexecuted instantiation: h1_htx.c:ceb_init_node |
79 | | |
80 | | /* indicates whether a valid node is in a tree or not */ |
81 | | static inline int ceb_intree(const struct ceb_node *node) |
82 | 0 | { |
83 | 0 | return !!node->b[0]; |
84 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ceb_intree Unexecuted instantiation: fuzz_cfg_parser.c:ceb_intree Unexecuted instantiation: cfgparse.c:ceb_intree Unexecuted instantiation: chunk.c:ceb_intree Unexecuted instantiation: cli.c:ceb_intree Unexecuted instantiation: clock.c:ceb_intree Unexecuted instantiation: connection.c:ceb_intree Unexecuted instantiation: debug.c:ceb_intree Unexecuted instantiation: dynbuf.c:ceb_intree Unexecuted instantiation: errors.c:ceb_intree Unexecuted instantiation: fd.c:ceb_intree Unexecuted instantiation: filters.c:ceb_intree Unexecuted instantiation: flt_http_comp.c:ceb_intree Unexecuted instantiation: freq_ctr.c:ceb_intree Unexecuted instantiation: frontend.c:ceb_intree Unexecuted instantiation: haproxy.c:ceb_intree Unexecuted instantiation: http.c:ceb_intree Unexecuted instantiation: http_ana.c:ceb_intree Unexecuted instantiation: http_ext.c:ceb_intree Unexecuted instantiation: http_htx.c:ceb_intree Unexecuted instantiation: http_rules.c:ceb_intree Unexecuted instantiation: lb_chash.c:ceb_intree Unexecuted instantiation: lb_fas.c:ceb_intree Unexecuted instantiation: lb_fwlc.c:ceb_intree Unexecuted instantiation: lb_fwrr.c:ceb_intree Unexecuted instantiation: lb_map.c:ceb_intree Unexecuted instantiation: lb_ss.c:ceb_intree Unexecuted instantiation: limits.c:ceb_intree Unexecuted instantiation: listener.c:ceb_intree Unexecuted instantiation: log.c:ceb_intree Unexecuted instantiation: mailers.c:ceb_intree Unexecuted instantiation: mworker.c:ceb_intree Unexecuted instantiation: peers.c:ceb_intree Unexecuted instantiation: pool.c:ceb_intree Unexecuted instantiation: proto_rhttp.c:ceb_intree Unexecuted instantiation: proto_sockpair.c:ceb_intree Unexecuted instantiation: protocol.c:ceb_intree Unexecuted instantiation: proxy.c:ceb_intree Unexecuted instantiation: queue.c:ceb_intree Unexecuted instantiation: regex.c:ceb_intree Unexecuted instantiation: resolvers.c:ceb_intree Unexecuted instantiation: ring.c:ceb_intree Unexecuted instantiation: sample.c:ceb_intree Unexecuted instantiation: server.c:ceb_intree Unexecuted instantiation: session.c:ceb_intree Unexecuted instantiation: sink.c:ceb_intree Unexecuted instantiation: sock.c:ceb_intree Unexecuted instantiation: sock_inet.c:ceb_intree Unexecuted instantiation: stats-html.c:ceb_intree Unexecuted instantiation: stats.c:ceb_intree Unexecuted instantiation: stconn.c:ceb_intree Unexecuted instantiation: stick_table.c:ceb_intree Unexecuted instantiation: stream.c:ceb_intree Unexecuted instantiation: systemd.c:ceb_intree Unexecuted instantiation: task.c:ceb_intree Unexecuted instantiation: tcp_rules.c:ceb_intree Unexecuted instantiation: tcpcheck.c:ceb_intree Unexecuted instantiation: thread.c:ceb_intree Unexecuted instantiation: tools.c:ceb_intree Unexecuted instantiation: trace.c:ceb_intree Unexecuted instantiation: uri_auth.c:ceb_intree Unexecuted instantiation: vars.c:ceb_intree Unexecuted instantiation: acl.c:ceb_intree Unexecuted instantiation: action.c:ceb_intree Unexecuted instantiation: activity.c:ceb_intree Unexecuted instantiation: applet.c:ceb_intree Unexecuted instantiation: arg.c:ceb_intree Unexecuted instantiation: auth.c:ceb_intree Unexecuted instantiation: backend.c:ceb_intree Unexecuted instantiation: cache.c:ceb_intree Unexecuted instantiation: ceb32_tree.c:ceb_intree Unexecuted instantiation: ceb64_tree.c:ceb_intree Unexecuted instantiation: cebis_tree.c:ceb_intree Unexecuted instantiation: cebs_tree.c:ceb_intree Unexecuted instantiation: cfgcond.c:ceb_intree Unexecuted instantiation: cfgparse-global.c:ceb_intree Unexecuted instantiation: cfgparse-listen.c:ceb_intree Unexecuted instantiation: channel.c:ceb_intree Unexecuted instantiation: check.c:ceb_intree Unexecuted instantiation: compression.c:ceb_intree Unexecuted instantiation: counters.c:ceb_intree Unexecuted instantiation: dgram.c:ceb_intree Unexecuted instantiation: dns.c:ceb_intree Unexecuted instantiation: dns_ring.c:ceb_intree Unexecuted instantiation: event_hdl.c:ceb_intree Unexecuted instantiation: extcheck.c:ceb_intree Unexecuted instantiation: fcgi-app.c:ceb_intree Unexecuted instantiation: fix.c:ceb_intree Unexecuted instantiation: guid.c:ceb_intree Unexecuted instantiation: h1.c:ceb_intree Unexecuted instantiation: http_fetch.c:ceb_intree Unexecuted instantiation: mqtt.c:ceb_intree Unexecuted instantiation: mux_spop.c:ceb_intree Unexecuted instantiation: pattern.c:ceb_intree Unexecuted instantiation: payload.c:ceb_intree Unexecuted instantiation: proto_tcp.c:ceb_intree Unexecuted instantiation: shctx.c:ceb_intree Unexecuted instantiation: stats-file.c:ceb_intree Unexecuted instantiation: stats-json.c:ceb_intree Unexecuted instantiation: stats-proxy.c:ceb_intree Unexecuted instantiation: flt_spoe.c:ceb_intree Unexecuted instantiation: h1_htx.c:ceb_intree |
85 | | |
86 | | /* indicates whether a root is empty or not */ |
87 | | static inline int ceb_isempty(struct ceb_root * const*root) |
88 | 0 | { |
89 | 0 | return !*root; |
90 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ceb_isempty Unexecuted instantiation: fuzz_cfg_parser.c:ceb_isempty Unexecuted instantiation: cfgparse.c:ceb_isempty Unexecuted instantiation: chunk.c:ceb_isempty Unexecuted instantiation: cli.c:ceb_isempty Unexecuted instantiation: clock.c:ceb_isempty Unexecuted instantiation: connection.c:ceb_isempty Unexecuted instantiation: debug.c:ceb_isempty Unexecuted instantiation: dynbuf.c:ceb_isempty Unexecuted instantiation: errors.c:ceb_isempty Unexecuted instantiation: fd.c:ceb_isempty Unexecuted instantiation: filters.c:ceb_isempty Unexecuted instantiation: flt_http_comp.c:ceb_isempty Unexecuted instantiation: freq_ctr.c:ceb_isempty Unexecuted instantiation: frontend.c:ceb_isempty Unexecuted instantiation: haproxy.c:ceb_isempty Unexecuted instantiation: http.c:ceb_isempty Unexecuted instantiation: http_ana.c:ceb_isempty Unexecuted instantiation: http_ext.c:ceb_isempty Unexecuted instantiation: http_htx.c:ceb_isempty Unexecuted instantiation: http_rules.c:ceb_isempty Unexecuted instantiation: lb_chash.c:ceb_isempty Unexecuted instantiation: lb_fas.c:ceb_isempty Unexecuted instantiation: lb_fwlc.c:ceb_isempty Unexecuted instantiation: lb_fwrr.c:ceb_isempty Unexecuted instantiation: lb_map.c:ceb_isempty Unexecuted instantiation: lb_ss.c:ceb_isempty Unexecuted instantiation: limits.c:ceb_isempty Unexecuted instantiation: listener.c:ceb_isempty Unexecuted instantiation: log.c:ceb_isempty Unexecuted instantiation: mailers.c:ceb_isempty Unexecuted instantiation: mworker.c:ceb_isempty Unexecuted instantiation: peers.c:ceb_isempty Unexecuted instantiation: pool.c:ceb_isempty Unexecuted instantiation: proto_rhttp.c:ceb_isempty Unexecuted instantiation: proto_sockpair.c:ceb_isempty Unexecuted instantiation: protocol.c:ceb_isempty Unexecuted instantiation: proxy.c:ceb_isempty Unexecuted instantiation: queue.c:ceb_isempty Unexecuted instantiation: regex.c:ceb_isempty Unexecuted instantiation: resolvers.c:ceb_isempty Unexecuted instantiation: ring.c:ceb_isempty Unexecuted instantiation: sample.c:ceb_isempty Unexecuted instantiation: server.c:ceb_isempty Unexecuted instantiation: session.c:ceb_isempty Unexecuted instantiation: sink.c:ceb_isempty Unexecuted instantiation: sock.c:ceb_isempty Unexecuted instantiation: sock_inet.c:ceb_isempty Unexecuted instantiation: stats-html.c:ceb_isempty Unexecuted instantiation: stats.c:ceb_isempty Unexecuted instantiation: stconn.c:ceb_isempty Unexecuted instantiation: stick_table.c:ceb_isempty Unexecuted instantiation: stream.c:ceb_isempty Unexecuted instantiation: systemd.c:ceb_isempty Unexecuted instantiation: task.c:ceb_isempty Unexecuted instantiation: tcp_rules.c:ceb_isempty Unexecuted instantiation: tcpcheck.c:ceb_isempty Unexecuted instantiation: thread.c:ceb_isempty Unexecuted instantiation: tools.c:ceb_isempty Unexecuted instantiation: trace.c:ceb_isempty Unexecuted instantiation: uri_auth.c:ceb_isempty Unexecuted instantiation: vars.c:ceb_isempty Unexecuted instantiation: acl.c:ceb_isempty Unexecuted instantiation: action.c:ceb_isempty Unexecuted instantiation: activity.c:ceb_isempty Unexecuted instantiation: applet.c:ceb_isempty Unexecuted instantiation: arg.c:ceb_isempty Unexecuted instantiation: auth.c:ceb_isempty Unexecuted instantiation: backend.c:ceb_isempty Unexecuted instantiation: cache.c:ceb_isempty Unexecuted instantiation: ceb32_tree.c:ceb_isempty Unexecuted instantiation: ceb64_tree.c:ceb_isempty Unexecuted instantiation: cebis_tree.c:ceb_isempty Unexecuted instantiation: cebs_tree.c:ceb_isempty Unexecuted instantiation: cfgcond.c:ceb_isempty Unexecuted instantiation: cfgparse-global.c:ceb_isempty Unexecuted instantiation: cfgparse-listen.c:ceb_isempty Unexecuted instantiation: channel.c:ceb_isempty Unexecuted instantiation: check.c:ceb_isempty Unexecuted instantiation: compression.c:ceb_isempty Unexecuted instantiation: counters.c:ceb_isempty Unexecuted instantiation: dgram.c:ceb_isempty Unexecuted instantiation: dns.c:ceb_isempty Unexecuted instantiation: dns_ring.c:ceb_isempty Unexecuted instantiation: event_hdl.c:ceb_isempty Unexecuted instantiation: extcheck.c:ceb_isempty Unexecuted instantiation: fcgi-app.c:ceb_isempty Unexecuted instantiation: fix.c:ceb_isempty Unexecuted instantiation: guid.c:ceb_isempty Unexecuted instantiation: h1.c:ceb_isempty Unexecuted instantiation: http_fetch.c:ceb_isempty Unexecuted instantiation: mqtt.c:ceb_isempty Unexecuted instantiation: mux_spop.c:ceb_isempty Unexecuted instantiation: pattern.c:ceb_isempty Unexecuted instantiation: payload.c:ceb_isempty Unexecuted instantiation: proto_tcp.c:ceb_isempty Unexecuted instantiation: shctx.c:ceb_isempty Unexecuted instantiation: stats-file.c:ceb_isempty Unexecuted instantiation: stats-json.c:ceb_isempty Unexecuted instantiation: stats-proxy.c:ceb_isempty Unexecuted instantiation: flt_spoe.c:ceb_isempty Unexecuted instantiation: h1_htx.c:ceb_isempty |
91 | | |
92 | | /* returns a pointer to the key from the node and offset, where node is |
93 | | * assumed to be non-null. |
94 | | */ |
95 | | static inline void *_ceb_key_ptr(const struct ceb_node *node, ptrdiff_t kofs) |
96 | 0 | { |
97 | 0 | return (void*)((char *)node + kofs); |
98 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:_ceb_key_ptr Unexecuted instantiation: fuzz_cfg_parser.c:_ceb_key_ptr Unexecuted instantiation: cfgparse.c:_ceb_key_ptr Unexecuted instantiation: chunk.c:_ceb_key_ptr Unexecuted instantiation: cli.c:_ceb_key_ptr Unexecuted instantiation: clock.c:_ceb_key_ptr Unexecuted instantiation: connection.c:_ceb_key_ptr Unexecuted instantiation: debug.c:_ceb_key_ptr Unexecuted instantiation: dynbuf.c:_ceb_key_ptr Unexecuted instantiation: errors.c:_ceb_key_ptr Unexecuted instantiation: fd.c:_ceb_key_ptr Unexecuted instantiation: filters.c:_ceb_key_ptr Unexecuted instantiation: flt_http_comp.c:_ceb_key_ptr Unexecuted instantiation: freq_ctr.c:_ceb_key_ptr Unexecuted instantiation: frontend.c:_ceb_key_ptr Unexecuted instantiation: haproxy.c:_ceb_key_ptr Unexecuted instantiation: http.c:_ceb_key_ptr Unexecuted instantiation: http_ana.c:_ceb_key_ptr Unexecuted instantiation: http_ext.c:_ceb_key_ptr Unexecuted instantiation: http_htx.c:_ceb_key_ptr Unexecuted instantiation: http_rules.c:_ceb_key_ptr Unexecuted instantiation: lb_chash.c:_ceb_key_ptr Unexecuted instantiation: lb_fas.c:_ceb_key_ptr Unexecuted instantiation: lb_fwlc.c:_ceb_key_ptr Unexecuted instantiation: lb_fwrr.c:_ceb_key_ptr Unexecuted instantiation: lb_map.c:_ceb_key_ptr Unexecuted instantiation: lb_ss.c:_ceb_key_ptr Unexecuted instantiation: limits.c:_ceb_key_ptr Unexecuted instantiation: listener.c:_ceb_key_ptr Unexecuted instantiation: log.c:_ceb_key_ptr Unexecuted instantiation: mailers.c:_ceb_key_ptr Unexecuted instantiation: mworker.c:_ceb_key_ptr Unexecuted instantiation: peers.c:_ceb_key_ptr Unexecuted instantiation: pool.c:_ceb_key_ptr Unexecuted instantiation: proto_rhttp.c:_ceb_key_ptr Unexecuted instantiation: proto_sockpair.c:_ceb_key_ptr Unexecuted instantiation: protocol.c:_ceb_key_ptr Unexecuted instantiation: proxy.c:_ceb_key_ptr Unexecuted instantiation: queue.c:_ceb_key_ptr Unexecuted instantiation: regex.c:_ceb_key_ptr Unexecuted instantiation: resolvers.c:_ceb_key_ptr Unexecuted instantiation: ring.c:_ceb_key_ptr Unexecuted instantiation: sample.c:_ceb_key_ptr Unexecuted instantiation: server.c:_ceb_key_ptr Unexecuted instantiation: session.c:_ceb_key_ptr Unexecuted instantiation: sink.c:_ceb_key_ptr Unexecuted instantiation: sock.c:_ceb_key_ptr Unexecuted instantiation: sock_inet.c:_ceb_key_ptr Unexecuted instantiation: stats-html.c:_ceb_key_ptr Unexecuted instantiation: stats.c:_ceb_key_ptr Unexecuted instantiation: stconn.c:_ceb_key_ptr Unexecuted instantiation: stick_table.c:_ceb_key_ptr Unexecuted instantiation: stream.c:_ceb_key_ptr Unexecuted instantiation: systemd.c:_ceb_key_ptr Unexecuted instantiation: task.c:_ceb_key_ptr Unexecuted instantiation: tcp_rules.c:_ceb_key_ptr Unexecuted instantiation: tcpcheck.c:_ceb_key_ptr Unexecuted instantiation: thread.c:_ceb_key_ptr Unexecuted instantiation: tools.c:_ceb_key_ptr Unexecuted instantiation: trace.c:_ceb_key_ptr Unexecuted instantiation: uri_auth.c:_ceb_key_ptr Unexecuted instantiation: vars.c:_ceb_key_ptr Unexecuted instantiation: acl.c:_ceb_key_ptr Unexecuted instantiation: action.c:_ceb_key_ptr Unexecuted instantiation: activity.c:_ceb_key_ptr Unexecuted instantiation: applet.c:_ceb_key_ptr Unexecuted instantiation: arg.c:_ceb_key_ptr Unexecuted instantiation: auth.c:_ceb_key_ptr Unexecuted instantiation: backend.c:_ceb_key_ptr Unexecuted instantiation: cache.c:_ceb_key_ptr Unexecuted instantiation: ceb32_tree.c:_ceb_key_ptr Unexecuted instantiation: ceb64_tree.c:_ceb_key_ptr Unexecuted instantiation: cebis_tree.c:_ceb_key_ptr Unexecuted instantiation: cebs_tree.c:_ceb_key_ptr Unexecuted instantiation: cfgcond.c:_ceb_key_ptr Unexecuted instantiation: cfgparse-global.c:_ceb_key_ptr Unexecuted instantiation: cfgparse-listen.c:_ceb_key_ptr Unexecuted instantiation: channel.c:_ceb_key_ptr Unexecuted instantiation: check.c:_ceb_key_ptr Unexecuted instantiation: compression.c:_ceb_key_ptr Unexecuted instantiation: counters.c:_ceb_key_ptr Unexecuted instantiation: dgram.c:_ceb_key_ptr Unexecuted instantiation: dns.c:_ceb_key_ptr Unexecuted instantiation: dns_ring.c:_ceb_key_ptr Unexecuted instantiation: event_hdl.c:_ceb_key_ptr Unexecuted instantiation: extcheck.c:_ceb_key_ptr Unexecuted instantiation: fcgi-app.c:_ceb_key_ptr Unexecuted instantiation: fix.c:_ceb_key_ptr Unexecuted instantiation: guid.c:_ceb_key_ptr Unexecuted instantiation: h1.c:_ceb_key_ptr Unexecuted instantiation: http_fetch.c:_ceb_key_ptr Unexecuted instantiation: mqtt.c:_ceb_key_ptr Unexecuted instantiation: mux_spop.c:_ceb_key_ptr Unexecuted instantiation: pattern.c:_ceb_key_ptr Unexecuted instantiation: payload.c:_ceb_key_ptr Unexecuted instantiation: proto_tcp.c:_ceb_key_ptr Unexecuted instantiation: shctx.c:_ceb_key_ptr Unexecuted instantiation: stats-file.c:_ceb_key_ptr Unexecuted instantiation: stats-json.c:_ceb_key_ptr Unexecuted instantiation: stats-proxy.c:_ceb_key_ptr Unexecuted instantiation: flt_spoe.c:_ceb_key_ptr Unexecuted instantiation: h1_htx.c:_ceb_key_ptr |
99 | | |
100 | | /* returns a pointer to the key from the node and offset if node is non-null, |
101 | | * otherwise null. I.e. this is made to safely return a pointer to the key |
102 | | * location from the return of a lookup operation. |
103 | | */ |
104 | | static inline void *ceb_key_ptr(const struct ceb_node *node, ptrdiff_t kofs) |
105 | 0 | { |
106 | 0 | return node ? _ceb_key_ptr(node, kofs) : NULL; |
107 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ceb_key_ptr Unexecuted instantiation: fuzz_cfg_parser.c:ceb_key_ptr Unexecuted instantiation: cfgparse.c:ceb_key_ptr Unexecuted instantiation: chunk.c:ceb_key_ptr Unexecuted instantiation: cli.c:ceb_key_ptr Unexecuted instantiation: clock.c:ceb_key_ptr Unexecuted instantiation: connection.c:ceb_key_ptr Unexecuted instantiation: debug.c:ceb_key_ptr Unexecuted instantiation: dynbuf.c:ceb_key_ptr Unexecuted instantiation: errors.c:ceb_key_ptr Unexecuted instantiation: fd.c:ceb_key_ptr Unexecuted instantiation: filters.c:ceb_key_ptr Unexecuted instantiation: flt_http_comp.c:ceb_key_ptr Unexecuted instantiation: freq_ctr.c:ceb_key_ptr Unexecuted instantiation: frontend.c:ceb_key_ptr Unexecuted instantiation: haproxy.c:ceb_key_ptr Unexecuted instantiation: http.c:ceb_key_ptr Unexecuted instantiation: http_ana.c:ceb_key_ptr Unexecuted instantiation: http_ext.c:ceb_key_ptr Unexecuted instantiation: http_htx.c:ceb_key_ptr Unexecuted instantiation: http_rules.c:ceb_key_ptr Unexecuted instantiation: lb_chash.c:ceb_key_ptr Unexecuted instantiation: lb_fas.c:ceb_key_ptr Unexecuted instantiation: lb_fwlc.c:ceb_key_ptr Unexecuted instantiation: lb_fwrr.c:ceb_key_ptr Unexecuted instantiation: lb_map.c:ceb_key_ptr Unexecuted instantiation: lb_ss.c:ceb_key_ptr Unexecuted instantiation: limits.c:ceb_key_ptr Unexecuted instantiation: listener.c:ceb_key_ptr Unexecuted instantiation: log.c:ceb_key_ptr Unexecuted instantiation: mailers.c:ceb_key_ptr Unexecuted instantiation: mworker.c:ceb_key_ptr Unexecuted instantiation: peers.c:ceb_key_ptr Unexecuted instantiation: pool.c:ceb_key_ptr Unexecuted instantiation: proto_rhttp.c:ceb_key_ptr Unexecuted instantiation: proto_sockpair.c:ceb_key_ptr Unexecuted instantiation: protocol.c:ceb_key_ptr Unexecuted instantiation: proxy.c:ceb_key_ptr Unexecuted instantiation: queue.c:ceb_key_ptr Unexecuted instantiation: regex.c:ceb_key_ptr Unexecuted instantiation: resolvers.c:ceb_key_ptr Unexecuted instantiation: ring.c:ceb_key_ptr Unexecuted instantiation: sample.c:ceb_key_ptr Unexecuted instantiation: server.c:ceb_key_ptr Unexecuted instantiation: session.c:ceb_key_ptr Unexecuted instantiation: sink.c:ceb_key_ptr Unexecuted instantiation: sock.c:ceb_key_ptr Unexecuted instantiation: sock_inet.c:ceb_key_ptr Unexecuted instantiation: stats-html.c:ceb_key_ptr Unexecuted instantiation: stats.c:ceb_key_ptr Unexecuted instantiation: stconn.c:ceb_key_ptr Unexecuted instantiation: stick_table.c:ceb_key_ptr Unexecuted instantiation: stream.c:ceb_key_ptr Unexecuted instantiation: systemd.c:ceb_key_ptr Unexecuted instantiation: task.c:ceb_key_ptr Unexecuted instantiation: tcp_rules.c:ceb_key_ptr Unexecuted instantiation: tcpcheck.c:ceb_key_ptr Unexecuted instantiation: thread.c:ceb_key_ptr Unexecuted instantiation: tools.c:ceb_key_ptr Unexecuted instantiation: trace.c:ceb_key_ptr Unexecuted instantiation: uri_auth.c:ceb_key_ptr Unexecuted instantiation: vars.c:ceb_key_ptr Unexecuted instantiation: acl.c:ceb_key_ptr Unexecuted instantiation: action.c:ceb_key_ptr Unexecuted instantiation: activity.c:ceb_key_ptr Unexecuted instantiation: applet.c:ceb_key_ptr Unexecuted instantiation: arg.c:ceb_key_ptr Unexecuted instantiation: auth.c:ceb_key_ptr Unexecuted instantiation: backend.c:ceb_key_ptr Unexecuted instantiation: cache.c:ceb_key_ptr Unexecuted instantiation: ceb32_tree.c:ceb_key_ptr Unexecuted instantiation: ceb64_tree.c:ceb_key_ptr Unexecuted instantiation: cebis_tree.c:ceb_key_ptr Unexecuted instantiation: cebs_tree.c:ceb_key_ptr Unexecuted instantiation: cfgcond.c:ceb_key_ptr Unexecuted instantiation: cfgparse-global.c:ceb_key_ptr Unexecuted instantiation: cfgparse-listen.c:ceb_key_ptr Unexecuted instantiation: channel.c:ceb_key_ptr Unexecuted instantiation: check.c:ceb_key_ptr Unexecuted instantiation: compression.c:ceb_key_ptr Unexecuted instantiation: counters.c:ceb_key_ptr Unexecuted instantiation: dgram.c:ceb_key_ptr Unexecuted instantiation: dns.c:ceb_key_ptr Unexecuted instantiation: dns_ring.c:ceb_key_ptr Unexecuted instantiation: event_hdl.c:ceb_key_ptr Unexecuted instantiation: extcheck.c:ceb_key_ptr Unexecuted instantiation: fcgi-app.c:ceb_key_ptr Unexecuted instantiation: fix.c:ceb_key_ptr Unexecuted instantiation: guid.c:ceb_key_ptr Unexecuted instantiation: h1.c:ceb_key_ptr Unexecuted instantiation: http_fetch.c:ceb_key_ptr Unexecuted instantiation: mqtt.c:ceb_key_ptr Unexecuted instantiation: mux_spop.c:ceb_key_ptr Unexecuted instantiation: pattern.c:ceb_key_ptr Unexecuted instantiation: payload.c:ceb_key_ptr Unexecuted instantiation: proto_tcp.c:ceb_key_ptr Unexecuted instantiation: shctx.c:ceb_key_ptr Unexecuted instantiation: stats-file.c:ceb_key_ptr Unexecuted instantiation: stats-json.c:ceb_key_ptr Unexecuted instantiation: stats-proxy.c:ceb_key_ptr Unexecuted instantiation: flt_spoe.c:ceb_key_ptr Unexecuted instantiation: h1_htx.c:ceb_key_ptr |
108 | | |
109 | | |
110 | | #endif /* _CEBTREE_H */ |