11c1052e0SCarlos Neira // SPDX-License-Identifier: GPL-2.0
21c1052e0SCarlos Neira /* Copyright (c) 2019 Carlos Neira cneirabustos@gmail.com */
31c1052e0SCarlos Neira 
41c1052e0SCarlos Neira #include <linux/bpf.h>
51c1052e0SCarlos Neira #include <stdint.h>
61c1052e0SCarlos Neira #include <bpf/bpf_helpers.h>
71c1052e0SCarlos Neira 
8*09c02d55SCarlos Neira __u64 user_pid = 0;
9*09c02d55SCarlos Neira __u64 user_tgid = 0;
10*09c02d55SCarlos Neira __u64 dev = 0;
11*09c02d55SCarlos Neira __u64 ino = 0;
121c1052e0SCarlos Neira 
13*09c02d55SCarlos Neira SEC("tracepoint/syscalls/sys_enter_nanosleep")
handler(const void * ctx)14*09c02d55SCarlos Neira int handler(const void *ctx)
151c1052e0SCarlos Neira {
161c1052e0SCarlos Neira 	struct bpf_pidns_info nsdata;
171c1052e0SCarlos Neira 
18*09c02d55SCarlos Neira 	if (bpf_get_ns_current_pid_tgid(dev, ino, &nsdata, sizeof(struct bpf_pidns_info)))
191c1052e0SCarlos Neira 		return 0;
201c1052e0SCarlos Neira 
21*09c02d55SCarlos Neira 	user_pid = nsdata.pid;
22*09c02d55SCarlos Neira 	user_tgid = nsdata.tgid;
231c1052e0SCarlos Neira 
241c1052e0SCarlos Neira 	return 0;
251c1052e0SCarlos Neira }
261c1052e0SCarlos Neira 
271c1052e0SCarlos Neira char _license[] SEC("license") = "GPL";
28