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 Kratunovint 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