| // SPDX-License-Identifier: GPL-2.0 | |
| /* | |
| * Hook into 'openat' syscall entry tracepoint | |
| * | |
| * Test it with: | |
| * | |
| * perf trace -e tools/perf/examples/bpf/sys_enter_openat.c cat /etc/passwd > /dev/null | |
| * | |
| * It'll catch some openat syscalls related to the dynamic linked and | |
| * the last one should be the one for '/etc/passwd'. | |
| * | |
| * The syscall_enter_openat_args can be used to get the syscall fields | |
| * and use them for filtering calls, i.e. use in expressions for | |
| * the return value. | |
| */ | |
| #include <bpf.h> | |
| struct syscall_enter_openat_args { | |
| unsigned long long unused; | |
| long syscall_nr; | |
| long dfd; | |
| char *filename_ptr; | |
| long flags; | |
| long mode; | |
| }; | |
| int syscall_enter(openat)(struct syscall_enter_openat_args *args) | |
| { | |
| return 1; | |
| } | |
| license(GPL); |