1 /* SPDX-License-Identifier: GPL-2.0 */
3 #define TRACE_SYSTEM alarmtimer
5 #if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_ALARMTIMER_H
8 #include <linux/alarmtimer.h>
10 #include <linux/tracepoint.h>
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
);
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" })
23 TRACE_EVENT(alarmtimer_suspend
,
25 TP_PROTO(ktime_t expires
, int flag
),
27 TP_ARGS(expires
, flag
),
31 __field(unsigned char, alarm_type
)
35 __entry
->expires
= expires
;
36 __entry
->alarm_type
= flag
;
39 TP_printk("alarmtimer type:%s expires:%llu",
40 show_alarm_type((1 << __entry
->alarm_type
)),
45 DECLARE_EVENT_CLASS(alarm_class
,
47 TP_PROTO(struct alarm
*alarm
, ktime_t now
),
52 __field(void *, alarm
)
53 __field(unsigned char, alarm_type
)
59 __entry
->alarm
= alarm
;
60 __entry
->alarm_type
= alarm
->type
;
61 __entry
->expires
= alarm
->node
.expires
;
65 TP_printk("alarmtimer:%p type:%s expires:%llu now:%llu",
67 show_alarm_type((1 << __entry
->alarm_type
)),
73 DEFINE_EVENT(alarm_class
, alarmtimer_fired
,
75 TP_PROTO(struct alarm
*alarm
, ktime_t now
),
80 DEFINE_EVENT(alarm_class
, alarmtimer_start
,
82 TP_PROTO(struct alarm
*alarm
, ktime_t now
),
87 DEFINE_EVENT(alarm_class
, alarmtimer_cancel
,
89 TP_PROTO(struct alarm
*alarm
, ktime_t now
),
94 #endif /* _TRACE_ALARMTIMER_H */
96 /* This part must be outside protection */
97 #include <trace/define_trace.h>