X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fsyscalls%2Fheaders%2Fsyscalls_unknown.h;h=79939c80ca89a70ac0a80ddac8d8351e193782e6;hb=cf77d12083b5092eca8c6f9899ec0892756845aa;hp=45da2ad32c03d5d2882ca64b38d8f27558553eb0;hpb=372ac11b49ec9bb644c419108666f0cc0a3d3492;p=lttng-modules.git diff --git a/instrumentation/syscalls/headers/syscalls_unknown.h b/instrumentation/syscalls/headers/syscalls_unknown.h index 45da2ad3..79939c80 100644 --- a/instrumentation/syscalls/headers/syscalls_unknown.h +++ b/instrumentation/syscalls/headers/syscalls_unknown.h @@ -1,45 +1,55 @@ -#undef TRACE_SYSTEM -#define TRACE_SYSTEM syscalls_unknown +/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) */ #if !defined(_TRACE_SYSCALLS_UNKNOWN_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_SYSCALLS_UNKNOWN_H -#include +#include #include #define UNKNOWN_SYSCALL_NRARGS 6 -TRACE_EVENT(sys_unknown, - TP_PROTO(unsigned int id, unsigned long *args), +#undef TP_PROBE_CB +#define TP_PROBE_CB(_template) &syscall_entry_probe + +LTTNG_TRACEPOINT_EVENT(syscall_entry_unknown, + TP_PROTO(int id, unsigned long *args), TP_ARGS(id, args), - TP_STRUCT__entry( - __field(unsigned int, id) - __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) - ), - TP_fast_assign( - tp_assign(id, id) - tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) - ), - TP_printk() + TP_FIELDS( + ctf_integer(int, id, id) + ctf_array(unsigned long, args, args, UNKNOWN_SYSCALL_NRARGS) + ) ) -/* - * This is going to hook on sys_exit in the kernel. - * We change the name so we don't clash with the sys_exit syscall entry - * event. - */ -TRACE_EVENT(exit_syscall, - TP_PROTO(struct pt_regs *regs, long errno), - TP_ARGS(regs, errno), - TP_STRUCT__entry( - __field(long, errno) - ), - TP_fast_assign( - tp_assign(errno, errno) - ), - TP_printk() +LTTNG_TRACEPOINT_EVENT(compat_syscall_entry_unknown, + TP_PROTO(int id, unsigned long *args), + TP_ARGS(id, args), + TP_FIELDS( + ctf_integer(int, id, id) + ctf_array(unsigned long, args, args, UNKNOWN_SYSCALL_NRARGS) + ) ) +#undef TP_PROBE_CB +#define TP_PROBE_CB(_template) &syscall_exit_probe + +LTTNG_TRACEPOINT_EVENT(syscall_exit_unknown, + TP_PROTO(int id, long ret, unsigned long *args), + TP_ARGS(id, ret, args), + TP_FIELDS( + ctf_integer(int, id, id) + ctf_integer(long, ret, ret) + ctf_array(unsigned long, args, args, UNKNOWN_SYSCALL_NRARGS) + ) +) +LTTNG_TRACEPOINT_EVENT(compat_syscall_exit_unknown, + TP_PROTO(int id, long ret, unsigned long *args), + TP_ARGS(id, ret, args), + TP_FIELDS( + ctf_integer(int, id, id) + ctf_integer(long, ret, ret) + ctf_array(unsigned long, args, args, UNKNOWN_SYSCALL_NRARGS) + ) +) #endif /* _TRACE_SYSCALLS_UNKNOWN_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include