Line | Count | Source |
1 | | // SPDX-License-Identifier: ISC |
2 | | /* |
3 | | * Copyright (c) 2019 David Lamparter, for NetDEF, Inc. |
4 | | */ |
5 | | |
6 | | #ifndef _FRR_PRINTFRR_H |
7 | | #define _FRR_PRINTFRR_H |
8 | | |
9 | | #include <stddef.h> |
10 | | #include <stdarg.h> |
11 | | #include <stdint.h> |
12 | | |
13 | | #include "compiler.h" |
14 | | #include "memory.h" |
15 | | |
16 | | #ifdef __cplusplus |
17 | | extern "C" { |
18 | | #endif |
19 | | |
20 | | struct fmt_outpos { |
21 | | unsigned int off_start, off_end; |
22 | | }; |
23 | | |
24 | | struct fbuf { |
25 | | char *buf; |
26 | | char *pos; |
27 | | size_t len; |
28 | | |
29 | | struct fmt_outpos *outpos; |
30 | | size_t outpos_n, outpos_i; |
31 | | }; |
32 | | |
33 | | #define at(a, b) PRINTFRR(a, b) |
34 | | #define atn(a, b) \ |
35 | | at(a, b) __attribute__((nonnull(1) _RET_NONNULL)) |
36 | | #define atm(a, b) \ |
37 | | atn(a, b) __attribute__((malloc)) |
38 | | |
39 | | /* return value is length needed for the full string (excluding \0) in all |
40 | | * cases. The functions write as much as they can, but continue regardless, |
41 | | * so the return value is independent of buffer length. Both bprintfrr and |
42 | | * snprintf also accept NULL as output buffer. |
43 | | */ |
44 | | |
45 | | /* bprintfrr does NOT null terminate! use sparingly (only provided since it's |
46 | | * the most direct interface) - useful for incrementally building long text |
47 | | * (call bprintfrr repeatedly with the same buffer) |
48 | | */ |
49 | | ssize_t vbprintfrr(struct fbuf *out, const char *fmt, va_list) at(2, 0); |
50 | | ssize_t bprintfrr(struct fbuf *out, const char *fmt, ...) at(2, 3); |
51 | | |
52 | | /* these do null terminate like their snprintf cousins */ |
53 | | ssize_t vsnprintfrr(char *out, size_t sz, const char *fmt, va_list) at(3, 0); |
54 | | ssize_t snprintfrr(char *out, size_t sz, const char *fmt, ...) at(3, 4); |
55 | | |
56 | | /* c = continue / concatenate (append at the end of the string) |
57 | | * return value is would-be string length (regardless of buffer length), |
58 | | * i.e. includes already written chars */ |
59 | | ssize_t vcsnprintfrr(char *out, size_t sz, const char *fmt, va_list) at(3, 0); |
60 | | ssize_t csnprintfrr(char *out, size_t sz, const char *fmt, ...) at(3, 4); |
61 | | |
62 | | /* memory allocations don't fail in FRR, so you always get something here. |
63 | | * (in case of error, returns a strdup of the format string) */ |
64 | | char *vasprintfrr(struct memtype *mt, const char *fmt, va_list) atm(2, 0); |
65 | | char *asprintfrr(struct memtype *mt, const char *fmt, ...) atm(2, 3); |
66 | | |
67 | | /* try to use provided buffer (presumably from stack), allocate if it's too |
68 | | * short. Must call XFREE(mt, return value) if return value != out. |
69 | | */ |
70 | | char *vasnprintfrr(struct memtype *mt, char *out, size_t sz, |
71 | | const char *fmt, va_list) atn(4, 0); |
72 | | char *asnprintfrr(struct memtype *mt, char *out, size_t sz, |
73 | | const char *fmt, ...) atn(4, 5); |
74 | | |
75 | | #define printfrr(fmt, ...) \ |
76 | | do { \ |
77 | | char buf[256], *out; \ |
78 | | out = asnprintfrr(MTYPE_TMP, buf, sizeof(buf), fmt, \ |
79 | | ##__VA_ARGS__); \ |
80 | | fputs(out, stdout); \ |
81 | | if (out != buf) \ |
82 | | XFREE(MTYPE_TMP, out); \ |
83 | | } while (0) |
84 | | |
85 | | #undef at |
86 | | #undef atm |
87 | | #undef atn |
88 | | |
89 | | /* extension specs must start with a capital letter (this is a restriction |
90 | | * for both performance's and human understanding's sake.) |
91 | | * |
92 | | * Note that the entire thing mostly works because a letter directly following |
93 | | * a %p print specifier is extremely unlikely to occur (why would you want to |
94 | | * print "0x12345678HELLO"?) Normally, you'd expect spacing or punctuation |
95 | | * after a placeholder. That also means that neither of those works well for |
96 | | * extension purposes, e.g. "%p{foo}" is reasonable to see actually used. |
97 | | * |
98 | | * TODO: would be nice to support a "%pF%dF" specifier that consumes 2 |
99 | | * arguments, e.g. to pass an integer + a list of known values... can be |
100 | | * done, but a bit tricky. |
101 | | */ |
102 | 613k | #define printfrr_ext_char(ch) ((ch) >= 'A' && (ch) <= 'Z') |
103 | | |
104 | | struct printfrr_eargs; |
105 | | |
106 | | struct printfrr_ext { |
107 | | /* embedded string to minimize cache line pollution */ |
108 | | char match[8]; |
109 | | |
110 | | /* both can be given, if not the code continues searching |
111 | | * (you can do %pX and %dX in 2 different entries) |
112 | | * |
113 | | * return value: number of bytes that would be printed if the buffer |
114 | | * was large enough. be careful about not under-reporting this; |
115 | | * otherwise asnprintf() & co. will get broken. Returning -1 means |
116 | | * something went wrong & default %p/%d handling should be executed. |
117 | | * |
118 | | * to consume extra input flags after %pXY, increment *fmt. It points |
119 | | * at the first character after %pXY at entry. Convention is to make |
120 | | * those flags lowercase letters or numbers. |
121 | | */ |
122 | | ssize_t (*print_ptr)(struct fbuf *buf, struct printfrr_eargs *info, |
123 | | const void *); |
124 | | ssize_t (*print_int)(struct fbuf *buf, struct printfrr_eargs *info, |
125 | | uintmax_t); |
126 | | }; |
127 | | |
128 | | /* additional information passed to extended formatters */ |
129 | | |
130 | | struct printfrr_eargs { |
131 | | /* position in the format string. Points to directly after the |
132 | | * extension specifier. Increment when consuming extra "flag |
133 | | * characters". |
134 | | */ |
135 | | const char *fmt; |
136 | | |
137 | | /* %.1234x / %.*x |
138 | | * not POSIX compatible when used with %p, will cause warnings from |
139 | | * GCC & clang. Usable with %d. Not used by the printfrr() itself |
140 | | * for extension specifiers, so essentially available as a "free" |
141 | | * parameter. -1 if not specified. Value in the format string |
142 | | * cannot be negative, but negative values can be passed with %.*x |
143 | | */ |
144 | | int precision; |
145 | | |
146 | | /* %1234x / %*x |
147 | | * regular width specification. Internally handled by printfrr(), set |
148 | | * to 0 if consumed by the extension in order to suppress standard |
149 | | * width/padding behavior. 0 if not specified. |
150 | | * |
151 | | * NB: always positive, even if a negative value is passed in with |
152 | | * %*x. (The sign is used for the - flag.) |
153 | | */ |
154 | | int width; |
155 | | |
156 | | /* %#x |
157 | | * "alternate representation" flag, not POSIX compatible when used |
158 | | * with %p or %d, will cause warnings from GCC & clang. Not used by |
159 | | * printfrr() itself for extension specifiers. |
160 | | */ |
161 | | bool alt_repr; |
162 | | |
163 | | /* %-x |
164 | | * left-pad flag. Internally handled by printfrr() if width is |
165 | | * nonzero. Only use if the extension sets width to 0. |
166 | | */ |
167 | | bool leftadj; |
168 | | }; |
169 | | |
170 | | /* for any extension that needs a buffer length */ |
171 | | |
172 | | static inline ssize_t printfrr_ext_len(struct printfrr_eargs *ea) |
173 | 0 | { |
174 | 0 | ssize_t rv; |
175 | |
|
176 | 0 | if (ea->precision >= 0) |
177 | 0 | rv = ea->precision; |
178 | 0 | else if (ea->width >= 0) { |
179 | 0 | rv = ea->width; |
180 | 0 | ea->width = -1; |
181 | 0 | } else |
182 | 0 | rv = -1; |
183 | |
|
184 | 0 | return rv; |
185 | 0 | } Unexecuted instantiation: ospf_main.c:printfrr_ext_len Unexecuted instantiation: frr-ospf-route-map.yang.c:printfrr_ext_len Unexecuted instantiation: ospf_bfd.c:printfrr_ext_len Unexecuted instantiation: ospf_dump.c:printfrr_ext_len Unexecuted instantiation: ospf_dump_api.c:printfrr_ext_len Unexecuted instantiation: ospf_errors.c:printfrr_ext_len Unexecuted instantiation: ospf_interface.c:printfrr_ext_len Unexecuted instantiation: ospf_lsa.c:printfrr_ext_len Unexecuted instantiation: ospf_lsdb.c:printfrr_ext_len Unexecuted instantiation: ospf_neighbor.c:printfrr_ext_len Unexecuted instantiation: ospf_network.c:printfrr_ext_len Unexecuted instantiation: ospf_nsm.c:printfrr_ext_len Unexecuted instantiation: ospf_opaque.c:printfrr_ext_len Unexecuted instantiation: ospf_packet.c:printfrr_ext_len Unexecuted instantiation: ospf_ri.c:printfrr_ext_len Unexecuted instantiation: ospf_routemap.c:printfrr_ext_len Unexecuted instantiation: ospf_routemap_nb.c:printfrr_ext_len Unexecuted instantiation: ospf_routemap_nb_config.c:printfrr_ext_len Unexecuted instantiation: ospf_spf.c:printfrr_ext_len Unexecuted instantiation: ospf_ti_lfa.c:printfrr_ext_len Unexecuted instantiation: ospf_sr.c:printfrr_ext_len Unexecuted instantiation: ospf_te.c:printfrr_ext_len Unexecuted instantiation: ospf_vty.c:printfrr_ext_len Unexecuted instantiation: ospf_zebra.c:printfrr_ext_len Unexecuted instantiation: ospfd.c:printfrr_ext_len Unexecuted instantiation: ospf_gr_helper.c:printfrr_ext_len Unexecuted instantiation: ospf_abr.c:printfrr_ext_len Unexecuted instantiation: ospf_apiserver.c:printfrr_ext_len Unexecuted instantiation: ospf_asbr.c:printfrr_ext_len Unexecuted instantiation: ospf_ase.c:printfrr_ext_len Unexecuted instantiation: ospf_ext.c:printfrr_ext_len Unexecuted instantiation: ospf_flood.c:printfrr_ext_len Unexecuted instantiation: ospf_gr.c:printfrr_ext_len Unexecuted instantiation: ospf_ia.c:printfrr_ext_len Unexecuted instantiation: ospf_ism.c:printfrr_ext_len Unexecuted instantiation: ospf_ldp_sync.c:printfrr_ext_len Unexecuted instantiation: ospf_route.c:printfrr_ext_len Unexecuted instantiation: ospf_api.c:printfrr_ext_len Unexecuted instantiation: affinitymap.c:printfrr_ext_len Unexecuted instantiation: affinitymap_cli.c:printfrr_ext_len Unexecuted instantiation: affinitymap_northbound.c:printfrr_ext_len Unexecuted instantiation: agg_table.c:printfrr_ext_len Unexecuted instantiation: asn.c:printfrr_ext_len Unexecuted instantiation: bfd.c:printfrr_ext_len Unexecuted instantiation: buffer.c:printfrr_ext_len Unexecuted instantiation: command.c:printfrr_ext_len Unexecuted instantiation: command_graph.c:printfrr_ext_len Unexecuted instantiation: command_lex.c:printfrr_ext_len Unexecuted instantiation: command_match.c:printfrr_ext_len Unexecuted instantiation: command_parse.c:printfrr_ext_len Unexecuted instantiation: cspf.c:printfrr_ext_len Unexecuted instantiation: debug.c:printfrr_ext_len Unexecuted instantiation: distribute.c:printfrr_ext_len Unexecuted instantiation: ferr.c:printfrr_ext_len Unexecuted instantiation: filter.c:printfrr_ext_len Unexecuted instantiation: filter_cli.c:printfrr_ext_len Unexecuted instantiation: filter_nb.c:printfrr_ext_len Unexecuted instantiation: flex_algo.c:printfrr_ext_len Unexecuted instantiation: frr_pthread.c:printfrr_ext_len Unexecuted instantiation: grammar_sandbox.c:printfrr_ext_len Unexecuted instantiation: hash.c:printfrr_ext_len Unexecuted instantiation: id_alloc.c:printfrr_ext_len Unexecuted instantiation: if.c:printfrr_ext_len Unexecuted instantiation: if_rmap.c:printfrr_ext_len Unexecuted instantiation: iso.c:printfrr_ext_len Unexecuted instantiation: json.c:printfrr_ext_len Unexecuted instantiation: keychain.c:printfrr_ext_len Unexecuted instantiation: ldp_sync.c:printfrr_ext_len Unexecuted instantiation: lib_errors.c:printfrr_ext_len Unexecuted instantiation: lib_vty.c:printfrr_ext_len Unexecuted instantiation: libfrr.c:printfrr_ext_len Unexecuted instantiation: link_state.c:printfrr_ext_len Unexecuted instantiation: log.c:printfrr_ext_len Unexecuted instantiation: log_filter.c:printfrr_ext_len Unexecuted instantiation: log_vty.c:printfrr_ext_len Unexecuted instantiation: memory.c:printfrr_ext_len Unexecuted instantiation: mgmt_be_client.c:printfrr_ext_len Unexecuted instantiation: mgmt_fe_client.c:printfrr_ext_len Unexecuted instantiation: mgmt_msg.c:printfrr_ext_len Unexecuted instantiation: mlag.c:printfrr_ext_len Unexecuted instantiation: module.c:printfrr_ext_len Unexecuted instantiation: srv6.c:printfrr_ext_len Unexecuted instantiation: network.c:printfrr_ext_len Unexecuted instantiation: nexthop.c:printfrr_ext_len Unexecuted instantiation: netns_linux.c:printfrr_ext_len Unexecuted instantiation: nexthop_group.c:printfrr_ext_len Unexecuted instantiation: northbound.c:printfrr_ext_len Unexecuted instantiation: northbound_cli.c:printfrr_ext_len Unexecuted instantiation: northbound_db.c:printfrr_ext_len Unexecuted instantiation: pid_output.c:printfrr_ext_len Unexecuted instantiation: plist.c:printfrr_ext_len Unexecuted instantiation: prefix.c:printfrr_ext_len Unexecuted instantiation: privs.c:printfrr_ext_len Unexecuted instantiation: pullwr.c:printfrr_ext_len Unexecuted instantiation: qobj.c:printfrr_ext_len Unexecuted instantiation: routemap.c:printfrr_ext_len Unexecuted instantiation: routemap_cli.c:printfrr_ext_len Unexecuted instantiation: routemap_northbound.c:printfrr_ext_len Unexecuted instantiation: sbuf.c:printfrr_ext_len Unexecuted instantiation: sigevent.c:printfrr_ext_len Unexecuted instantiation: skiplist.c:printfrr_ext_len Unexecuted instantiation: sockopt.c:printfrr_ext_len Unexecuted instantiation: sockunion.c:printfrr_ext_len Unexecuted instantiation: spf_backoff.c:printfrr_ext_len Unexecuted instantiation: srcdest_table.c:printfrr_ext_len Unexecuted instantiation: stream.c:printfrr_ext_len Unexecuted instantiation: strformat.c:printfrr_ext_len Unexecuted instantiation: systemd.c:printfrr_ext_len Unexecuted instantiation: table.c:printfrr_ext_len Unexecuted instantiation: termtable.c:printfrr_ext_len Unexecuted instantiation: event.c:printfrr_ext_len Unexecuted instantiation: vrf.c:printfrr_ext_len Unexecuted instantiation: vty.c:printfrr_ext_len Unexecuted instantiation: wheel.c:printfrr_ext_len Unexecuted instantiation: workqueue.c:printfrr_ext_len Unexecuted instantiation: xref.c:printfrr_ext_len Unexecuted instantiation: yang.c:printfrr_ext_len Unexecuted instantiation: yang_translator.c:printfrr_ext_len Unexecuted instantiation: yang_wrappers.c:printfrr_ext_len Unexecuted instantiation: zclient.c:printfrr_ext_len Unexecuted instantiation: zlog.c:printfrr_ext_len Unexecuted instantiation: zlog_5424.c:printfrr_ext_len Unexecuted instantiation: zlog_5424_cli.c:printfrr_ext_len Unexecuted instantiation: zlog_live.c:printfrr_ext_len Unexecuted instantiation: zlog_targets.c:printfrr_ext_len Unexecuted instantiation: printf-pos.c:printfrr_ext_len Unexecuted instantiation: vfprintf.c:printfrr_ext_len Unexecuted instantiation: glue.c:printfrr_ext_len Unexecuted instantiation: routing_nb.c:printfrr_ext_len Unexecuted instantiation: routing_nb_config.c:printfrr_ext_len Unexecuted instantiation: tc.c:printfrr_ext_len Unexecuted instantiation: frr-affinity-map.yang.c:printfrr_ext_len Unexecuted instantiation: frr-filter.yang.c:printfrr_ext_len Unexecuted instantiation: frr-if-rmap.yang.c:printfrr_ext_len Unexecuted instantiation: frr-interface.yang.c:printfrr_ext_len Unexecuted instantiation: frr-route-map.yang.c:printfrr_ext_len Unexecuted instantiation: frr-route-types.yang.c:printfrr_ext_len Unexecuted instantiation: frr-vrf.yang.c:printfrr_ext_len Unexecuted instantiation: frr-routing.yang.c:printfrr_ext_len Unexecuted instantiation: frr-nexthop.yang.c:printfrr_ext_len Unexecuted instantiation: ietf-routing-types.yang.c:printfrr_ext_len Unexecuted instantiation: ietf-interfaces.yang.c:printfrr_ext_len Unexecuted instantiation: ietf-bgp-types.yang.c:printfrr_ext_len Unexecuted instantiation: frr-module-translator.yang.c:printfrr_ext_len Unexecuted instantiation: connected.c:printfrr_ext_len Unexecuted instantiation: if_netlink.c:printfrr_ext_len Unexecuted instantiation: interface.c:printfrr_ext_len Unexecuted instantiation: ioctl.c:printfrr_ext_len Unexecuted instantiation: ipforward_proc.c:printfrr_ext_len Unexecuted instantiation: kernel_netlink.c:printfrr_ext_len Unexecuted instantiation: label_manager.c:printfrr_ext_len Unexecuted instantiation: main.c:printfrr_ext_len Unexecuted instantiation: netconf_netlink.c:printfrr_ext_len Unexecuted instantiation: redistribute.c:printfrr_ext_len Unexecuted instantiation: router-id.c:printfrr_ext_len Unexecuted instantiation: rt_netlink.c:printfrr_ext_len Unexecuted instantiation: rtadv.c:printfrr_ext_len Unexecuted instantiation: rtread_netlink.c:printfrr_ext_len Unexecuted instantiation: rule_netlink.c:printfrr_ext_len Unexecuted instantiation: table_manager.c:printfrr_ext_len Unexecuted instantiation: tc_netlink.c:printfrr_ext_len Unexecuted instantiation: zapi_msg.c:printfrr_ext_len Unexecuted instantiation: zebra_affinitymap.c:printfrr_ext_len Unexecuted instantiation: zebra_dplane.c:printfrr_ext_len Unexecuted instantiation: zebra_errors.c:printfrr_ext_len Unexecuted instantiation: zebra_gr.c:printfrr_ext_len Unexecuted instantiation: zebra_l2.c:printfrr_ext_len Unexecuted instantiation: zebra_l2_bridge_if.c:printfrr_ext_len Unexecuted instantiation: zebra_evpn.c:printfrr_ext_len Unexecuted instantiation: zebra_evpn_mac.c:printfrr_ext_len Unexecuted instantiation: zebra_evpn_neigh.c:printfrr_ext_len Unexecuted instantiation: zebra_mlag.c:printfrr_ext_len Unexecuted instantiation: zebra_mlag_vty.c:printfrr_ext_len Unexecuted instantiation: zebra_mpls.c:printfrr_ext_len Unexecuted instantiation: zebra_mpls_netlink.c:printfrr_ext_len Unexecuted instantiation: zebra_mpls_null.c:printfrr_ext_len Unexecuted instantiation: zebra_mpls_vty.c:printfrr_ext_len Unexecuted instantiation: zebra_srv6.c:printfrr_ext_len Unexecuted instantiation: zebra_srv6_vty.c:printfrr_ext_len Unexecuted instantiation: zebra_mroute.c:printfrr_ext_len Unexecuted instantiation: zebra_nb.c:printfrr_ext_len Unexecuted instantiation: zebra_nb_config.c:printfrr_ext_len Unexecuted instantiation: zebra_nb_rpcs.c:printfrr_ext_len Unexecuted instantiation: zebra_nb_state.c:printfrr_ext_len Unexecuted instantiation: zebra_netns_id.c:printfrr_ext_len Unexecuted instantiation: zebra_netns_notify.c:printfrr_ext_len Unexecuted instantiation: zebra_nhg.c:printfrr_ext_len Unexecuted instantiation: zebra_ns.c:printfrr_ext_len Unexecuted instantiation: zebra_opaque.c:printfrr_ext_len Unexecuted instantiation: zebra_pbr.c:printfrr_ext_len Unexecuted instantiation: zebra_ptm.c:printfrr_ext_len Unexecuted instantiation: zebra_ptm_redistribute.c:printfrr_ext_len Unexecuted instantiation: zebra_pw.c:printfrr_ext_len Unexecuted instantiation: zebra_rib.c:printfrr_ext_len Unexecuted instantiation: zebra_router.c:printfrr_ext_len Unexecuted instantiation: zebra_rnh.c:printfrr_ext_len Unexecuted instantiation: zebra_routemap.c:printfrr_ext_len Unexecuted instantiation: zebra_routemap_nb.c:printfrr_ext_len Unexecuted instantiation: zebra_routemap_nb_config.c:printfrr_ext_len Unexecuted instantiation: zebra_script.c:printfrr_ext_len Unexecuted instantiation: zebra_srte.c:printfrr_ext_len Unexecuted instantiation: zebra_tc.c:printfrr_ext_len Unexecuted instantiation: zebra_vrf.c:printfrr_ext_len Unexecuted instantiation: zebra_vty.c:printfrr_ext_len Unexecuted instantiation: zebra_vxlan.c:printfrr_ext_len Unexecuted instantiation: zebra_vxlan_if.c:printfrr_ext_len Unexecuted instantiation: zebra_evpn_mh.c:printfrr_ext_len Unexecuted instantiation: zebra_neigh.c:printfrr_ext_len Unexecuted instantiation: zserv.c:printfrr_ext_len Unexecuted instantiation: debug_nl.c:printfrr_ext_len Unexecuted instantiation: frr-zebra.yang.c:printfrr_ext_len Unexecuted instantiation: frr-zebra-route-map.yang.c:printfrr_ext_len Unexecuted instantiation: bgp_main.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-types.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-common-structure.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-common.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-neighbor.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-peer-group.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-bmp.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-rpki.yang.c:printfrr_ext_len Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-filter.yang.c:printfrr_ext_len Unexecuted instantiation: frr-bgp-route-map.yang.c:printfrr_ext_len Unexecuted instantiation: bgp_attr.c:printfrr_ext_len Unexecuted instantiation: bgp_attr_evpn.c:printfrr_ext_len Unexecuted instantiation: bgp_clist.c:printfrr_ext_len Unexecuted instantiation: bgp_community.c:printfrr_ext_len Unexecuted instantiation: bgp_community_alias.c:printfrr_ext_len Unexecuted instantiation: bgp_debug.c:printfrr_ext_len Unexecuted instantiation: bgp_dump.c:printfrr_ext_len Unexecuted instantiation: bgp_ecommunity.c:printfrr_ext_len Unexecuted instantiation: bgp_errors.c:printfrr_ext_len Unexecuted instantiation: bgp_evpn.c:printfrr_ext_len Unexecuted instantiation: bgp_evpn_mh.c:printfrr_ext_len Unexecuted instantiation: bgp_evpn_vty.c:printfrr_ext_len Unexecuted instantiation: bgp_filter.c:printfrr_ext_len Unexecuted instantiation: bgp_flowspec_vty.c:printfrr_ext_len Unexecuted instantiation: bgp_fsm.c:printfrr_ext_len Unexecuted instantiation: bgp_io.c:printfrr_ext_len Unexecuted instantiation: bgp_keepalives.c:printfrr_ext_len Unexecuted instantiation: bgp_labelpool.c:printfrr_ext_len Unexecuted instantiation: bgp_lcommunity.c:printfrr_ext_len Unexecuted instantiation: bgp_mac.c:printfrr_ext_len Unexecuted instantiation: bgp_mpath.c:printfrr_ext_len Unexecuted instantiation: bgp_mplsvpn.c:printfrr_ext_len Unexecuted instantiation: bgp_network.c:printfrr_ext_len Unexecuted instantiation: bgp_nexthop.c:printfrr_ext_len Unexecuted instantiation: bgp_nht.c:printfrr_ext_len Unexecuted instantiation: bgp_packet.c:printfrr_ext_len Unexecuted instantiation: bgp_pbr.c:printfrr_ext_len Unexecuted instantiation: bgp_rd.c:printfrr_ext_len Unexecuted instantiation: bgp_regex.c:printfrr_ext_len Unexecuted instantiation: bgp_route.c:printfrr_ext_len Unexecuted instantiation: bgp_routemap.c:printfrr_ext_len Unexecuted instantiation: bgp_routemap_nb.c:printfrr_ext_len Unexecuted instantiation: bgp_routemap_nb_config.c:printfrr_ext_len Unexecuted instantiation: bgp_table.c:printfrr_ext_len Unexecuted instantiation: bgp_updgrp.c:printfrr_ext_len Unexecuted instantiation: bgp_updgrp_adv.c:printfrr_ext_len Unexecuted instantiation: bgp_updgrp_packet.c:printfrr_ext_len Unexecuted instantiation: bgp_vpn.c:printfrr_ext_len Unexecuted instantiation: bgp_vty.c:printfrr_ext_len Unexecuted instantiation: bgp_zebra.c:printfrr_ext_len Unexecuted instantiation: bgpd.c:printfrr_ext_len Unexecuted instantiation: bgp_rfapi_cfg.c:printfrr_ext_len Unexecuted instantiation: rfapi_import.c:printfrr_ext_len Unexecuted instantiation: rfapi.c:printfrr_ext_len Unexecuted instantiation: rfapi_ap.c:printfrr_ext_len Unexecuted instantiation: rfapi_encap_tlv.c:printfrr_ext_len Unexecuted instantiation: rfapi_nve_addr.c:printfrr_ext_len Unexecuted instantiation: rfapi_monitor.c:printfrr_ext_len Unexecuted instantiation: rfapi_rib.c:printfrr_ext_len Unexecuted instantiation: rfapi_vty.c:printfrr_ext_len Unexecuted instantiation: vnc_debug.c:printfrr_ext_len Unexecuted instantiation: vnc_export_bgp.c:printfrr_ext_len Unexecuted instantiation: vnc_export_table.c:printfrr_ext_len Unexecuted instantiation: vnc_import_bgp.c:printfrr_ext_len Unexecuted instantiation: vnc_zebra.c:printfrr_ext_len Unexecuted instantiation: bgp_addpath.c:printfrr_ext_len Unexecuted instantiation: bgp_advertise.c:printfrr_ext_len Unexecuted instantiation: bgp_aspath.c:printfrr_ext_len Unexecuted instantiation: bgp_bfd.c:printfrr_ext_len Unexecuted instantiation: bgp_conditional_adv.c:printfrr_ext_len Unexecuted instantiation: bgp_damp.c:printfrr_ext_len Unexecuted instantiation: bgp_encap_tlv.c:printfrr_ext_len Unexecuted instantiation: bgp_flowspec.c:printfrr_ext_len Unexecuted instantiation: bgp_flowspec_util.c:printfrr_ext_len Unexecuted instantiation: bgp_label.c:printfrr_ext_len Unexecuted instantiation: bgp_open.c:printfrr_ext_len Unexecuted instantiation: rfp_example.c:printfrr_ext_len Unexecuted instantiation: pim_addr.c:printfrr_ext_len Unexecuted instantiation: pim_assert.c:printfrr_ext_len Unexecuted instantiation: pim_bfd.c:printfrr_ext_len Unexecuted instantiation: pim_bsm.c:printfrr_ext_len Unexecuted instantiation: pim_cmd_common.c:printfrr_ext_len Unexecuted instantiation: pim_errors.c:printfrr_ext_len Unexecuted instantiation: pim_hello.c:printfrr_ext_len Unexecuted instantiation: pim_iface.c:printfrr_ext_len Unexecuted instantiation: pim_ifchannel.c:printfrr_ext_len Unexecuted instantiation: pim_instance.c:printfrr_ext_len Unexecuted instantiation: pim_join.c:printfrr_ext_len Unexecuted instantiation: pim_jp_agg.c:printfrr_ext_len Unexecuted instantiation: pim_macro.c:printfrr_ext_len Unexecuted instantiation: pim_mroute.c:printfrr_ext_len Unexecuted instantiation: pim_msg.c:printfrr_ext_len Unexecuted instantiation: pim_nb.c:printfrr_ext_len Unexecuted instantiation: pim_nb_config.c:printfrr_ext_len Unexecuted instantiation: pim_neighbor.c:printfrr_ext_len Unexecuted instantiation: pim_nht.c:printfrr_ext_len Unexecuted instantiation: pim_oil.c:printfrr_ext_len Unexecuted instantiation: pim_pim.c:printfrr_ext_len Unexecuted instantiation: pim_routemap.c:printfrr_ext_len Unexecuted instantiation: pim_rp.c:printfrr_ext_len Unexecuted instantiation: pim_rpf.c:printfrr_ext_len Unexecuted instantiation: pim_sock.c:printfrr_ext_len Unexecuted instantiation: pim_ssm.c:printfrr_ext_len Unexecuted instantiation: pim_ssmpingd.c:printfrr_ext_len Unexecuted instantiation: pim_static.c:printfrr_ext_len Unexecuted instantiation: pim_str.c:printfrr_ext_len Unexecuted instantiation: pim_tib.c:printfrr_ext_len Unexecuted instantiation: pim_time.c:printfrr_ext_len Unexecuted instantiation: pim_tlv.c:printfrr_ext_len Unexecuted instantiation: pim_upstream.c:printfrr_ext_len Unexecuted instantiation: pim_util.c:printfrr_ext_len Unexecuted instantiation: pim_vty.c:printfrr_ext_len Unexecuted instantiation: pim_zebra.c:printfrr_ext_len Unexecuted instantiation: pim_zlookup.c:printfrr_ext_len Unexecuted instantiation: pim_vxlan.c:printfrr_ext_len Unexecuted instantiation: pim_register.c:printfrr_ext_len Unexecuted instantiation: pimd.c:printfrr_ext_len Unexecuted instantiation: pim_cmd.c:printfrr_ext_len Unexecuted instantiation: pim_igmp.c:printfrr_ext_len Unexecuted instantiation: pim_igmp_mtrace.c:printfrr_ext_len Unexecuted instantiation: pim_igmpv2.c:printfrr_ext_len Unexecuted instantiation: pim_igmpv3.c:printfrr_ext_len Unexecuted instantiation: pim_main.c:printfrr_ext_len Unexecuted instantiation: pim_mlag.c:printfrr_ext_len Unexecuted instantiation: pim_msdp.c:printfrr_ext_len Unexecuted instantiation: pim_msdp_packet.c:printfrr_ext_len Unexecuted instantiation: pim_msdp_socket.c:printfrr_ext_len Unexecuted instantiation: pim_signals.c:printfrr_ext_len Unexecuted instantiation: pim_zpthread.c:printfrr_ext_len Unexecuted instantiation: frr-pim.yang.c:printfrr_ext_len Unexecuted instantiation: frr-pim-rp.yang.c:printfrr_ext_len Unexecuted instantiation: frr-gmp.yang.c:printfrr_ext_len |
186 | | |
187 | | /* no locking - must be called when single threaded (e.g. at startup.) |
188 | | * this restriction hopefully won't be a huge bother considering normal usage |
189 | | * scenarios... |
190 | | */ |
191 | | void printfrr_ext_reg(const struct printfrr_ext *); |
192 | | |
193 | | #define printfrr_ext_autoreg_p(matchs, print_fn) \ |
194 | | static ssize_t print_fn(struct fbuf *, struct printfrr_eargs *, \ |
195 | | const void *); \ |
196 | | static const struct printfrr_ext _printext_##print_fn = { \ |
197 | | .match = matchs, \ |
198 | | .print_ptr = print_fn, \ |
199 | | }; \ |
200 | | static void _printreg_##print_fn(void) __attribute__((constructor)); \ |
201 | | static void _printreg_##print_fn(void) \ |
202 | 226 | { \ |
203 | 226 | printfrr_ext_reg(&_printext_##print_fn); \ |
204 | 226 | } \ asn.c:_printreg_printfrr_asplain Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
asn.c:_printreg_printfrr_asdot Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
asn.c:_printreg_printfrr_asdotplus Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
iso.c:_printreg_printfrr_iso_sysid Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
iso.c:_printreg_printfrr_iso_pseudo Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
iso.c:_printreg_printfrr_iso_frag_id Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
iso.c:_printreg_printfrr_iso_addr Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
nexthop.c:_printreg_printfrr_nh Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
prefix.c:_printreg_printfrr_ea Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
prefix.c:_printreg_printfrr_ia Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
prefix.c:_printreg_printfrr_i4 Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
prefix.c:_printreg_printfrr_i6 Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
prefix.c:_printreg_printfrr_pfx Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
prefix.c:_printreg_printfrr_psg Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
sockunion.c:_printreg_printfrr_psu Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
srcdest_table.c:_printreg_printfrr_rn Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_hexdump Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_hexdstr Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_escape Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_quote Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_ts Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_tv Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
strformat.c:_printreg_printfrr_tt Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
event.c:_printreg_printfrr_thread Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
glue.c:_printreg_printfrr_fb Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
glue.c:_printreg_printfrr_va Line | Count | Source | 202 | 8 | { \ | 203 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 8 | } \ |
zebra_nhg.c:_printreg_printfrr_nhghe Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
zebra_rib.c:_printreg_printfrr_zebra_node Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
bgp_rd.c:_printreg_printfrr_prd Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
bgp_rd.c:_printreg_printfrr_prd_dot Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
bgp_rd.c:_printreg_printfrr_prd_dotplus Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
bgp_table.c:_printreg_printfrr_bd Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
bgpd.c:_printreg_printfrr_bp Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
pim_addr.c:_printreg_printfrr_pimaddr Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
pim_addr.c:_printreg_printfrr_sgaddr Line | Count | Source | 202 | 2 | { \ | 203 | 2 | printfrr_ext_reg(&_printext_##print_fn); \ | 204 | 2 | } \ |
|
205 | | MACRO_REQUIRE_SEMICOLON() |
206 | | |
207 | | #define printfrr_ext_autoreg_i(matchs, print_fn) \ |
208 | | static ssize_t print_fn(struct fbuf *, struct printfrr_eargs *, \ |
209 | | uintmax_t); \ |
210 | | static const struct printfrr_ext _printext_##print_fn = { \ |
211 | | .match = matchs, \ |
212 | | .print_int = print_fn, \ |
213 | | }; \ |
214 | | static void _printreg_##print_fn(void) __attribute__((constructor)); \ |
215 | | static void _printreg_##print_fn(void) \ |
216 | 16 | { \ |
217 | 16 | printfrr_ext_reg(&_printext_##print_fn); \ |
218 | 16 | } \ sockunion.c:_printreg_printfrr_pf Line | Count | Source | 216 | 8 | { \ | 217 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 218 | 8 | } \ |
sockunion.c:_printreg_printfrr_so Line | Count | Source | 216 | 8 | { \ | 217 | 8 | printfrr_ext_reg(&_printext_##print_fn); \ | 218 | 8 | } \ |
|
219 | | MACRO_REQUIRE_SEMICOLON() |
220 | | |
221 | | /* fbuf helper functions - note all 3 of these return the length that would |
222 | | * be written regardless of how much space was available in the buffer, as |
223 | | * needed for implementing printfrr extensions. (They also accept NULL buf |
224 | | * for that.) |
225 | | */ |
226 | | |
227 | | static inline ssize_t bputs(struct fbuf *buf, const char *str) |
228 | 252k | { |
229 | 252k | size_t len = strlen(str); |
230 | 252k | size_t ncopy; |
231 | | |
232 | 252k | if (!buf) |
233 | 0 | return len; |
234 | | |
235 | 252k | ncopy = MIN(len, (size_t)(buf->buf + buf->len - buf->pos)); |
236 | 252k | memcpy(buf->pos, str, ncopy); |
237 | 252k | buf->pos += ncopy; |
238 | | |
239 | 252k | return len; |
240 | 252k | } Unexecuted instantiation: ospf_main.c:bputs Unexecuted instantiation: frr-ospf-route-map.yang.c:bputs Unexecuted instantiation: ospf_bfd.c:bputs Unexecuted instantiation: ospf_dump.c:bputs Unexecuted instantiation: ospf_dump_api.c:bputs Unexecuted instantiation: ospf_errors.c:bputs Unexecuted instantiation: ospf_interface.c:bputs Unexecuted instantiation: ospf_lsa.c:bputs Unexecuted instantiation: ospf_lsdb.c:bputs Unexecuted instantiation: ospf_neighbor.c:bputs Unexecuted instantiation: ospf_network.c:bputs Unexecuted instantiation: ospf_nsm.c:bputs Unexecuted instantiation: ospf_opaque.c:bputs Unexecuted instantiation: ospf_packet.c:bputs Unexecuted instantiation: ospf_ri.c:bputs Unexecuted instantiation: ospf_routemap.c:bputs Unexecuted instantiation: ospf_routemap_nb.c:bputs Unexecuted instantiation: ospf_routemap_nb_config.c:bputs Unexecuted instantiation: ospf_spf.c:bputs Unexecuted instantiation: ospf_ti_lfa.c:bputs Unexecuted instantiation: ospf_sr.c:bputs Unexecuted instantiation: ospf_te.c:bputs Unexecuted instantiation: ospf_vty.c:bputs Unexecuted instantiation: ospf_zebra.c:bputs Unexecuted instantiation: ospfd.c:bputs Unexecuted instantiation: ospf_gr_helper.c:bputs Unexecuted instantiation: ospf_abr.c:bputs Unexecuted instantiation: ospf_apiserver.c:bputs Unexecuted instantiation: ospf_asbr.c:bputs Unexecuted instantiation: ospf_ase.c:bputs Unexecuted instantiation: ospf_ext.c:bputs Unexecuted instantiation: ospf_flood.c:bputs Unexecuted instantiation: ospf_gr.c:bputs Unexecuted instantiation: ospf_ia.c:bputs Unexecuted instantiation: ospf_ism.c:bputs Unexecuted instantiation: ospf_ldp_sync.c:bputs Unexecuted instantiation: ospf_route.c:bputs Unexecuted instantiation: ospf_api.c:bputs Unexecuted instantiation: affinitymap.c:bputs Unexecuted instantiation: affinitymap_cli.c:bputs Unexecuted instantiation: affinitymap_northbound.c:bputs Unexecuted instantiation: agg_table.c:bputs Line | Count | Source | 228 | 4.19k | { | 229 | 4.19k | size_t len = strlen(str); | 230 | 4.19k | size_t ncopy; | 231 | | | 232 | 4.19k | if (!buf) | 233 | 0 | return len; | 234 | | | 235 | 4.19k | ncopy = MIN(len, (size_t)(buf->buf + buf->len - buf->pos)); | 236 | 4.19k | memcpy(buf->pos, str, ncopy); | 237 | 4.19k | buf->pos += ncopy; | 238 | | | 239 | 4.19k | return len; | 240 | 4.19k | } |
Unexecuted instantiation: bfd.c:bputs Unexecuted instantiation: buffer.c:bputs Unexecuted instantiation: command.c:bputs Unexecuted instantiation: command_graph.c:bputs Unexecuted instantiation: command_lex.c:bputs Unexecuted instantiation: command_match.c:bputs Unexecuted instantiation: command_parse.c:bputs Unexecuted instantiation: cspf.c:bputs Unexecuted instantiation: debug.c:bputs Unexecuted instantiation: distribute.c:bputs Unexecuted instantiation: ferr.c:bputs Unexecuted instantiation: filter.c:bputs Unexecuted instantiation: filter_cli.c:bputs Unexecuted instantiation: filter_nb.c:bputs Unexecuted instantiation: flex_algo.c:bputs Unexecuted instantiation: frr_pthread.c:bputs Unexecuted instantiation: grammar_sandbox.c:bputs Unexecuted instantiation: hash.c:bputs Unexecuted instantiation: id_alloc.c:bputs Unexecuted instantiation: if.c:bputs Unexecuted instantiation: if_rmap.c:bputs Unexecuted instantiation: iso.c:bputs Unexecuted instantiation: json.c:bputs Unexecuted instantiation: keychain.c:bputs Unexecuted instantiation: ldp_sync.c:bputs Unexecuted instantiation: lib_errors.c:bputs Unexecuted instantiation: lib_vty.c:bputs Unexecuted instantiation: libfrr.c:bputs Unexecuted instantiation: link_state.c:bputs Unexecuted instantiation: log.c:bputs Unexecuted instantiation: log_filter.c:bputs Unexecuted instantiation: log_vty.c:bputs Unexecuted instantiation: memory.c:bputs Unexecuted instantiation: mgmt_be_client.c:bputs Unexecuted instantiation: mgmt_fe_client.c:bputs Unexecuted instantiation: mgmt_msg.c:bputs Unexecuted instantiation: mlag.c:bputs Unexecuted instantiation: module.c:bputs Unexecuted instantiation: srv6.c:bputs Unexecuted instantiation: network.c:bputs Unexecuted instantiation: nexthop.c:bputs Unexecuted instantiation: netns_linux.c:bputs Unexecuted instantiation: nexthop_group.c:bputs Unexecuted instantiation: northbound.c:bputs Unexecuted instantiation: northbound_cli.c:bputs Unexecuted instantiation: northbound_db.c:bputs Unexecuted instantiation: pid_output.c:bputs Unexecuted instantiation: plist.c:bputs Line | Count | Source | 228 | 247k | { | 229 | 247k | size_t len = strlen(str); | 230 | 247k | size_t ncopy; | 231 | | | 232 | 247k | if (!buf) | 233 | 0 | return len; | 234 | | | 235 | 247k | ncopy = MIN(len, (size_t)(buf->buf + buf->len - buf->pos)); | 236 | 247k | memcpy(buf->pos, str, ncopy); | 237 | 247k | buf->pos += ncopy; | 238 | | | 239 | 247k | return len; | 240 | 247k | } |
Unexecuted instantiation: privs.c:bputs Unexecuted instantiation: pullwr.c:bputs Unexecuted instantiation: qobj.c:bputs Unexecuted instantiation: routemap.c:bputs Unexecuted instantiation: routemap_cli.c:bputs Unexecuted instantiation: routemap_northbound.c:bputs Unexecuted instantiation: sbuf.c:bputs Unexecuted instantiation: sigevent.c:bputs Unexecuted instantiation: skiplist.c:bputs Unexecuted instantiation: sockopt.c:bputs Unexecuted instantiation: sockunion.c:bputs Unexecuted instantiation: spf_backoff.c:bputs Unexecuted instantiation: srcdest_table.c:bputs Unexecuted instantiation: stream.c:bputs Unexecuted instantiation: strformat.c:bputs Unexecuted instantiation: systemd.c:bputs Unexecuted instantiation: table.c:bputs Unexecuted instantiation: termtable.c:bputs Unexecuted instantiation: event.c:bputs Unexecuted instantiation: vrf.c:bputs Unexecuted instantiation: vty.c:bputs Unexecuted instantiation: wheel.c:bputs Unexecuted instantiation: workqueue.c:bputs Unexecuted instantiation: xref.c:bputs Unexecuted instantiation: yang.c:bputs Unexecuted instantiation: yang_translator.c:bputs Unexecuted instantiation: yang_wrappers.c:bputs Unexecuted instantiation: zclient.c:bputs Unexecuted instantiation: zlog.c:bputs Unexecuted instantiation: zlog_5424.c:bputs Unexecuted instantiation: zlog_5424_cli.c:bputs Unexecuted instantiation: zlog_live.c:bputs Unexecuted instantiation: zlog_targets.c:bputs Unexecuted instantiation: printf-pos.c:bputs Unexecuted instantiation: vfprintf.c:bputs Unexecuted instantiation: glue.c:bputs Unexecuted instantiation: routing_nb.c:bputs Unexecuted instantiation: routing_nb_config.c:bputs Unexecuted instantiation: tc.c:bputs Unexecuted instantiation: frr-affinity-map.yang.c:bputs Unexecuted instantiation: frr-filter.yang.c:bputs Unexecuted instantiation: frr-if-rmap.yang.c:bputs Unexecuted instantiation: frr-interface.yang.c:bputs Unexecuted instantiation: frr-route-map.yang.c:bputs Unexecuted instantiation: frr-route-types.yang.c:bputs Unexecuted instantiation: frr-vrf.yang.c:bputs Unexecuted instantiation: frr-routing.yang.c:bputs Unexecuted instantiation: frr-nexthop.yang.c:bputs Unexecuted instantiation: ietf-routing-types.yang.c:bputs Unexecuted instantiation: ietf-interfaces.yang.c:bputs Unexecuted instantiation: ietf-bgp-types.yang.c:bputs Unexecuted instantiation: frr-module-translator.yang.c:bputs Unexecuted instantiation: connected.c:bputs Unexecuted instantiation: if_netlink.c:bputs Unexecuted instantiation: interface.c:bputs Unexecuted instantiation: ioctl.c:bputs Unexecuted instantiation: ipforward_proc.c:bputs Unexecuted instantiation: kernel_netlink.c:bputs Unexecuted instantiation: label_manager.c:bputs Unexecuted instantiation: main.c:bputs Unexecuted instantiation: netconf_netlink.c:bputs Unexecuted instantiation: redistribute.c:bputs Unexecuted instantiation: router-id.c:bputs Unexecuted instantiation: rt_netlink.c:bputs Unexecuted instantiation: rtadv.c:bputs Unexecuted instantiation: rtread_netlink.c:bputs Unexecuted instantiation: rule_netlink.c:bputs Unexecuted instantiation: table_manager.c:bputs Unexecuted instantiation: tc_netlink.c:bputs Unexecuted instantiation: zapi_msg.c:bputs Unexecuted instantiation: zebra_affinitymap.c:bputs Unexecuted instantiation: zebra_dplane.c:bputs Unexecuted instantiation: zebra_errors.c:bputs Unexecuted instantiation: zebra_gr.c:bputs Unexecuted instantiation: zebra_l2.c:bputs Unexecuted instantiation: zebra_l2_bridge_if.c:bputs Unexecuted instantiation: zebra_evpn.c:bputs Unexecuted instantiation: zebra_evpn_mac.c:bputs Unexecuted instantiation: zebra_evpn_neigh.c:bputs Unexecuted instantiation: zebra_mlag.c:bputs Unexecuted instantiation: zebra_mlag_vty.c:bputs Unexecuted instantiation: zebra_mpls.c:bputs Unexecuted instantiation: zebra_mpls_netlink.c:bputs Unexecuted instantiation: zebra_mpls_null.c:bputs Unexecuted instantiation: zebra_mpls_vty.c:bputs Unexecuted instantiation: zebra_srv6.c:bputs Unexecuted instantiation: zebra_srv6_vty.c:bputs Unexecuted instantiation: zebra_mroute.c:bputs Unexecuted instantiation: zebra_nb.c:bputs Unexecuted instantiation: zebra_nb_config.c:bputs Unexecuted instantiation: zebra_nb_rpcs.c:bputs Unexecuted instantiation: zebra_nb_state.c:bputs Unexecuted instantiation: zebra_netns_id.c:bputs Unexecuted instantiation: zebra_netns_notify.c:bputs Unexecuted instantiation: zebra_nhg.c:bputs Unexecuted instantiation: zebra_ns.c:bputs Unexecuted instantiation: zebra_opaque.c:bputs Unexecuted instantiation: zebra_pbr.c:bputs Unexecuted instantiation: zebra_ptm.c:bputs Unexecuted instantiation: zebra_ptm_redistribute.c:bputs Unexecuted instantiation: zebra_pw.c:bputs Unexecuted instantiation: zebra_rib.c:bputs Unexecuted instantiation: zebra_router.c:bputs Unexecuted instantiation: zebra_rnh.c:bputs Unexecuted instantiation: zebra_routemap.c:bputs Unexecuted instantiation: zebra_routemap_nb.c:bputs Unexecuted instantiation: zebra_routemap_nb_config.c:bputs Unexecuted instantiation: zebra_script.c:bputs Unexecuted instantiation: zebra_srte.c:bputs Unexecuted instantiation: zebra_tc.c:bputs Unexecuted instantiation: zebra_vrf.c:bputs Unexecuted instantiation: zebra_vty.c:bputs Unexecuted instantiation: zebra_vxlan.c:bputs Unexecuted instantiation: zebra_vxlan_if.c:bputs Unexecuted instantiation: zebra_evpn_mh.c:bputs Unexecuted instantiation: zebra_neigh.c:bputs Unexecuted instantiation: zserv.c:bputs Unexecuted instantiation: debug_nl.c:bputs Unexecuted instantiation: frr-zebra.yang.c:bputs Unexecuted instantiation: frr-zebra-route-map.yang.c:bputs Unexecuted instantiation: bgp_main.c:bputs Unexecuted instantiation: frr-bgp-types.yang.c:bputs Unexecuted instantiation: frr-bgp.yang.c:bputs Unexecuted instantiation: frr-bgp-common-structure.yang.c:bputs Unexecuted instantiation: frr-bgp-common.yang.c:bputs Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:bputs Unexecuted instantiation: frr-bgp-neighbor.yang.c:bputs Unexecuted instantiation: frr-bgp-peer-group.yang.c:bputs Unexecuted instantiation: frr-bgp-bmp.yang.c:bputs Unexecuted instantiation: frr-bgp-rpki.yang.c:bputs Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:bputs Unexecuted instantiation: frr-bgp-filter.yang.c:bputs Unexecuted instantiation: frr-bgp-route-map.yang.c:bputs Unexecuted instantiation: bgp_attr.c:bputs Unexecuted instantiation: bgp_attr_evpn.c:bputs Unexecuted instantiation: bgp_clist.c:bputs Unexecuted instantiation: bgp_community.c:bputs Unexecuted instantiation: bgp_community_alias.c:bputs Unexecuted instantiation: bgp_debug.c:bputs Unexecuted instantiation: bgp_dump.c:bputs Unexecuted instantiation: bgp_ecommunity.c:bputs Unexecuted instantiation: bgp_errors.c:bputs Unexecuted instantiation: bgp_evpn.c:bputs Unexecuted instantiation: bgp_evpn_mh.c:bputs Unexecuted instantiation: bgp_evpn_vty.c:bputs Unexecuted instantiation: bgp_filter.c:bputs Unexecuted instantiation: bgp_flowspec_vty.c:bputs Unexecuted instantiation: bgp_fsm.c:bputs Unexecuted instantiation: bgp_io.c:bputs Unexecuted instantiation: bgp_keepalives.c:bputs Unexecuted instantiation: bgp_labelpool.c:bputs Unexecuted instantiation: bgp_lcommunity.c:bputs Unexecuted instantiation: bgp_mac.c:bputs Unexecuted instantiation: bgp_mpath.c:bputs Unexecuted instantiation: bgp_mplsvpn.c:bputs Unexecuted instantiation: bgp_network.c:bputs Unexecuted instantiation: bgp_nexthop.c:bputs Unexecuted instantiation: bgp_nht.c:bputs Unexecuted instantiation: bgp_packet.c:bputs Unexecuted instantiation: bgp_pbr.c:bputs Unexecuted instantiation: bgp_rd.c:bputs Unexecuted instantiation: bgp_regex.c:bputs Unexecuted instantiation: bgp_route.c:bputs Unexecuted instantiation: bgp_routemap.c:bputs Unexecuted instantiation: bgp_routemap_nb.c:bputs Unexecuted instantiation: bgp_routemap_nb_config.c:bputs Unexecuted instantiation: bgp_table.c:bputs Unexecuted instantiation: bgp_updgrp.c:bputs Unexecuted instantiation: bgp_updgrp_adv.c:bputs Unexecuted instantiation: bgp_updgrp_packet.c:bputs Unexecuted instantiation: bgp_vpn.c:bputs Unexecuted instantiation: bgp_vty.c:bputs Unexecuted instantiation: bgp_zebra.c:bputs Unexecuted instantiation: bgpd.c:bputs Unexecuted instantiation: bgp_rfapi_cfg.c:bputs Unexecuted instantiation: rfapi_import.c:bputs Unexecuted instantiation: rfapi.c:bputs Unexecuted instantiation: rfapi_ap.c:bputs Unexecuted instantiation: rfapi_encap_tlv.c:bputs Unexecuted instantiation: rfapi_nve_addr.c:bputs Unexecuted instantiation: rfapi_monitor.c:bputs Unexecuted instantiation: rfapi_rib.c:bputs Unexecuted instantiation: rfapi_vty.c:bputs Unexecuted instantiation: vnc_debug.c:bputs Unexecuted instantiation: vnc_export_bgp.c:bputs Unexecuted instantiation: vnc_export_table.c:bputs Unexecuted instantiation: vnc_import_bgp.c:bputs Unexecuted instantiation: vnc_zebra.c:bputs Unexecuted instantiation: bgp_addpath.c:bputs Unexecuted instantiation: bgp_advertise.c:bputs Unexecuted instantiation: bgp_aspath.c:bputs Unexecuted instantiation: bgp_bfd.c:bputs Unexecuted instantiation: bgp_conditional_adv.c:bputs Unexecuted instantiation: bgp_damp.c:bputs Unexecuted instantiation: bgp_encap_tlv.c:bputs Unexecuted instantiation: bgp_flowspec.c:bputs Unexecuted instantiation: bgp_flowspec_util.c:bputs Unexecuted instantiation: bgp_label.c:bputs Unexecuted instantiation: bgp_open.c:bputs Unexecuted instantiation: rfp_example.c:bputs Unexecuted instantiation: pim_addr.c:bputs Unexecuted instantiation: pim_assert.c:bputs Unexecuted instantiation: pim_bfd.c:bputs Unexecuted instantiation: pim_bsm.c:bputs Unexecuted instantiation: pim_cmd_common.c:bputs Unexecuted instantiation: pim_errors.c:bputs Unexecuted instantiation: pim_hello.c:bputs Unexecuted instantiation: pim_iface.c:bputs Unexecuted instantiation: pim_ifchannel.c:bputs Unexecuted instantiation: pim_instance.c:bputs Unexecuted instantiation: pim_join.c:bputs Unexecuted instantiation: pim_jp_agg.c:bputs Unexecuted instantiation: pim_macro.c:bputs Unexecuted instantiation: pim_mroute.c:bputs Unexecuted instantiation: pim_msg.c:bputs Unexecuted instantiation: pim_nb.c:bputs Unexecuted instantiation: pim_nb_config.c:bputs Unexecuted instantiation: pim_neighbor.c:bputs Unexecuted instantiation: pim_nht.c:bputs Unexecuted instantiation: pim_oil.c:bputs Unexecuted instantiation: pim_pim.c:bputs Unexecuted instantiation: pim_routemap.c:bputs Unexecuted instantiation: pim_rp.c:bputs Unexecuted instantiation: pim_rpf.c:bputs Unexecuted instantiation: pim_sock.c:bputs Unexecuted instantiation: pim_ssm.c:bputs Unexecuted instantiation: pim_ssmpingd.c:bputs Unexecuted instantiation: pim_static.c:bputs Unexecuted instantiation: pim_str.c:bputs Unexecuted instantiation: pim_tib.c:bputs Unexecuted instantiation: pim_time.c:bputs Unexecuted instantiation: pim_tlv.c:bputs Unexecuted instantiation: pim_upstream.c:bputs Unexecuted instantiation: pim_util.c:bputs Unexecuted instantiation: pim_vty.c:bputs Unexecuted instantiation: pim_zebra.c:bputs Unexecuted instantiation: pim_zlookup.c:bputs Unexecuted instantiation: pim_vxlan.c:bputs Unexecuted instantiation: pim_register.c:bputs Unexecuted instantiation: pimd.c:bputs Unexecuted instantiation: pim_cmd.c:bputs Unexecuted instantiation: pim_igmp.c:bputs Unexecuted instantiation: pim_igmp_mtrace.c:bputs Unexecuted instantiation: pim_igmpv2.c:bputs Unexecuted instantiation: pim_igmpv3.c:bputs Unexecuted instantiation: pim_main.c:bputs Unexecuted instantiation: pim_mlag.c:bputs Unexecuted instantiation: pim_msdp.c:bputs Unexecuted instantiation: pim_msdp_packet.c:bputs Unexecuted instantiation: pim_msdp_socket.c:bputs Unexecuted instantiation: pim_signals.c:bputs Unexecuted instantiation: pim_zpthread.c:bputs Unexecuted instantiation: frr-pim.yang.c:bputs Unexecuted instantiation: frr-pim-rp.yang.c:bputs Unexecuted instantiation: frr-gmp.yang.c:bputs |
241 | | |
242 | | static inline ssize_t bputch(struct fbuf *buf, char ch) |
243 | 1.89k | { |
244 | 1.89k | if (buf && buf->pos < buf->buf + buf->len) |
245 | 1.89k | *buf->pos++ = ch; |
246 | 1.89k | return 1; |
247 | 1.89k | } Unexecuted instantiation: ospf_main.c:bputch Unexecuted instantiation: frr-ospf-route-map.yang.c:bputch Unexecuted instantiation: ospf_bfd.c:bputch Unexecuted instantiation: ospf_dump.c:bputch Unexecuted instantiation: ospf_dump_api.c:bputch Unexecuted instantiation: ospf_errors.c:bputch Unexecuted instantiation: ospf_interface.c:bputch Unexecuted instantiation: ospf_lsa.c:bputch Unexecuted instantiation: ospf_lsdb.c:bputch Unexecuted instantiation: ospf_neighbor.c:bputch Unexecuted instantiation: ospf_network.c:bputch Unexecuted instantiation: ospf_nsm.c:bputch Unexecuted instantiation: ospf_opaque.c:bputch Unexecuted instantiation: ospf_packet.c:bputch Unexecuted instantiation: ospf_ri.c:bputch Unexecuted instantiation: ospf_routemap.c:bputch Unexecuted instantiation: ospf_routemap_nb.c:bputch Unexecuted instantiation: ospf_routemap_nb_config.c:bputch Unexecuted instantiation: ospf_spf.c:bputch Unexecuted instantiation: ospf_ti_lfa.c:bputch Unexecuted instantiation: ospf_sr.c:bputch Unexecuted instantiation: ospf_te.c:bputch Unexecuted instantiation: ospf_vty.c:bputch Unexecuted instantiation: ospf_zebra.c:bputch Unexecuted instantiation: ospfd.c:bputch Unexecuted instantiation: ospf_gr_helper.c:bputch Unexecuted instantiation: ospf_abr.c:bputch Unexecuted instantiation: ospf_apiserver.c:bputch Unexecuted instantiation: ospf_asbr.c:bputch Unexecuted instantiation: ospf_ase.c:bputch Unexecuted instantiation: ospf_ext.c:bputch Unexecuted instantiation: ospf_flood.c:bputch Unexecuted instantiation: ospf_gr.c:bputch Unexecuted instantiation: ospf_ia.c:bputch Unexecuted instantiation: ospf_ism.c:bputch Unexecuted instantiation: ospf_ldp_sync.c:bputch Unexecuted instantiation: ospf_route.c:bputch Unexecuted instantiation: ospf_api.c:bputch Unexecuted instantiation: affinitymap.c:bputch Unexecuted instantiation: affinitymap_cli.c:bputch Unexecuted instantiation: affinitymap_northbound.c:bputch Unexecuted instantiation: agg_table.c:bputch Unexecuted instantiation: asn.c:bputch Unexecuted instantiation: bfd.c:bputch Unexecuted instantiation: buffer.c:bputch Unexecuted instantiation: command.c:bputch Unexecuted instantiation: command_graph.c:bputch Unexecuted instantiation: command_lex.c:bputch Unexecuted instantiation: command_match.c:bputch Unexecuted instantiation: command_parse.c:bputch Unexecuted instantiation: cspf.c:bputch Unexecuted instantiation: debug.c:bputch Unexecuted instantiation: distribute.c:bputch Unexecuted instantiation: ferr.c:bputch Unexecuted instantiation: filter.c:bputch Unexecuted instantiation: filter_cli.c:bputch Unexecuted instantiation: filter_nb.c:bputch Unexecuted instantiation: flex_algo.c:bputch Unexecuted instantiation: frr_pthread.c:bputch Unexecuted instantiation: grammar_sandbox.c:bputch Unexecuted instantiation: hash.c:bputch Unexecuted instantiation: id_alloc.c:bputch Unexecuted instantiation: if.c:bputch Unexecuted instantiation: if_rmap.c:bputch Unexecuted instantiation: iso.c:bputch Unexecuted instantiation: json.c:bputch Unexecuted instantiation: keychain.c:bputch Unexecuted instantiation: ldp_sync.c:bputch Unexecuted instantiation: lib_errors.c:bputch Unexecuted instantiation: lib_vty.c:bputch Unexecuted instantiation: libfrr.c:bputch Unexecuted instantiation: link_state.c:bputch Unexecuted instantiation: log.c:bputch Unexecuted instantiation: log_filter.c:bputch Unexecuted instantiation: log_vty.c:bputch Unexecuted instantiation: memory.c:bputch Unexecuted instantiation: mgmt_be_client.c:bputch Unexecuted instantiation: mgmt_fe_client.c:bputch Unexecuted instantiation: mgmt_msg.c:bputch Unexecuted instantiation: mlag.c:bputch Unexecuted instantiation: module.c:bputch Unexecuted instantiation: srv6.c:bputch Unexecuted instantiation: network.c:bputch Unexecuted instantiation: nexthop.c:bputch Unexecuted instantiation: netns_linux.c:bputch Unexecuted instantiation: nexthop_group.c:bputch Unexecuted instantiation: northbound.c:bputch Unexecuted instantiation: northbound_cli.c:bputch Unexecuted instantiation: northbound_db.c:bputch Unexecuted instantiation: pid_output.c:bputch Unexecuted instantiation: plist.c:bputch Unexecuted instantiation: prefix.c:bputch Unexecuted instantiation: privs.c:bputch Unexecuted instantiation: pullwr.c:bputch Unexecuted instantiation: qobj.c:bputch Unexecuted instantiation: routemap.c:bputch Unexecuted instantiation: routemap_cli.c:bputch Unexecuted instantiation: routemap_northbound.c:bputch Unexecuted instantiation: sbuf.c:bputch Unexecuted instantiation: sigevent.c:bputch Unexecuted instantiation: skiplist.c:bputch Unexecuted instantiation: sockopt.c:bputch Unexecuted instantiation: sockunion.c:bputch Unexecuted instantiation: spf_backoff.c:bputch Unexecuted instantiation: srcdest_table.c:bputch Unexecuted instantiation: stream.c:bputch Unexecuted instantiation: strformat.c:bputch Unexecuted instantiation: systemd.c:bputch Unexecuted instantiation: table.c:bputch Unexecuted instantiation: termtable.c:bputch Unexecuted instantiation: event.c:bputch Unexecuted instantiation: vrf.c:bputch Unexecuted instantiation: vty.c:bputch Unexecuted instantiation: wheel.c:bputch Unexecuted instantiation: workqueue.c:bputch Unexecuted instantiation: xref.c:bputch Unexecuted instantiation: yang.c:bputch Unexecuted instantiation: yang_translator.c:bputch Unexecuted instantiation: yang_wrappers.c:bputch Unexecuted instantiation: zclient.c:bputch Line | Count | Source | 243 | 1.47k | { | 244 | 1.47k | if (buf && buf->pos < buf->buf + buf->len) | 245 | 1.47k | *buf->pos++ = ch; | 246 | 1.47k | return 1; | 247 | 1.47k | } |
Unexecuted instantiation: zlog_5424.c:bputch Unexecuted instantiation: zlog_5424_cli.c:bputch Unexecuted instantiation: zlog_live.c:bputch Unexecuted instantiation: zlog_targets.c:bputch Unexecuted instantiation: printf-pos.c:bputch Unexecuted instantiation: vfprintf.c:bputch Unexecuted instantiation: glue.c:bputch Unexecuted instantiation: routing_nb.c:bputch Unexecuted instantiation: routing_nb_config.c:bputch Unexecuted instantiation: tc.c:bputch Unexecuted instantiation: frr-affinity-map.yang.c:bputch Unexecuted instantiation: frr-filter.yang.c:bputch Unexecuted instantiation: frr-if-rmap.yang.c:bputch Unexecuted instantiation: frr-interface.yang.c:bputch Unexecuted instantiation: frr-route-map.yang.c:bputch Unexecuted instantiation: frr-route-types.yang.c:bputch Unexecuted instantiation: frr-vrf.yang.c:bputch Unexecuted instantiation: frr-routing.yang.c:bputch Unexecuted instantiation: frr-nexthop.yang.c:bputch Unexecuted instantiation: ietf-routing-types.yang.c:bputch Unexecuted instantiation: ietf-interfaces.yang.c:bputch Unexecuted instantiation: ietf-bgp-types.yang.c:bputch Unexecuted instantiation: frr-module-translator.yang.c:bputch Unexecuted instantiation: connected.c:bputch Unexecuted instantiation: if_netlink.c:bputch Unexecuted instantiation: interface.c:bputch Unexecuted instantiation: ioctl.c:bputch Unexecuted instantiation: ipforward_proc.c:bputch Unexecuted instantiation: kernel_netlink.c:bputch Unexecuted instantiation: label_manager.c:bputch Unexecuted instantiation: main.c:bputch Unexecuted instantiation: netconf_netlink.c:bputch Unexecuted instantiation: redistribute.c:bputch Unexecuted instantiation: router-id.c:bputch Unexecuted instantiation: rt_netlink.c:bputch Unexecuted instantiation: rtadv.c:bputch Unexecuted instantiation: rtread_netlink.c:bputch Unexecuted instantiation: rule_netlink.c:bputch Unexecuted instantiation: table_manager.c:bputch Unexecuted instantiation: tc_netlink.c:bputch Unexecuted instantiation: zapi_msg.c:bputch Unexecuted instantiation: zebra_affinitymap.c:bputch Unexecuted instantiation: zebra_dplane.c:bputch Unexecuted instantiation: zebra_errors.c:bputch Unexecuted instantiation: zebra_gr.c:bputch Unexecuted instantiation: zebra_l2.c:bputch Unexecuted instantiation: zebra_l2_bridge_if.c:bputch Unexecuted instantiation: zebra_evpn.c:bputch Unexecuted instantiation: zebra_evpn_mac.c:bputch Unexecuted instantiation: zebra_evpn_neigh.c:bputch Unexecuted instantiation: zebra_mlag.c:bputch Unexecuted instantiation: zebra_mlag_vty.c:bputch Unexecuted instantiation: zebra_mpls.c:bputch Unexecuted instantiation: zebra_mpls_netlink.c:bputch Unexecuted instantiation: zebra_mpls_null.c:bputch Unexecuted instantiation: zebra_mpls_vty.c:bputch Unexecuted instantiation: zebra_srv6.c:bputch Unexecuted instantiation: zebra_srv6_vty.c:bputch Unexecuted instantiation: zebra_mroute.c:bputch Unexecuted instantiation: zebra_nb.c:bputch Unexecuted instantiation: zebra_nb_config.c:bputch Unexecuted instantiation: zebra_nb_rpcs.c:bputch Unexecuted instantiation: zebra_nb_state.c:bputch Unexecuted instantiation: zebra_netns_id.c:bputch Unexecuted instantiation: zebra_netns_notify.c:bputch Unexecuted instantiation: zebra_nhg.c:bputch Unexecuted instantiation: zebra_ns.c:bputch Unexecuted instantiation: zebra_opaque.c:bputch Unexecuted instantiation: zebra_pbr.c:bputch Unexecuted instantiation: zebra_ptm.c:bputch Unexecuted instantiation: zebra_ptm_redistribute.c:bputch Unexecuted instantiation: zebra_pw.c:bputch Unexecuted instantiation: zebra_rib.c:bputch Unexecuted instantiation: zebra_router.c:bputch Unexecuted instantiation: zebra_rnh.c:bputch Unexecuted instantiation: zebra_routemap.c:bputch Unexecuted instantiation: zebra_routemap_nb.c:bputch Unexecuted instantiation: zebra_routemap_nb_config.c:bputch Unexecuted instantiation: zebra_script.c:bputch Unexecuted instantiation: zebra_srte.c:bputch Unexecuted instantiation: zebra_tc.c:bputch Unexecuted instantiation: zebra_vrf.c:bputch Unexecuted instantiation: zebra_vty.c:bputch Unexecuted instantiation: zebra_vxlan.c:bputch Unexecuted instantiation: zebra_vxlan_if.c:bputch Unexecuted instantiation: zebra_evpn_mh.c:bputch Unexecuted instantiation: zebra_neigh.c:bputch Unexecuted instantiation: zserv.c:bputch Unexecuted instantiation: debug_nl.c:bputch Unexecuted instantiation: frr-zebra.yang.c:bputch Unexecuted instantiation: frr-zebra-route-map.yang.c:bputch Unexecuted instantiation: bgp_main.c:bputch Unexecuted instantiation: frr-bgp-types.yang.c:bputch Unexecuted instantiation: frr-bgp.yang.c:bputch Unexecuted instantiation: frr-bgp-common-structure.yang.c:bputch Unexecuted instantiation: frr-bgp-common.yang.c:bputch Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:bputch Unexecuted instantiation: frr-bgp-neighbor.yang.c:bputch Unexecuted instantiation: frr-bgp-peer-group.yang.c:bputch Unexecuted instantiation: frr-bgp-bmp.yang.c:bputch Unexecuted instantiation: frr-bgp-rpki.yang.c:bputch Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:bputch Unexecuted instantiation: frr-bgp-filter.yang.c:bputch Unexecuted instantiation: frr-bgp-route-map.yang.c:bputch Unexecuted instantiation: bgp_attr.c:bputch Unexecuted instantiation: bgp_attr_evpn.c:bputch Unexecuted instantiation: bgp_clist.c:bputch Unexecuted instantiation: bgp_community.c:bputch Unexecuted instantiation: bgp_community_alias.c:bputch Unexecuted instantiation: bgp_debug.c:bputch Unexecuted instantiation: bgp_dump.c:bputch Unexecuted instantiation: bgp_ecommunity.c:bputch Unexecuted instantiation: bgp_errors.c:bputch Unexecuted instantiation: bgp_evpn.c:bputch Unexecuted instantiation: bgp_evpn_mh.c:bputch Unexecuted instantiation: bgp_evpn_vty.c:bputch Unexecuted instantiation: bgp_filter.c:bputch Unexecuted instantiation: bgp_flowspec_vty.c:bputch Unexecuted instantiation: bgp_fsm.c:bputch Unexecuted instantiation: bgp_io.c:bputch Unexecuted instantiation: bgp_keepalives.c:bputch Unexecuted instantiation: bgp_labelpool.c:bputch Unexecuted instantiation: bgp_lcommunity.c:bputch Unexecuted instantiation: bgp_mac.c:bputch Unexecuted instantiation: bgp_mpath.c:bputch Unexecuted instantiation: bgp_mplsvpn.c:bputch Unexecuted instantiation: bgp_network.c:bputch Unexecuted instantiation: bgp_nexthop.c:bputch Unexecuted instantiation: bgp_nht.c:bputch Unexecuted instantiation: bgp_packet.c:bputch Unexecuted instantiation: bgp_pbr.c:bputch Unexecuted instantiation: bgp_rd.c:bputch Unexecuted instantiation: bgp_regex.c:bputch Unexecuted instantiation: bgp_route.c:bputch Unexecuted instantiation: bgp_routemap.c:bputch Unexecuted instantiation: bgp_routemap_nb.c:bputch Unexecuted instantiation: bgp_routemap_nb_config.c:bputch Unexecuted instantiation: bgp_table.c:bputch Unexecuted instantiation: bgp_updgrp.c:bputch Unexecuted instantiation: bgp_updgrp_adv.c:bputch Unexecuted instantiation: bgp_updgrp_packet.c:bputch Unexecuted instantiation: bgp_vpn.c:bputch Unexecuted instantiation: bgp_vty.c:bputch Unexecuted instantiation: bgp_zebra.c:bputch Unexecuted instantiation: bgpd.c:bputch Unexecuted instantiation: bgp_rfapi_cfg.c:bputch Unexecuted instantiation: rfapi_import.c:bputch Unexecuted instantiation: rfapi.c:bputch Unexecuted instantiation: rfapi_ap.c:bputch Unexecuted instantiation: rfapi_encap_tlv.c:bputch Unexecuted instantiation: rfapi_nve_addr.c:bputch Unexecuted instantiation: rfapi_monitor.c:bputch Unexecuted instantiation: rfapi_rib.c:bputch Unexecuted instantiation: rfapi_vty.c:bputch Unexecuted instantiation: vnc_debug.c:bputch Unexecuted instantiation: vnc_export_bgp.c:bputch Unexecuted instantiation: vnc_export_table.c:bputch Unexecuted instantiation: vnc_import_bgp.c:bputch Unexecuted instantiation: vnc_zebra.c:bputch Unexecuted instantiation: bgp_addpath.c:bputch Unexecuted instantiation: bgp_advertise.c:bputch Unexecuted instantiation: bgp_aspath.c:bputch Unexecuted instantiation: bgp_bfd.c:bputch Unexecuted instantiation: bgp_conditional_adv.c:bputch Unexecuted instantiation: bgp_damp.c:bputch Unexecuted instantiation: bgp_encap_tlv.c:bputch Unexecuted instantiation: bgp_flowspec.c:bputch Unexecuted instantiation: bgp_flowspec_util.c:bputch Unexecuted instantiation: bgp_label.c:bputch Unexecuted instantiation: bgp_open.c:bputch Unexecuted instantiation: rfp_example.c:bputch Line | Count | Source | 243 | 424 | { | 244 | 424 | if (buf && buf->pos < buf->buf + buf->len) | 245 | 424 | *buf->pos++ = ch; | 246 | 424 | return 1; | 247 | 424 | } |
Unexecuted instantiation: pim_assert.c:bputch Unexecuted instantiation: pim_bfd.c:bputch Unexecuted instantiation: pim_bsm.c:bputch Unexecuted instantiation: pim_cmd_common.c:bputch Unexecuted instantiation: pim_errors.c:bputch Unexecuted instantiation: pim_hello.c:bputch Unexecuted instantiation: pim_iface.c:bputch Unexecuted instantiation: pim_ifchannel.c:bputch Unexecuted instantiation: pim_instance.c:bputch Unexecuted instantiation: pim_join.c:bputch Unexecuted instantiation: pim_jp_agg.c:bputch Unexecuted instantiation: pim_macro.c:bputch Unexecuted instantiation: pim_mroute.c:bputch Unexecuted instantiation: pim_msg.c:bputch Unexecuted instantiation: pim_nb.c:bputch Unexecuted instantiation: pim_nb_config.c:bputch Unexecuted instantiation: pim_neighbor.c:bputch Unexecuted instantiation: pim_nht.c:bputch Unexecuted instantiation: pim_oil.c:bputch Unexecuted instantiation: pim_pim.c:bputch Unexecuted instantiation: pim_routemap.c:bputch Unexecuted instantiation: pim_rp.c:bputch Unexecuted instantiation: pim_rpf.c:bputch Unexecuted instantiation: pim_sock.c:bputch Unexecuted instantiation: pim_ssm.c:bputch Unexecuted instantiation: pim_ssmpingd.c:bputch Unexecuted instantiation: pim_static.c:bputch Unexecuted instantiation: pim_str.c:bputch Unexecuted instantiation: pim_tib.c:bputch Unexecuted instantiation: pim_time.c:bputch Unexecuted instantiation: pim_tlv.c:bputch Unexecuted instantiation: pim_upstream.c:bputch Unexecuted instantiation: pim_util.c:bputch Unexecuted instantiation: pim_vty.c:bputch Unexecuted instantiation: pim_zebra.c:bputch Unexecuted instantiation: pim_zlookup.c:bputch Unexecuted instantiation: pim_vxlan.c:bputch Unexecuted instantiation: pim_register.c:bputch Unexecuted instantiation: pimd.c:bputch Unexecuted instantiation: pim_cmd.c:bputch Unexecuted instantiation: pim_igmp.c:bputch Unexecuted instantiation: pim_igmp_mtrace.c:bputch Unexecuted instantiation: pim_igmpv2.c:bputch Unexecuted instantiation: pim_igmpv3.c:bputch Unexecuted instantiation: pim_main.c:bputch Unexecuted instantiation: pim_mlag.c:bputch Unexecuted instantiation: pim_msdp.c:bputch Unexecuted instantiation: pim_msdp_packet.c:bputch Unexecuted instantiation: pim_msdp_socket.c:bputch Unexecuted instantiation: pim_signals.c:bputch Unexecuted instantiation: pim_zpthread.c:bputch Unexecuted instantiation: frr-pim.yang.c:bputch Unexecuted instantiation: frr-pim-rp.yang.c:bputch Unexecuted instantiation: frr-gmp.yang.c:bputch |
248 | | |
249 | | static inline ssize_t bputhex(struct fbuf *buf, uint8_t val) |
250 | 0 | { |
251 | 0 | static const char hexch[] = "0123456789abcdef"; |
252 | |
|
253 | 0 | if (buf && buf->pos < buf->buf + buf->len) |
254 | 0 | *buf->pos++ = hexch[(val >> 4) & 0xf]; |
255 | 0 | if (buf && buf->pos < buf->buf + buf->len) |
256 | 0 | *buf->pos++ = hexch[val & 0xf]; |
257 | 0 | return 2; |
258 | 0 | } Unexecuted instantiation: ospf_main.c:bputhex Unexecuted instantiation: frr-ospf-route-map.yang.c:bputhex Unexecuted instantiation: ospf_bfd.c:bputhex Unexecuted instantiation: ospf_dump.c:bputhex Unexecuted instantiation: ospf_dump_api.c:bputhex Unexecuted instantiation: ospf_errors.c:bputhex Unexecuted instantiation: ospf_interface.c:bputhex Unexecuted instantiation: ospf_lsa.c:bputhex Unexecuted instantiation: ospf_lsdb.c:bputhex Unexecuted instantiation: ospf_neighbor.c:bputhex Unexecuted instantiation: ospf_network.c:bputhex Unexecuted instantiation: ospf_nsm.c:bputhex Unexecuted instantiation: ospf_opaque.c:bputhex Unexecuted instantiation: ospf_packet.c:bputhex Unexecuted instantiation: ospf_ri.c:bputhex Unexecuted instantiation: ospf_routemap.c:bputhex Unexecuted instantiation: ospf_routemap_nb.c:bputhex Unexecuted instantiation: ospf_routemap_nb_config.c:bputhex Unexecuted instantiation: ospf_spf.c:bputhex Unexecuted instantiation: ospf_ti_lfa.c:bputhex Unexecuted instantiation: ospf_sr.c:bputhex Unexecuted instantiation: ospf_te.c:bputhex Unexecuted instantiation: ospf_vty.c:bputhex Unexecuted instantiation: ospf_zebra.c:bputhex Unexecuted instantiation: ospfd.c:bputhex Unexecuted instantiation: ospf_gr_helper.c:bputhex Unexecuted instantiation: ospf_abr.c:bputhex Unexecuted instantiation: ospf_apiserver.c:bputhex Unexecuted instantiation: ospf_asbr.c:bputhex Unexecuted instantiation: ospf_ase.c:bputhex Unexecuted instantiation: ospf_ext.c:bputhex Unexecuted instantiation: ospf_flood.c:bputhex Unexecuted instantiation: ospf_gr.c:bputhex Unexecuted instantiation: ospf_ia.c:bputhex Unexecuted instantiation: ospf_ism.c:bputhex Unexecuted instantiation: ospf_ldp_sync.c:bputhex Unexecuted instantiation: ospf_route.c:bputhex Unexecuted instantiation: ospf_api.c:bputhex Unexecuted instantiation: affinitymap.c:bputhex Unexecuted instantiation: affinitymap_cli.c:bputhex Unexecuted instantiation: affinitymap_northbound.c:bputhex Unexecuted instantiation: agg_table.c:bputhex Unexecuted instantiation: asn.c:bputhex Unexecuted instantiation: bfd.c:bputhex Unexecuted instantiation: buffer.c:bputhex Unexecuted instantiation: command.c:bputhex Unexecuted instantiation: command_graph.c:bputhex Unexecuted instantiation: command_lex.c:bputhex Unexecuted instantiation: command_match.c:bputhex Unexecuted instantiation: command_parse.c:bputhex Unexecuted instantiation: cspf.c:bputhex Unexecuted instantiation: debug.c:bputhex Unexecuted instantiation: distribute.c:bputhex Unexecuted instantiation: ferr.c:bputhex Unexecuted instantiation: filter.c:bputhex Unexecuted instantiation: filter_cli.c:bputhex Unexecuted instantiation: filter_nb.c:bputhex Unexecuted instantiation: flex_algo.c:bputhex Unexecuted instantiation: frr_pthread.c:bputhex Unexecuted instantiation: grammar_sandbox.c:bputhex Unexecuted instantiation: hash.c:bputhex Unexecuted instantiation: id_alloc.c:bputhex Unexecuted instantiation: if.c:bputhex Unexecuted instantiation: if_rmap.c:bputhex Unexecuted instantiation: iso.c:bputhex Unexecuted instantiation: json.c:bputhex Unexecuted instantiation: keychain.c:bputhex Unexecuted instantiation: ldp_sync.c:bputhex Unexecuted instantiation: lib_errors.c:bputhex Unexecuted instantiation: lib_vty.c:bputhex Unexecuted instantiation: libfrr.c:bputhex Unexecuted instantiation: link_state.c:bputhex Unexecuted instantiation: log.c:bputhex Unexecuted instantiation: log_filter.c:bputhex Unexecuted instantiation: log_vty.c:bputhex Unexecuted instantiation: memory.c:bputhex Unexecuted instantiation: mgmt_be_client.c:bputhex Unexecuted instantiation: mgmt_fe_client.c:bputhex Unexecuted instantiation: mgmt_msg.c:bputhex Unexecuted instantiation: mlag.c:bputhex Unexecuted instantiation: module.c:bputhex Unexecuted instantiation: srv6.c:bputhex Unexecuted instantiation: network.c:bputhex Unexecuted instantiation: nexthop.c:bputhex Unexecuted instantiation: netns_linux.c:bputhex Unexecuted instantiation: nexthop_group.c:bputhex Unexecuted instantiation: northbound.c:bputhex Unexecuted instantiation: northbound_cli.c:bputhex Unexecuted instantiation: northbound_db.c:bputhex Unexecuted instantiation: pid_output.c:bputhex Unexecuted instantiation: plist.c:bputhex Unexecuted instantiation: prefix.c:bputhex Unexecuted instantiation: privs.c:bputhex Unexecuted instantiation: pullwr.c:bputhex Unexecuted instantiation: qobj.c:bputhex Unexecuted instantiation: routemap.c:bputhex Unexecuted instantiation: routemap_cli.c:bputhex Unexecuted instantiation: routemap_northbound.c:bputhex Unexecuted instantiation: sbuf.c:bputhex Unexecuted instantiation: sigevent.c:bputhex Unexecuted instantiation: skiplist.c:bputhex Unexecuted instantiation: sockopt.c:bputhex Unexecuted instantiation: sockunion.c:bputhex Unexecuted instantiation: spf_backoff.c:bputhex Unexecuted instantiation: srcdest_table.c:bputhex Unexecuted instantiation: stream.c:bputhex Unexecuted instantiation: strformat.c:bputhex Unexecuted instantiation: systemd.c:bputhex Unexecuted instantiation: table.c:bputhex Unexecuted instantiation: termtable.c:bputhex Unexecuted instantiation: event.c:bputhex Unexecuted instantiation: vrf.c:bputhex Unexecuted instantiation: vty.c:bputhex Unexecuted instantiation: wheel.c:bputhex Unexecuted instantiation: workqueue.c:bputhex Unexecuted instantiation: xref.c:bputhex Unexecuted instantiation: yang.c:bputhex Unexecuted instantiation: yang_translator.c:bputhex Unexecuted instantiation: yang_wrappers.c:bputhex Unexecuted instantiation: zclient.c:bputhex Unexecuted instantiation: zlog.c:bputhex Unexecuted instantiation: zlog_5424.c:bputhex Unexecuted instantiation: zlog_5424_cli.c:bputhex Unexecuted instantiation: zlog_live.c:bputhex Unexecuted instantiation: zlog_targets.c:bputhex Unexecuted instantiation: printf-pos.c:bputhex Unexecuted instantiation: vfprintf.c:bputhex Unexecuted instantiation: glue.c:bputhex Unexecuted instantiation: routing_nb.c:bputhex Unexecuted instantiation: routing_nb_config.c:bputhex Unexecuted instantiation: tc.c:bputhex Unexecuted instantiation: frr-affinity-map.yang.c:bputhex Unexecuted instantiation: frr-filter.yang.c:bputhex Unexecuted instantiation: frr-if-rmap.yang.c:bputhex Unexecuted instantiation: frr-interface.yang.c:bputhex Unexecuted instantiation: frr-route-map.yang.c:bputhex Unexecuted instantiation: frr-route-types.yang.c:bputhex Unexecuted instantiation: frr-vrf.yang.c:bputhex Unexecuted instantiation: frr-routing.yang.c:bputhex Unexecuted instantiation: frr-nexthop.yang.c:bputhex Unexecuted instantiation: ietf-routing-types.yang.c:bputhex Unexecuted instantiation: ietf-interfaces.yang.c:bputhex Unexecuted instantiation: ietf-bgp-types.yang.c:bputhex Unexecuted instantiation: frr-module-translator.yang.c:bputhex Unexecuted instantiation: connected.c:bputhex Unexecuted instantiation: if_netlink.c:bputhex Unexecuted instantiation: interface.c:bputhex Unexecuted instantiation: ioctl.c:bputhex Unexecuted instantiation: ipforward_proc.c:bputhex Unexecuted instantiation: kernel_netlink.c:bputhex Unexecuted instantiation: label_manager.c:bputhex Unexecuted instantiation: main.c:bputhex Unexecuted instantiation: netconf_netlink.c:bputhex Unexecuted instantiation: redistribute.c:bputhex Unexecuted instantiation: router-id.c:bputhex Unexecuted instantiation: rt_netlink.c:bputhex Unexecuted instantiation: rtadv.c:bputhex Unexecuted instantiation: rtread_netlink.c:bputhex Unexecuted instantiation: rule_netlink.c:bputhex Unexecuted instantiation: table_manager.c:bputhex Unexecuted instantiation: tc_netlink.c:bputhex Unexecuted instantiation: zapi_msg.c:bputhex Unexecuted instantiation: zebra_affinitymap.c:bputhex Unexecuted instantiation: zebra_dplane.c:bputhex Unexecuted instantiation: zebra_errors.c:bputhex Unexecuted instantiation: zebra_gr.c:bputhex Unexecuted instantiation: zebra_l2.c:bputhex Unexecuted instantiation: zebra_l2_bridge_if.c:bputhex Unexecuted instantiation: zebra_evpn.c:bputhex Unexecuted instantiation: zebra_evpn_mac.c:bputhex Unexecuted instantiation: zebra_evpn_neigh.c:bputhex Unexecuted instantiation: zebra_mlag.c:bputhex Unexecuted instantiation: zebra_mlag_vty.c:bputhex Unexecuted instantiation: zebra_mpls.c:bputhex Unexecuted instantiation: zebra_mpls_netlink.c:bputhex Unexecuted instantiation: zebra_mpls_null.c:bputhex Unexecuted instantiation: zebra_mpls_vty.c:bputhex Unexecuted instantiation: zebra_srv6.c:bputhex Unexecuted instantiation: zebra_srv6_vty.c:bputhex Unexecuted instantiation: zebra_mroute.c:bputhex Unexecuted instantiation: zebra_nb.c:bputhex Unexecuted instantiation: zebra_nb_config.c:bputhex Unexecuted instantiation: zebra_nb_rpcs.c:bputhex Unexecuted instantiation: zebra_nb_state.c:bputhex Unexecuted instantiation: zebra_netns_id.c:bputhex Unexecuted instantiation: zebra_netns_notify.c:bputhex Unexecuted instantiation: zebra_nhg.c:bputhex Unexecuted instantiation: zebra_ns.c:bputhex Unexecuted instantiation: zebra_opaque.c:bputhex Unexecuted instantiation: zebra_pbr.c:bputhex Unexecuted instantiation: zebra_ptm.c:bputhex Unexecuted instantiation: zebra_ptm_redistribute.c:bputhex Unexecuted instantiation: zebra_pw.c:bputhex Unexecuted instantiation: zebra_rib.c:bputhex Unexecuted instantiation: zebra_router.c:bputhex Unexecuted instantiation: zebra_rnh.c:bputhex Unexecuted instantiation: zebra_routemap.c:bputhex Unexecuted instantiation: zebra_routemap_nb.c:bputhex Unexecuted instantiation: zebra_routemap_nb_config.c:bputhex Unexecuted instantiation: zebra_script.c:bputhex Unexecuted instantiation: zebra_srte.c:bputhex Unexecuted instantiation: zebra_tc.c:bputhex Unexecuted instantiation: zebra_vrf.c:bputhex Unexecuted instantiation: zebra_vty.c:bputhex Unexecuted instantiation: zebra_vxlan.c:bputhex Unexecuted instantiation: zebra_vxlan_if.c:bputhex Unexecuted instantiation: zebra_evpn_mh.c:bputhex Unexecuted instantiation: zebra_neigh.c:bputhex Unexecuted instantiation: zserv.c:bputhex Unexecuted instantiation: debug_nl.c:bputhex Unexecuted instantiation: frr-zebra.yang.c:bputhex Unexecuted instantiation: frr-zebra-route-map.yang.c:bputhex Unexecuted instantiation: bgp_main.c:bputhex Unexecuted instantiation: frr-bgp-types.yang.c:bputhex Unexecuted instantiation: frr-bgp.yang.c:bputhex Unexecuted instantiation: frr-bgp-common-structure.yang.c:bputhex Unexecuted instantiation: frr-bgp-common.yang.c:bputhex Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:bputhex Unexecuted instantiation: frr-bgp-neighbor.yang.c:bputhex Unexecuted instantiation: frr-bgp-peer-group.yang.c:bputhex Unexecuted instantiation: frr-bgp-bmp.yang.c:bputhex Unexecuted instantiation: frr-bgp-rpki.yang.c:bputhex Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:bputhex Unexecuted instantiation: frr-bgp-filter.yang.c:bputhex Unexecuted instantiation: frr-bgp-route-map.yang.c:bputhex Unexecuted instantiation: bgp_attr.c:bputhex Unexecuted instantiation: bgp_attr_evpn.c:bputhex Unexecuted instantiation: bgp_clist.c:bputhex Unexecuted instantiation: bgp_community.c:bputhex Unexecuted instantiation: bgp_community_alias.c:bputhex Unexecuted instantiation: bgp_debug.c:bputhex Unexecuted instantiation: bgp_dump.c:bputhex Unexecuted instantiation: bgp_ecommunity.c:bputhex Unexecuted instantiation: bgp_errors.c:bputhex Unexecuted instantiation: bgp_evpn.c:bputhex Unexecuted instantiation: bgp_evpn_mh.c:bputhex Unexecuted instantiation: bgp_evpn_vty.c:bputhex Unexecuted instantiation: bgp_filter.c:bputhex Unexecuted instantiation: bgp_flowspec_vty.c:bputhex Unexecuted instantiation: bgp_fsm.c:bputhex Unexecuted instantiation: bgp_io.c:bputhex Unexecuted instantiation: bgp_keepalives.c:bputhex Unexecuted instantiation: bgp_labelpool.c:bputhex Unexecuted instantiation: bgp_lcommunity.c:bputhex Unexecuted instantiation: bgp_mac.c:bputhex Unexecuted instantiation: bgp_mpath.c:bputhex Unexecuted instantiation: bgp_mplsvpn.c:bputhex Unexecuted instantiation: bgp_network.c:bputhex Unexecuted instantiation: bgp_nexthop.c:bputhex Unexecuted instantiation: bgp_nht.c:bputhex Unexecuted instantiation: bgp_packet.c:bputhex Unexecuted instantiation: bgp_pbr.c:bputhex Unexecuted instantiation: bgp_rd.c:bputhex Unexecuted instantiation: bgp_regex.c:bputhex Unexecuted instantiation: bgp_route.c:bputhex Unexecuted instantiation: bgp_routemap.c:bputhex Unexecuted instantiation: bgp_routemap_nb.c:bputhex Unexecuted instantiation: bgp_routemap_nb_config.c:bputhex Unexecuted instantiation: bgp_table.c:bputhex Unexecuted instantiation: bgp_updgrp.c:bputhex Unexecuted instantiation: bgp_updgrp_adv.c:bputhex Unexecuted instantiation: bgp_updgrp_packet.c:bputhex Unexecuted instantiation: bgp_vpn.c:bputhex Unexecuted instantiation: bgp_vty.c:bputhex Unexecuted instantiation: bgp_zebra.c:bputhex Unexecuted instantiation: bgpd.c:bputhex Unexecuted instantiation: bgp_rfapi_cfg.c:bputhex Unexecuted instantiation: rfapi_import.c:bputhex Unexecuted instantiation: rfapi.c:bputhex Unexecuted instantiation: rfapi_ap.c:bputhex Unexecuted instantiation: rfapi_encap_tlv.c:bputhex Unexecuted instantiation: rfapi_nve_addr.c:bputhex Unexecuted instantiation: rfapi_monitor.c:bputhex Unexecuted instantiation: rfapi_rib.c:bputhex Unexecuted instantiation: rfapi_vty.c:bputhex Unexecuted instantiation: vnc_debug.c:bputhex Unexecuted instantiation: vnc_export_bgp.c:bputhex Unexecuted instantiation: vnc_export_table.c:bputhex Unexecuted instantiation: vnc_import_bgp.c:bputhex Unexecuted instantiation: vnc_zebra.c:bputhex Unexecuted instantiation: bgp_addpath.c:bputhex Unexecuted instantiation: bgp_advertise.c:bputhex Unexecuted instantiation: bgp_aspath.c:bputhex Unexecuted instantiation: bgp_bfd.c:bputhex Unexecuted instantiation: bgp_conditional_adv.c:bputhex Unexecuted instantiation: bgp_damp.c:bputhex Unexecuted instantiation: bgp_encap_tlv.c:bputhex Unexecuted instantiation: bgp_flowspec.c:bputhex Unexecuted instantiation: bgp_flowspec_util.c:bputhex Unexecuted instantiation: bgp_label.c:bputhex Unexecuted instantiation: bgp_open.c:bputhex Unexecuted instantiation: rfp_example.c:bputhex Unexecuted instantiation: pim_addr.c:bputhex Unexecuted instantiation: pim_assert.c:bputhex Unexecuted instantiation: pim_bfd.c:bputhex Unexecuted instantiation: pim_bsm.c:bputhex Unexecuted instantiation: pim_cmd_common.c:bputhex Unexecuted instantiation: pim_errors.c:bputhex Unexecuted instantiation: pim_hello.c:bputhex Unexecuted instantiation: pim_iface.c:bputhex Unexecuted instantiation: pim_ifchannel.c:bputhex Unexecuted instantiation: pim_instance.c:bputhex Unexecuted instantiation: pim_join.c:bputhex Unexecuted instantiation: pim_jp_agg.c:bputhex Unexecuted instantiation: pim_macro.c:bputhex Unexecuted instantiation: pim_mroute.c:bputhex Unexecuted instantiation: pim_msg.c:bputhex Unexecuted instantiation: pim_nb.c:bputhex Unexecuted instantiation: pim_nb_config.c:bputhex Unexecuted instantiation: pim_neighbor.c:bputhex Unexecuted instantiation: pim_nht.c:bputhex Unexecuted instantiation: pim_oil.c:bputhex Unexecuted instantiation: pim_pim.c:bputhex Unexecuted instantiation: pim_routemap.c:bputhex Unexecuted instantiation: pim_rp.c:bputhex Unexecuted instantiation: pim_rpf.c:bputhex Unexecuted instantiation: pim_sock.c:bputhex Unexecuted instantiation: pim_ssm.c:bputhex Unexecuted instantiation: pim_ssmpingd.c:bputhex Unexecuted instantiation: pim_static.c:bputhex Unexecuted instantiation: pim_str.c:bputhex Unexecuted instantiation: pim_tib.c:bputhex Unexecuted instantiation: pim_time.c:bputhex Unexecuted instantiation: pim_tlv.c:bputhex Unexecuted instantiation: pim_upstream.c:bputhex Unexecuted instantiation: pim_util.c:bputhex Unexecuted instantiation: pim_vty.c:bputhex Unexecuted instantiation: pim_zebra.c:bputhex Unexecuted instantiation: pim_zlookup.c:bputhex Unexecuted instantiation: pim_vxlan.c:bputhex Unexecuted instantiation: pim_register.c:bputhex Unexecuted instantiation: pimd.c:bputhex Unexecuted instantiation: pim_cmd.c:bputhex Unexecuted instantiation: pim_igmp.c:bputhex Unexecuted instantiation: pim_igmp_mtrace.c:bputhex Unexecuted instantiation: pim_igmpv2.c:bputhex Unexecuted instantiation: pim_igmpv3.c:bputhex Unexecuted instantiation: pim_main.c:bputhex Unexecuted instantiation: pim_mlag.c:bputhex Unexecuted instantiation: pim_msdp.c:bputhex Unexecuted instantiation: pim_msdp_packet.c:bputhex Unexecuted instantiation: pim_msdp_socket.c:bputhex Unexecuted instantiation: pim_signals.c:bputhex Unexecuted instantiation: pim_zpthread.c:bputhex Unexecuted instantiation: frr-pim.yang.c:bputhex Unexecuted instantiation: frr-pim-rp.yang.c:bputhex Unexecuted instantiation: frr-gmp.yang.c:bputhex |
259 | | |
260 | | /* %pVA extension, equivalent to Linux kernel %pV */ |
261 | | |
262 | | struct va_format { |
263 | | const char *fmt; |
264 | | va_list *va; |
265 | | }; |
266 | | |
267 | | #ifdef _FRR_ATTRIBUTE_PRINTFRR |
268 | | #pragma FRR printfrr_ext "%pFB" (struct fbuf *) |
269 | | #pragma FRR printfrr_ext "%pVA" (struct va_format *) |
270 | | |
271 | | #pragma FRR printfrr_ext "%pHX" (signed char *) |
272 | | #pragma FRR printfrr_ext "%pHX" (unsigned char *) |
273 | | #pragma FRR printfrr_ext "%pHX" (void *) |
274 | | #pragma FRR printfrr_ext "%pHS" (signed char *) |
275 | | #pragma FRR printfrr_ext "%pHS" (unsigned char *) |
276 | | #pragma FRR printfrr_ext "%pHS" (void *) |
277 | | |
278 | | #pragma FRR printfrr_ext "%pSE" (char *) |
279 | | #pragma FRR printfrr_ext "%pSQ" (char *) |
280 | | |
281 | | #pragma FRR printfrr_ext "%pTS" (struct timespec *) |
282 | | #pragma FRR printfrr_ext "%pTV" (struct timeval *) |
283 | | #pragma FRR printfrr_ext "%pTT" (time_t *) |
284 | | #endif |
285 | | |
286 | | /* when using non-ISO-C compatible extension specifiers... */ |
287 | | |
288 | | #ifdef _FRR_ATTRIBUTE_PRINTFRR |
289 | | #define FMT_NSTD_BEGIN |
290 | | #define FMT_NSTD_END |
291 | | #else /* !_FRR_ATTRIBUTE_PRINTFRR */ |
292 | | #define FMT_NSTD_BEGIN \ |
293 | | _Pragma("GCC diagnostic push") \ |
294 | | _Pragma("GCC diagnostic ignored \"-Wformat\"") \ |
295 | | /* end */ |
296 | | #define FMT_NSTD_END \ |
297 | | _Pragma("GCC diagnostic pop") \ |
298 | | /* end */ |
299 | | #endif |
300 | | |
301 | | #define FMT_NSTD(expr) \ |
302 | | ({ \ |
303 | | FMT_NSTD_BEGIN \ |
304 | | typeof(expr) _v; \ |
305 | | _v = expr; \ |
306 | | FMT_NSTD_END \ |
307 | | _v; \ |
308 | | }) \ |
309 | | /* end */ |
310 | | |
311 | | #ifdef __cplusplus |
312 | | } |
313 | | #endif |
314 | | |
315 | | #endif |