1b061017fSAlexei Starovoitov // SPDX-License-Identifier: GPL-2.0
2b061017fSAlexei Starovoitov // Copyright (c) 2019 Facebook
3b061017fSAlexei Starovoitov #include <linux/sched.h>
4b061017fSAlexei Starovoitov #include <linux/ptrace.h>
5b061017fSAlexei Starovoitov #include <stdint.h>
6b061017fSAlexei Starovoitov #include <stddef.h>
7b061017fSAlexei Starovoitov #include <stdbool.h>
8b061017fSAlexei Starovoitov #include <linux/bpf.h>
93e689141SToke Høiland-Jørgensen #include <bpf/bpf_helpers.h>
103e689141SToke Høiland-Jørgensen #include <bpf/bpf_tracing.h>
11b061017fSAlexei Starovoitov 
12b061017fSAlexei Starovoitov char _license[] SEC("license") = "GPL";
13b061017fSAlexei Starovoitov 
14b061017fSAlexei Starovoitov SEC("raw_tracepoint/consume_skb")
while_true(volatile struct pt_regs * ctx)15b061017fSAlexei Starovoitov int while_true(volatile struct pt_regs* ctx)
16b061017fSAlexei Starovoitov {
17b061017fSAlexei Starovoitov 	int i = 0;
18b061017fSAlexei Starovoitov 
19b061017fSAlexei Starovoitov 	while (true) {
20af3c24e0SIlya Leoshkevich 		if (PT_REGS_RC(ctx) & 1)
21b061017fSAlexei Starovoitov 			i += 3;
22b061017fSAlexei Starovoitov 		else
23b061017fSAlexei Starovoitov 			i += 7;
24b061017fSAlexei Starovoitov 		if (i > 40)
25b061017fSAlexei Starovoitov 			break;
26b061017fSAlexei Starovoitov 	}
27b061017fSAlexei Starovoitov 
28b061017fSAlexei Starovoitov 	return i;
29b061017fSAlexei Starovoitov }
30