forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
3.3 KiB
206 lines
3.3 KiB
#undef TRACE_SYSTEM |
|
#define TRACE_SYSTEM rtc |
|
|
|
#if !defined(_TRACE_RTC_H) || defined(TRACE_HEADER_MULTI_READ) |
|
#define _TRACE_RTC_H |
|
|
|
#include <linux/rtc.h> |
|
#include <linux/tracepoint.h> |
|
|
|
DECLARE_EVENT_CLASS(rtc_time_alarm_class, |
|
|
|
TP_PROTO(time64_t secs, int err), |
|
|
|
TP_ARGS(secs, err), |
|
|
|
TP_STRUCT__entry( |
|
__field(time64_t, secs) |
|
__field(int, err) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->secs = secs; |
|
__entry->err = err; |
|
), |
|
|
|
TP_printk("UTC (%lld) (%d)", |
|
__entry->secs, __entry->err |
|
) |
|
); |
|
|
|
DEFINE_EVENT(rtc_time_alarm_class, rtc_set_time, |
|
|
|
TP_PROTO(time64_t secs, int err), |
|
|
|
TP_ARGS(secs, err) |
|
); |
|
|
|
DEFINE_EVENT(rtc_time_alarm_class, rtc_read_time, |
|
|
|
TP_PROTO(time64_t secs, int err), |
|
|
|
TP_ARGS(secs, err) |
|
); |
|
|
|
DEFINE_EVENT(rtc_time_alarm_class, rtc_set_alarm, |
|
|
|
TP_PROTO(time64_t secs, int err), |
|
|
|
TP_ARGS(secs, err) |
|
); |
|
|
|
DEFINE_EVENT(rtc_time_alarm_class, rtc_read_alarm, |
|
|
|
TP_PROTO(time64_t secs, int err), |
|
|
|
TP_ARGS(secs, err) |
|
); |
|
|
|
TRACE_EVENT(rtc_irq_set_freq, |
|
|
|
TP_PROTO(int freq, int err), |
|
|
|
TP_ARGS(freq, err), |
|
|
|
TP_STRUCT__entry( |
|
__field(int, freq) |
|
__field(int, err) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->freq = freq; |
|
__entry->err = err; |
|
), |
|
|
|
TP_printk("set RTC periodic IRQ frequency:%u (%d)", |
|
__entry->freq, __entry->err |
|
) |
|
); |
|
|
|
TRACE_EVENT(rtc_irq_set_state, |
|
|
|
TP_PROTO(int enabled, int err), |
|
|
|
TP_ARGS(enabled, err), |
|
|
|
TP_STRUCT__entry( |
|
__field(int, enabled) |
|
__field(int, err) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->enabled = enabled; |
|
__entry->err = err; |
|
), |
|
|
|
TP_printk("%s RTC 2^N Hz periodic IRQs (%d)", |
|
__entry->enabled ? "enable" : "disable", |
|
__entry->err |
|
) |
|
); |
|
|
|
TRACE_EVENT(rtc_alarm_irq_enable, |
|
|
|
TP_PROTO(unsigned int enabled, int err), |
|
|
|
TP_ARGS(enabled, err), |
|
|
|
TP_STRUCT__entry( |
|
__field(unsigned int, enabled) |
|
__field(int, err) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->enabled = enabled; |
|
__entry->err = err; |
|
), |
|
|
|
TP_printk("%s RTC alarm IRQ (%d)", |
|
__entry->enabled ? "enable" : "disable", |
|
__entry->err |
|
) |
|
); |
|
|
|
DECLARE_EVENT_CLASS(rtc_offset_class, |
|
|
|
TP_PROTO(long offset, int err), |
|
|
|
TP_ARGS(offset, err), |
|
|
|
TP_STRUCT__entry( |
|
__field(long, offset) |
|
__field(int, err) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->offset = offset; |
|
__entry->err = err; |
|
), |
|
|
|
TP_printk("RTC offset: %ld (%d)", |
|
__entry->offset, __entry->err |
|
) |
|
); |
|
|
|
DEFINE_EVENT(rtc_offset_class, rtc_set_offset, |
|
|
|
TP_PROTO(long offset, int err), |
|
|
|
TP_ARGS(offset, err) |
|
); |
|
|
|
DEFINE_EVENT(rtc_offset_class, rtc_read_offset, |
|
|
|
TP_PROTO(long offset, int err), |
|
|
|
TP_ARGS(offset, err) |
|
); |
|
|
|
DECLARE_EVENT_CLASS(rtc_timer_class, |
|
|
|
TP_PROTO(struct rtc_timer *timer), |
|
|
|
TP_ARGS(timer), |
|
|
|
TP_STRUCT__entry( |
|
__field(struct rtc_timer *, timer) |
|
__field(ktime_t, expires) |
|
__field(ktime_t, period) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->timer = timer; |
|
__entry->expires = timer->node.expires; |
|
__entry->period = timer->period; |
|
), |
|
|
|
TP_printk("RTC timer:(%p) expires:%lld period:%lld", |
|
__entry->timer, __entry->expires, __entry->period |
|
) |
|
); |
|
|
|
DEFINE_EVENT(rtc_timer_class, rtc_timer_enqueue, |
|
|
|
TP_PROTO(struct rtc_timer *timer), |
|
|
|
TP_ARGS(timer) |
|
); |
|
|
|
DEFINE_EVENT(rtc_timer_class, rtc_timer_dequeue, |
|
|
|
TP_PROTO(struct rtc_timer *timer), |
|
|
|
TP_ARGS(timer) |
|
); |
|
|
|
DEFINE_EVENT(rtc_timer_class, rtc_timer_fired, |
|
|
|
TP_PROTO(struct rtc_timer *timer), |
|
|
|
TP_ARGS(timer) |
|
); |
|
|
|
#endif /* _TRACE_RTC_H */ |
|
|
|
/* This part must be outside protection */ |
|
#include <trace/define_trace.h>
|
|
|