linux/include/trace/events/alarmtimer.h
<<
>>
Prefs
   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>
  98