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