X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=instrumentation%2Fsyscalls%2Fheaders%2Fsyscalls_unknown.h;h=7868f85f42fe1b88c36fa50964efb3cdeb1f215d;hb=74f7b56a78514d321aaf8b3fffae174999070f71;hp=4582d03d731f15a0de2cab611d541fd4f50e5da8;hpb=a93244f8421385c560a70d0308a69e7c9289916e;p=lttng-modules.git diff --git a/instrumentation/syscalls/headers/syscalls_unknown.h b/instrumentation/syscalls/headers/syscalls_unknown.h index 4582d03d..7868f85f 100644 --- a/instrumentation/syscalls/headers/syscalls_unknown.h +++ b/instrumentation/syscalls/headers/syscalls_unknown.h @@ -1,16 +1,19 @@ #if !defined(_TRACE_SYSCALLS_UNKNOWN_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_SYSCALLS_UNKNOWN_H -#include +#include "../../../probes/lttng-tracepoint-event.h" #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) + __field(int, id) __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) ), TP_fast_assign( @@ -19,11 +22,11 @@ TRACE_EVENT(sys_unknown, ), TP_printk() ) -TRACE_EVENT(compat_sys_unknown, - TP_PROTO(unsigned int id, unsigned long *args), +LTTNG_TRACEPOINT_EVENT(compat_syscall_entry_unknown, + TP_PROTO(int id, unsigned long *args), TP_ARGS(id, args), TP_STRUCT__entry( - __field(unsigned int, id) + __field(int, id) __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) ), TP_fast_assign( @@ -32,23 +35,40 @@ TRACE_EVENT(compat_sys_unknown, ), TP_printk() ) -/* - * 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 ret), - TP_ARGS(regs, ret), + +#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_STRUCT__entry( + __field(int, id) __field(long, ret) + __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) ), TP_fast_assign( + tp_assign(id, id) tp_assign(ret, ret) + tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) + ), + TP_printk() +) +LTTNG_TRACEPOINT_EVENT(compat_syscall_exit_unknown, + TP_PROTO(int id, long ret, unsigned long *args), + TP_ARGS(id, ret, args), + TP_STRUCT__entry( + __field(int, id) + __field(long, ret) + __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) + ), + TP_fast_assign( + tp_assign(id, id) + tp_assign(ret, ret) + tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) ), TP_printk() ) - #endif /* _TRACE_SYSCALLS_UNKNOWN_H */ /* This part must be outside protection */