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 0 : 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 0 : 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>
|