xref: /linux/tools/testing/selftests/bpf/progs/test_autoload.c (revision ff61f0791ce969d2db6c9f3b71d74ceec0a2e958)
1  // SPDX-License-Identifier: GPL-2.0
2  /* Copyright (c) 2020 Facebook */
3  
4  #include "vmlinux.h"
5  #include <bpf/bpf_helpers.h>
6  #include <bpf/bpf_tracing.h>
7  #include <bpf/bpf_core_read.h>
8  
9  bool prog1_called = false;
10  bool prog2_called = false;
11  bool prog3_called = false;
12  
13  SEC("raw_tp/sys_enter")
14  int prog1(const void *ctx)
15  {
16  	prog1_called = true;
17  	return 0;
18  }
19  
20  SEC("raw_tp/sys_exit")
21  int prog2(const void *ctx)
22  {
23  	prog2_called = true;
24  	return 0;
25  }
26  
27  struct fake_kernel_struct {
28  	int whatever;
29  } __attribute__((preserve_access_index));
30  
31  SEC("fentry/unexisting-kprobe-will-fail-if-loaded")
32  int prog3(const void *ctx)
33  {
34  	struct fake_kernel_struct *fake = (void *)ctx;
35  	fake->whatever = 123;
36  	prog3_called = true;
37  	return 0;
38  }
39  
40  char _license[] SEC("license") = "GPL";
41