linux/tools/testing/selftests/bpf/progs/test_global_func6.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-only
   2/* Copyright (c) 2020 Facebook */
   3#include <stddef.h>
   4#include <linux/bpf.h>
   5#include <bpf/bpf_helpers.h>
   6
   7__attribute__ ((noinline))
   8int f1(struct __sk_buff *skb)
   9{
  10        return skb->len;
  11}
  12
  13int f3(int, struct __sk_buff *skb);
  14
  15__attribute__ ((noinline))
  16int f2(int val, struct __sk_buff *skb)
  17{
  18        return f1(skb) + f3(val, skb + 1); /* type mismatch */
  19}
  20
  21__attribute__ ((noinline))
  22int f3(int val, struct __sk_buff *skb)
  23{
  24        return skb->ifindex * val;
  25}
  26
  27SEC("classifier/test")
  28int test_cls(struct __sk_buff *skb)
  29{
  30        return f1(skb) + f2(2, skb) + f3(3, skb);
  31}
  32