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