0001
0002
0003
0004 #include <stdbool.h>
0005 #include <linux/bpf.h>
0006 #include <bpf/bpf_helpers.h>
0007
0008
0009 const volatile int var1;
0010 volatile int var2 = 1;
0011 struct {
0012 int var3_1;
0013 __s64 var3_2;
0014 } var3;
0015 int libout1;
0016
0017 extern volatile bool CONFIG_BPF_SYSCALL __kconfig;
0018
0019 int var4[4];
0020
0021 __weak int var5 SEC(".data");
0022
0023
0024 extern int var6;
0025
0026 int var7 SEC(".data.custom");
0027
0028 int (*fn_ptr)(void);
0029
0030 struct {
0031 __uint(type, BPF_MAP_TYPE_HASH);
0032 __type(key, __u32);
0033 __type(value, __u32);
0034 __uint(max_entries, 16);
0035 } map1 SEC(".maps");
0036
0037 extern struct {
0038 __uint(type, BPF_MAP_TYPE_HASH);
0039 __type(key, __u32);
0040 __type(value, __u32);
0041 __uint(max_entries, 16);
0042 } map2 SEC(".maps");
0043
0044 int lib_routine(void)
0045 {
0046 __u32 key = 1, value = 2;
0047
0048 (void) CONFIG_BPF_SYSCALL;
0049 bpf_map_update_elem(&map2, &key, &value, BPF_ANY);
0050
0051 libout1 = var1 + var2 + var3.var3_1 + var3.var3_2 + var5 + var6;
0052 return libout1;
0053 }
0054
0055 SEC("perf_event")
0056 int lib_perf_handler(struct pt_regs *ctx)
0057 {
0058 return 0;
0059 }
0060
0061 char LICENSE[] SEC("license") = "GPL";