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> 9*3e689141SToke Høiland-Jørgensen #include <bpf/bpf_helpers.h> 10*3e689141SToke 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 Starovoitovint 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