alarmtimer.h 2.1 KB

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