xref: /linux/tools/testing/selftests/bpf/progs/test_static_linked2.c (revision 6beeaf48db6c548fcfc2ad32739d33af2fef3a5b)
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (c) 2021 Facebook */
3 
4 #include <linux/bpf.h>
5 #include <bpf/bpf_helpers.h>
6 
7 /* 4-byte aligned .data */
8 static volatile int static_var1 = 5;
9 static volatile int static_var2 = 6;
10 int var2 = -1;
11 /* 8-byte aligned .rodata */
12 const volatile long rovar2;
13 
14 /* same "subprog" name in both files */
15 static __noinline int subprog(int x)
16 {
17 	/* but different formula */
18 	return x * 3;
19 }
20 
21 SEC("raw_tp/sys_enter")
22 int handler2(const void *ctx)
23 {
24 	var2 = subprog(rovar2) + static_var1 + static_var2;
25 
26 	return 0;
27 }
28 
29 /* different name and/or type of the variable doesn't matter */
30 char _license[] SEC("license") = "GPL";
31 int _version SEC("version") = 1;
32