2016-11-29 01:35:21 +03:00
# undef TRACE_SYSTEM
# define TRACE_SYSTEM alarmtimer
# if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ)
# define _TRACE_ALARMTIMER_H
# include <linux/alarmtimer.h>
# include <linux/rtc.h>
# include <linux/tracepoint.h>
TRACE_DEFINE_ENUM ( ALARM_REALTIME ) ;
TRACE_DEFINE_ENUM ( ALARM_BOOTTIME ) ;
TRACE_DEFINE_ENUM ( ALARM_REALTIME_FREEZER ) ;
TRACE_DEFINE_ENUM ( ALARM_BOOTTIME_FREEZER ) ;
# define show_alarm_type(type) __print_flags(type, " | ", \
{ 1 < < ALARM_REALTIME , " REALTIME " } , \
{ 1 < < ALARM_BOOTTIME , " BOOTTIME " } , \
{ 1 < < ALARM_REALTIME_FREEZER , " REALTIME Freezer " } , \
{ 1 < < ALARM_BOOTTIME_FREEZER , " BOOTTIME Freezer " } )
TRACE_EVENT ( alarmtimer_suspend ,
TP_PROTO ( ktime_t expires , int flag ) ,
TP_ARGS ( expires , flag ) ,
TP_STRUCT__entry (
__field ( s64 , expires )
__field ( unsigned char , alarm_type )
) ,
TP_fast_assign (
2016-12-25 13:38:40 +03:00
__entry - > expires = expires ;
2016-11-29 01:35:21 +03:00
__entry - > alarm_type = flag ;
) ,
TP_printk ( " alarmtimer type:%s expires:%llu " ,
show_alarm_type ( ( 1 < < __entry - > alarm_type ) ) ,
__entry - > expires
)
) ;
DECLARE_EVENT_CLASS ( alarm_class ,
TP_PROTO ( struct alarm * alarm , ktime_t now ) ,
TP_ARGS ( alarm , now ) ,
TP_STRUCT__entry (
__field ( void * , alarm )
__field ( unsigned char , alarm_type )
__field ( s64 , expires )
__field ( s64 , now )
) ,
TP_fast_assign (
__entry - > alarm = alarm ;
__entry - > alarm_type = alarm - > type ;
2016-12-25 13:38:40 +03:00
__entry - > expires = alarm - > node . expires ;
__entry - > now = now ;
2016-11-29 01:35:21 +03:00
) ,
TP_printk ( " alarmtimer:%p type:%s expires:%llu now:%llu " ,
__entry - > alarm ,
show_alarm_type ( ( 1 < < __entry - > alarm_type ) ) ,
__entry - > expires ,
__entry - > now
)
) ;
DEFINE_EVENT ( alarm_class , alarmtimer_fired ,
TP_PROTO ( struct alarm * alarm , ktime_t now ) ,
TP_ARGS ( alarm , now )
) ;
DEFINE_EVENT ( alarm_class , alarmtimer_start ,
TP_PROTO ( struct alarm * alarm , ktime_t now ) ,
TP_ARGS ( alarm , now )
) ;
DEFINE_EVENT ( alarm_class , alarmtimer_cancel ,
TP_PROTO ( struct alarm * alarm , ktime_t now ) ,
TP_ARGS ( alarm , now )
) ;
# endif /* _TRACE_ALARMTIMER_H */
/* This part must be outside protection */
# include <trace/define_trace.h>