1 /*
2 * Classic BPF filter block.
3 *
4 * Copyright (c) 2015-2021 Dmitry V. Levin <ldv@strace.io>
5 * All rights reserved.
6 *
7 * SPDX-License-Identifier: LGPL-2.1-or-later
8 */
9
10 #ifndef STRACE_BPF_FILTER_H
11 # define STRACE_BPF_FILTER_H
12
13 struct bpf_filter_block {
14 uint16_t code;
15 uint8_t jt;
16 uint8_t jf;
17 uint32_t k;
18 };
19
20 typedef bool (*print_bpf_filter_fn)(const struct bpf_filter_block *);
21
22 extern void
23 print_bpf_fprog(struct tcb *const tcp, const kernel_ulong_t addr,
24 const unsigned short len, const print_bpf_filter_fn print_k);
25
26 extern void
27 decode_bpf_fprog(struct tcb *const tcp, const kernel_ulong_t addr,
28 const print_bpf_filter_fn print_k);
29
30 #endif /* !STRACE_BPF_FILTER_H */