0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM alarmtimer
0004
0005 #if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_ALARMTIMER_H
0007
0008 #include <linux/alarmtimer.h>
0009 #include <linux/rtc.h>
0010 #include <linux/tracepoint.h>
0011
0012 TRACE_DEFINE_ENUM(ALARM_REALTIME);
0013 TRACE_DEFINE_ENUM(ALARM_BOOTTIME);
0014 TRACE_DEFINE_ENUM(ALARM_REALTIME_FREEZER);
0015 TRACE_DEFINE_ENUM(ALARM_BOOTTIME_FREEZER);
0016
0017 #define show_alarm_type(type) __print_flags(type, " | ", \
0018 { 1 << ALARM_REALTIME, "REALTIME" }, \
0019 { 1 << ALARM_BOOTTIME, "BOOTTIME" }, \
0020 { 1 << ALARM_REALTIME_FREEZER, "REALTIME Freezer" }, \
0021 { 1 << ALARM_BOOTTIME_FREEZER, "BOOTTIME Freezer" })
0022
0023 TRACE_EVENT(alarmtimer_suspend,
0024
0025 TP_PROTO(ktime_t expires, int flag),
0026
0027 TP_ARGS(expires, flag),
0028
0029 TP_STRUCT__entry(
0030 __field(s64, expires)
0031 __field(unsigned char, alarm_type)
0032 ),
0033
0034 TP_fast_assign(
0035 __entry->expires = expires;
0036 __entry->alarm_type = flag;
0037 ),
0038
0039 TP_printk("alarmtimer type:%s expires:%llu",
0040 show_alarm_type((1 << __entry->alarm_type)),
0041 __entry->expires
0042 )
0043 );
0044
0045 DECLARE_EVENT_CLASS(alarm_class,
0046
0047 TP_PROTO(struct alarm *alarm, ktime_t now),
0048
0049 TP_ARGS(alarm, now),
0050
0051 TP_STRUCT__entry(
0052 __field(void *, alarm)
0053 __field(unsigned char, alarm_type)
0054 __field(s64, expires)
0055 __field(s64, now)
0056 ),
0057
0058 TP_fast_assign(
0059 __entry->alarm = alarm;
0060 __entry->alarm_type = alarm->type;
0061 __entry->expires = alarm->node.expires;
0062 __entry->now = now;
0063 ),
0064
0065 TP_printk("alarmtimer:%p type:%s expires:%llu now:%llu",
0066 __entry->alarm,
0067 show_alarm_type((1 << __entry->alarm_type)),
0068 __entry->expires,
0069 __entry->now
0070 )
0071 );
0072
0073 DEFINE_EVENT(alarm_class, alarmtimer_fired,
0074
0075 TP_PROTO(struct alarm *alarm, ktime_t now),
0076
0077 TP_ARGS(alarm, now)
0078 );
0079
0080 DEFINE_EVENT(alarm_class, alarmtimer_start,
0081
0082 TP_PROTO(struct alarm *alarm, ktime_t now),
0083
0084 TP_ARGS(alarm, now)
0085 );
0086
0087 DEFINE_EVENT(alarm_class, alarmtimer_cancel,
0088
0089 TP_PROTO(struct alarm *alarm, ktime_t now),
0090
0091 TP_ARGS(alarm, now)
0092 );
0093
0094 #endif
0095
0096
0097 #include <trace/define_trace.h>