samples: bpf: syscall_nrs: use mmap2 if defined

For arm32 xdp sockets mmap2 is preferred, so use it if it's defined.
Declaration of __NR_mmap can be skipped and it breaks build.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
Ivan Khoronzhuk 2019-08-15 15:13:56 +03:00 committed by Daniel Borkmann
parent 624676e788
commit bb4b5c08a8
2 changed files with 21 additions and 2 deletions

View File

@ -9,5 +9,11 @@ void syscall_defines(void)
COMMENT("Linux system call numbers."); COMMENT("Linux system call numbers.");
SYSNR(__NR_write); SYSNR(__NR_write);
SYSNR(__NR_read); SYSNR(__NR_read);
#ifdef __NR_mmap2
SYSNR(__NR_mmap2);
#endif
#ifdef __NR_mmap
SYSNR(__NR_mmap); SYSNR(__NR_mmap);
#endif
} }

View File

@ -68,12 +68,25 @@ PROG(SYS__NR_read)(struct pt_regs *ctx)
return 0; return 0;
} }
PROG(SYS__NR_mmap)(struct pt_regs *ctx) #ifdef __NR_mmap2
PROG(SYS__NR_mmap2)(struct pt_regs *ctx)
{ {
char fmt[] = "mmap\n"; char fmt[] = "mmap2\n";
bpf_trace_printk(fmt, sizeof(fmt)); bpf_trace_printk(fmt, sizeof(fmt));
return 0; return 0;
} }
#endif
#ifdef __NR_mmap
PROG(SYS__NR_mmap)(struct pt_regs *ctx)
{
char fmt[] = "mmap\n";
bpf_trace_printk(fmt, sizeof(fmt));
return 0;
}
#endif
char _license[] SEC("license") = "GPL"; char _license[] SEC("license") = "GPL";
u32 _version SEC("version") = LINUX_VERSION_CODE; u32 _version SEC("version") = LINUX_VERSION_CODE;