| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | 2 | #undef TRACE_SYSTEM | 
|  | 3 | #define TRACE_SYSTEM alarmtimer | 
|  | 4 |  | 
|  | 5 | #if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ) | 
|  | 6 | #define _TRACE_ALARMTIMER_H | 
|  | 7 |  | 
|  | 8 | #include <linux/alarmtimer.h> | 
|  | 9 | #include <linux/rtc.h> | 
|  | 10 | #include <linux/tracepoint.h> | 
|  | 11 |  | 
|  | 12 | TRACE_DEFINE_ENUM(ALARM_REALTIME); | 
|  | 13 | TRACE_DEFINE_ENUM(ALARM_BOOTTIME); | 
|  | 14 | TRACE_DEFINE_ENUM(ALARM_REALTIME_FREEZER); | 
|  | 15 | TRACE_DEFINE_ENUM(ALARM_BOOTTIME_FREEZER); | 
|  | 16 |  | 
|  | 17 | #define show_alarm_type(type)	__print_flags(type, " | ",	\ | 
|  | 18 | { 1 << ALARM_REALTIME, "REALTIME" },			\ | 
|  | 19 | { 1 << ALARM_BOOTTIME, "BOOTTIME" },			\ | 
|  | 20 | { 1 << ALARM_REALTIME_FREEZER, "REALTIME Freezer" },	\ | 
|  | 21 | { 1 << ALARM_BOOTTIME_FREEZER, "BOOTTIME Freezer" }) | 
|  | 22 |  | 
|  | 23 | TRACE_EVENT(alarmtimer_suspend, | 
|  | 24 |  | 
|  | 25 | TP_PROTO(ktime_t expires, int flag), | 
|  | 26 |  | 
|  | 27 | TP_ARGS(expires, flag), | 
|  | 28 |  | 
|  | 29 | TP_STRUCT__entry( | 
|  | 30 | __field(s64, expires) | 
|  | 31 | __field(unsigned char, alarm_type) | 
|  | 32 | ), | 
|  | 33 |  | 
|  | 34 | TP_fast_assign( | 
|  | 35 | __entry->expires = expires; | 
|  | 36 | __entry->alarm_type = flag; | 
|  | 37 | ), | 
|  | 38 |  | 
|  | 39 | TP_printk("alarmtimer type:%s expires:%llu", | 
|  | 40 | show_alarm_type((1 << __entry->alarm_type)), | 
|  | 41 | __entry->expires | 
|  | 42 | ) | 
|  | 43 | ); | 
|  | 44 |  | 
|  | 45 | DECLARE_EVENT_CLASS(alarm_class, | 
|  | 46 |  | 
|  | 47 | TP_PROTO(struct alarm *alarm, ktime_t now), | 
|  | 48 |  | 
|  | 49 | TP_ARGS(alarm, now), | 
|  | 50 |  | 
|  | 51 | TP_STRUCT__entry( | 
|  | 52 | __field(void *,	alarm) | 
|  | 53 | __field(unsigned char, alarm_type) | 
|  | 54 | __field(s64, expires) | 
|  | 55 | __field(s64, now) | 
|  | 56 | ), | 
|  | 57 |  | 
|  | 58 | TP_fast_assign( | 
|  | 59 | __entry->alarm = alarm; | 
|  | 60 | __entry->alarm_type = alarm->type; | 
|  | 61 | __entry->expires = alarm->node.expires; | 
|  | 62 | __entry->now = now; | 
|  | 63 | ), | 
|  | 64 |  | 
|  | 65 | TP_printk("alarmtimer:%p type:%s expires:%llu now:%llu", | 
|  | 66 | __entry->alarm, | 
|  | 67 | show_alarm_type((1 << __entry->alarm_type)), | 
|  | 68 | __entry->expires, | 
|  | 69 | __entry->now | 
|  | 70 | ) | 
|  | 71 | ); | 
|  | 72 |  | 
|  | 73 | DEFINE_EVENT(alarm_class, alarmtimer_fired, | 
|  | 74 |  | 
|  | 75 | TP_PROTO(struct alarm *alarm, ktime_t now), | 
|  | 76 |  | 
|  | 77 | TP_ARGS(alarm, now) | 
|  | 78 | ); | 
|  | 79 |  | 
|  | 80 | DEFINE_EVENT(alarm_class, alarmtimer_start, | 
|  | 81 |  | 
|  | 82 | TP_PROTO(struct alarm *alarm, ktime_t now), | 
|  | 83 |  | 
|  | 84 | TP_ARGS(alarm, now) | 
|  | 85 | ); | 
|  | 86 |  | 
|  | 87 | DEFINE_EVENT(alarm_class, alarmtimer_cancel, | 
|  | 88 |  | 
|  | 89 | TP_PROTO(struct alarm *alarm, ktime_t now), | 
|  | 90 |  | 
|  | 91 | TP_ARGS(alarm, now) | 
|  | 92 | ); | 
|  | 93 |  | 
|  | 94 | #endif /* _TRACE_ALARMTIMER_H */ | 
|  | 95 |  | 
|  | 96 | /* This part must be outside protection */ | 
|  | 97 | #include <trace/define_trace.h> |