98 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM alarmtimer4 5#if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_ALARMTIMER_H7 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->expires42 )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->now70 )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>98