#include "bpf.h"

pid_map(starts, u64);

int syscall_enter(nanosleep)
{
	u64 pid = bpf_get_current_pid_tgid(),
	    tstamp = bpf_ktime_get_ns();

	bpf_map_update_elem(&starts, &pid, &tstamp, BPF_ANY);
	return 1;
}

int syscall_exit(nanosleep)
{
	u64 pid = bpf_get_current_pid_tgid();
	u64 *start = bpf_map_lookup_elem(&starts, &pid);

	if (start) {
	    	u64 tstamp = bpf_ktime_get_ns();
		u64 delta = tstamp - *start;
		char fmt[] = "delta=%lld\n";

		trace_printk(fmt, sizeof(fmt), delta);
	}
	return 1;
}
