Branch data Line data Source code
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 : 3 : 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 : 3 : 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 : 0 : 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 : 0 : 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 : 0 : 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>