1c8a36aedSDaniel Xu // SPDX-License-Identifier: GPL-2.0 2c8a36aedSDaniel Xu 3c8a36aedSDaniel Xu #include <linux/bpf.h> 4c8a36aedSDaniel Xu #include <bpf/bpf_helpers.h> 5c8a36aedSDaniel Xu #include <bpf/bpf_tracing.h> 6c8a36aedSDaniel Xu 7c8a36aedSDaniel Xu #include <sys/types.h> 8c8a36aedSDaniel Xu 9c8a36aedSDaniel Xu pid_t pid = 0; 10c8a36aedSDaniel Xu long ret = 0; 11c8a36aedSDaniel Xu void *user_ptr = 0; 12c8a36aedSDaniel Xu char buf[256] = {}; 13c8a36aedSDaniel Xu 14c8a36aedSDaniel Xu SEC("tracepoint/syscalls/sys_enter_nanosleep") on_write(void * ctx)15c8a36aedSDaniel Xuint on_write(void *ctx) 16c8a36aedSDaniel Xu { 17c8a36aedSDaniel Xu if (pid != (bpf_get_current_pid_tgid() >> 32)) 18c8a36aedSDaniel Xu return 0; 19c8a36aedSDaniel Xu 20c8a36aedSDaniel Xu ret = bpf_probe_read_user_str(buf, sizeof(buf), user_ptr); 21c8a36aedSDaniel Xu 22c8a36aedSDaniel Xu return 0; 23c8a36aedSDaniel Xu } 24c8a36aedSDaniel Xu 25c8a36aedSDaniel Xu char _license[] SEC("license") = "GPL"; 26