X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fsignal.h;h=a1c904bc8a27cac72df8d4ca64913c298eb536c2;hb=c1b29b59442b837791856e55f35164a891df76bd;hp=f963c807f14f914f2a6ce552940e12f906f376f5;hpb=f97eaafb28e11d68919a6d53278b117343f33d60;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/signal.h b/instrumentation/events/lttng-module/signal.h index f963c807..a1c904bc 100644 --- a/instrumentation/events/lttng-module/signal.h +++ b/instrumentation/events/lttng-module/signal.h @@ -5,6 +5,7 @@ #define _TRACE_SIGNAL_H #include +#include #ifndef _TRACE_SIGNAL_DEF #define _TRACE_SIGNAL_DEF @@ -34,6 +35,7 @@ * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV * means that si_code is SI_KERNEL. */ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) TRACE_EVENT(signal_generate, TP_PROTO(int sig, struct siginfo *info, struct task_struct *task), @@ -44,7 +46,7 @@ TRACE_EVENT(signal_generate, __field( int, sig ) __field( int, errno ) __field( int, code ) - __array( char, comm, TASK_COMM_LEN ) + __array_text( char, comm, TASK_COMM_LEN ) __field( pid_t, pid ) ), @@ -59,6 +61,39 @@ TRACE_EVENT(signal_generate, __entry->sig, __entry->errno, __entry->code, __entry->comm, __entry->pid) ) +#else +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, + int group, int result), + + TP_ARGS(sig, info, task, group, result), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, group ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_memcpy(comm, task->comm, TASK_COMM_LEN) + tp_assign(pid, task->pid) + tp_assign(group, group) + tp_assign(result, result) + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid, __entry->group, + __entry->result) +) +#endif /** * signal_deliver - called when a signal is delivered @@ -100,6 +135,7 @@ TRACE_EVENT(signal_deliver, __entry->sa_handler, __entry->sa_flags) ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) DECLARE_EVENT_CLASS(signal_queue_overflow, TP_PROTO(int sig, int group, struct siginfo *info), @@ -158,6 +194,7 @@ DEFINE_EVENT(signal_queue_overflow, signal_lose_info, TP_ARGS(sig, group, info) ) +#endif #endif /* _TRACE_SIGNAL_H */