libbpf: Add BPF_KPROBE_SYSCALL macro
authorHengqi Chen <hengqi.chen@gmail.com>
Mon, 7 Feb 2022 14:31:33 +0000 (22:31 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 9 Feb 2022 05:45:02 +0000 (21:45 -0800)
commit816ae109554756ce5e22e3aabde10161c4d0a4f7
tree09215447fd16ddd4375d741116f8ca26aad4b332
parent8dd039a6fcf3ff559a49533bbc6433c63b53c41c
libbpf: Add BPF_KPROBE_SYSCALL macro

Add syscall-specific variant of BPF_KPROBE named BPF_KPROBE_SYSCALL ([0]).
The new macro hides the underlying way of getting syscall input arguments.
With the new macro, the following code:

    SEC("kprobe/__x64_sys_close")
    int BPF_KPROBE(do_sys_close, struct pt_regs *regs)
    {
        int fd;

        fd = PT_REGS_PARM1_CORE(regs);
        /* do something with fd */
    }

can be written as:

    SEC("kprobe/__x64_sys_close")
    int BPF_KPROBE_SYSCALL(do_sys_close, int fd)
    {
        /* do something with fd */
    }

  [0] Closes: https://github.com/libbpf/libbpf/issues/425

Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220207143134.2977852-2-hengqi.chen@gmail.com
tools/lib/bpf/bpf_tracing.h