1*3cccbaa0SDelyan Kratunov // SPDX-License-Identifier: GPL-2.0
2*3cccbaa0SDelyan Kratunov /* Copyright (c) Meta Platforms, Inc. and affiliates. */
3*3cccbaa0SDelyan Kratunov 
4*3cccbaa0SDelyan Kratunov #include <stdbool.h>
5*3cccbaa0SDelyan Kratunov #include <linux/bpf.h>
6*3cccbaa0SDelyan Kratunov #include <bpf/bpf_helpers.h>
7*3cccbaa0SDelyan Kratunov 
8*3cccbaa0SDelyan Kratunov /* volatile to force a read, compiler may assume 0 otherwise */
9*3cccbaa0SDelyan Kratunov const volatile int rovar1;
10*3cccbaa0SDelyan Kratunov int out1;
11*3cccbaa0SDelyan Kratunov 
12*3cccbaa0SDelyan Kratunov /* Override weak symbol in test_subskeleton_lib */
13*3cccbaa0SDelyan Kratunov int var5 = 5;
14*3cccbaa0SDelyan Kratunov 
15*3cccbaa0SDelyan Kratunov extern volatile bool CONFIG_BPF_SYSCALL __kconfig;
16*3cccbaa0SDelyan Kratunov 
17*3cccbaa0SDelyan Kratunov extern int lib_routine(void);
18*3cccbaa0SDelyan Kratunov 
19*3cccbaa0SDelyan Kratunov SEC("raw_tp/sys_enter")
handler1(const void * ctx)20*3cccbaa0SDelyan Kratunov int handler1(const void *ctx)
21*3cccbaa0SDelyan Kratunov {
22*3cccbaa0SDelyan Kratunov 	(void) CONFIG_BPF_SYSCALL;
23*3cccbaa0SDelyan Kratunov 
24*3cccbaa0SDelyan Kratunov 	out1 = lib_routine() * rovar1;
25*3cccbaa0SDelyan Kratunov 	return 0;
26*3cccbaa0SDelyan Kratunov }
27*3cccbaa0SDelyan Kratunov 
28*3cccbaa0SDelyan Kratunov char LICENSE[] SEC("license") = "GPL";
29