18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci// Copyright (c) 2019 Facebook 38c2ecf20Sopenharmony_ci#include <linux/sched.h> 48c2ecf20Sopenharmony_ci#include <linux/ptrace.h> 58c2ecf20Sopenharmony_ci#include <stdint.h> 68c2ecf20Sopenharmony_ci#include <stddef.h> 78c2ecf20Sopenharmony_ci#include <stdbool.h> 88c2ecf20Sopenharmony_ci#include <linux/bpf.h> 98c2ecf20Sopenharmony_ci#include <bpf/bpf_helpers.h> 108c2ecf20Sopenharmony_ci#include <bpf/bpf_tracing.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cichar _license[] SEC("license") = "GPL"; 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciSEC("raw_tracepoint/consume_skb") 158c2ecf20Sopenharmony_ciint while_true(volatile struct pt_regs* ctx) 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci int i = 0; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci while (true) { 208c2ecf20Sopenharmony_ci if (PT_REGS_RC(ctx) & 1) 218c2ecf20Sopenharmony_ci i += 3; 228c2ecf20Sopenharmony_ci else 238c2ecf20Sopenharmony_ci i += 7; 248c2ecf20Sopenharmony_ci if (i > 40) 258c2ecf20Sopenharmony_ci break; 268c2ecf20Sopenharmony_ci } 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci return i; 298c2ecf20Sopenharmony_ci} 30