libbpf: Add PT_REGS_SYSCALL_REGS macro
Architectures that select ARCH_HAS_SYSCALL_WRAPPER pass a pointer to struct pt_regs to syscall handlers, others unpack it into individual function parameters. Introduce a macro to describe what a particular arch does. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20220209021745.2215452-3-iii@linux.ibm.com
This commit is contained in:
Родитель
4fc49b51ab
Коммит
c5a1ffa0da
|
@ -326,6 +326,16 @@ struct pt_regs;
|
||||||
|
|
||||||
#endif /* defined(bpf_target_defined) */
|
#endif /* defined(bpf_target_defined) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When invoked from a syscall handler kprobe, returns a pointer to a
|
||||||
|
* struct pt_regs containing syscall arguments and suitable for passing to
|
||||||
|
* PT_REGS_PARMn_SYSCALL() and PT_REGS_PARMn_CORE_SYSCALL().
|
||||||
|
*/
|
||||||
|
#ifndef PT_REGS_SYSCALL_REGS
|
||||||
|
/* By default, assume that the arch selects ARCH_HAS_SYSCALL_WRAPPER. */
|
||||||
|
#define PT_REGS_SYSCALL_REGS(ctx) ((struct pt_regs *)PT_REGS_PARM1(ctx))
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef ___bpf_concat
|
#ifndef ___bpf_concat
|
||||||
#define ___bpf_concat(a, b) a ## b
|
#define ___bpf_concat(a, b) a ## b
|
||||||
#endif
|
#endif
|
||||||
|
|
Загрузка…
Ссылка в новой задаче