1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright (c) 2022 Facebook */ 3 4 #include "vmlinux.h" 5 #include <bpf/bpf_helpers.h> 6 #include <bpf/bpf_tracing.h> 7 8 const volatile int my_pid; 9 10 bool abc1_called; 11 bool abc2_called; 12 bool custom1_called; 13 bool custom2_called; 14 bool kprobe1_called; 15 bool xyz_called; 16 17 SEC("abc") abc1(void * ctx)18int abc1(void *ctx) 19 { 20 abc1_called = true; 21 return 0; 22 } 23 24 SEC("abc/whatever") abc2(void * ctx)25int abc2(void *ctx) 26 { 27 abc2_called = true; 28 return 0; 29 } 30 31 SEC("custom") custom1(void * ctx)32int custom1(void *ctx) 33 { 34 custom1_called = true; 35 return 0; 36 } 37 38 SEC("custom/something") custom2(void * ctx)39int custom2(void *ctx) 40 { 41 custom2_called = true; 42 return 0; 43 } 44 45 SEC("kprobe") kprobe1(void * ctx)46int kprobe1(void *ctx) 47 { 48 kprobe1_called = true; 49 return 0; 50 } 51 52 SEC("xyz/blah") xyz(void * ctx)53int xyz(void *ctx) 54 { 55 int whatever; 56 57 /* use sleepable helper, custom handler should set sleepable flag */ 58 bpf_copy_from_user(&whatever, sizeof(whatever), NULL); 59 xyz_called = true; 60 return 0; 61 } 62 63 char _license[] SEC("license") = "GPL"; 64