1  #undef TRACE_SYSTEM
2  #define TRACE_SYSTEM rtc
3  
4  #if !defined(_TRACE_RTC_H) || defined(TRACE_HEADER_MULTI_READ)
5  #define _TRACE_RTC_H
6  
7  #include <linux/rtc.h>
8  #include <linux/tracepoint.h>
9  
10  DECLARE_EVENT_CLASS(rtc_time_alarm_class,
11  
12  	TP_PROTO(time64_t secs, int err),
13  
14  	TP_ARGS(secs, err),
15  
16  	TP_STRUCT__entry(
17  		__field(time64_t, secs)
18  		__field(int, err)
19  	),
20  
21  	TP_fast_assign(
22  		__entry->secs = secs;
23  		__entry->err = err;
24  	),
25  
26  	TP_printk("UTC (%lld) (%d)",
27  		  __entry->secs, __entry->err
28  	)
29  );
30  
31  DEFINE_EVENT(rtc_time_alarm_class, rtc_set_time,
32  
33  	TP_PROTO(time64_t secs, int err),
34  
35  	TP_ARGS(secs, err)
36  );
37  
38  DEFINE_EVENT(rtc_time_alarm_class, rtc_read_time,
39  
40  	TP_PROTO(time64_t secs, int err),
41  
42  	TP_ARGS(secs, err)
43  );
44  
45  DEFINE_EVENT(rtc_time_alarm_class, rtc_set_alarm,
46  
47  	TP_PROTO(time64_t secs, int err),
48  
49  	TP_ARGS(secs, err)
50  );
51  
52  DEFINE_EVENT(rtc_time_alarm_class, rtc_read_alarm,
53  
54  	TP_PROTO(time64_t secs, int err),
55  
56  	TP_ARGS(secs, err)
57  );
58  
59  TRACE_EVENT(rtc_irq_set_freq,
60  
61  	TP_PROTO(int freq, int err),
62  
63  	TP_ARGS(freq, err),
64  
65  	TP_STRUCT__entry(
66  		__field(int, freq)
67  		__field(int, err)
68  	),
69  
70  	TP_fast_assign(
71  		__entry->freq = freq;
72  		__entry->err = err;
73  	),
74  
75  	TP_printk("set RTC periodic IRQ frequency:%u (%d)",
76  		  __entry->freq, __entry->err
77  	)
78  );
79  
80  TRACE_EVENT(rtc_irq_set_state,
81  
82  	TP_PROTO(int enabled, int err),
83  
84  	TP_ARGS(enabled, err),
85  
86  	TP_STRUCT__entry(
87  		__field(int, enabled)
88  		__field(int, err)
89  	),
90  
91  	TP_fast_assign(
92  		__entry->enabled = enabled;
93  		__entry->err = err;
94  	),
95  
96  	TP_printk("%s RTC 2^N Hz periodic IRQs (%d)",
97  		  __entry->enabled ? "enable" : "disable",
98  		  __entry->err
99  	)
100  );
101  
102  TRACE_EVENT(rtc_alarm_irq_enable,
103  
104  	TP_PROTO(unsigned int enabled, int err),
105  
106  	TP_ARGS(enabled, err),
107  
108  	TP_STRUCT__entry(
109  		__field(unsigned int, enabled)
110  		__field(int, err)
111  	),
112  
113  	TP_fast_assign(
114  		__entry->enabled = enabled;
115  		__entry->err = err;
116  	),
117  
118  	TP_printk("%s RTC alarm IRQ (%d)",
119  		  __entry->enabled ? "enable" : "disable",
120  		  __entry->err
121  	)
122  );
123  
124  DECLARE_EVENT_CLASS(rtc_offset_class,
125  
126  	TP_PROTO(long offset, int err),
127  
128  	TP_ARGS(offset, err),
129  
130  	TP_STRUCT__entry(
131  		__field(long, offset)
132  		__field(int, err)
133  	),
134  
135  	TP_fast_assign(
136  		__entry->offset = offset;
137  		__entry->err = err;
138  	),
139  
140  	TP_printk("RTC offset: %ld (%d)",
141  		  __entry->offset, __entry->err
142  	)
143  );
144  
145  DEFINE_EVENT(rtc_offset_class, rtc_set_offset,
146  
147  	TP_PROTO(long offset, int err),
148  
149  	TP_ARGS(offset, err)
150  );
151  
152  DEFINE_EVENT(rtc_offset_class, rtc_read_offset,
153  
154  	TP_PROTO(long offset, int err),
155  
156  	TP_ARGS(offset, err)
157  );
158  
159  DECLARE_EVENT_CLASS(rtc_timer_class,
160  
161  	TP_PROTO(struct rtc_timer *timer),
162  
163  	TP_ARGS(timer),
164  
165  	TP_STRUCT__entry(
166  		__field(struct rtc_timer *, timer)
167  		__field(ktime_t, expires)
168  		__field(ktime_t, period)
169  	),
170  
171  	TP_fast_assign(
172  		__entry->timer = timer;
173  		__entry->expires = timer->node.expires;
174  		__entry->period = timer->period;
175  	),
176  
177  	TP_printk("RTC timer:(%p) expires:%lld period:%lld",
178  		  __entry->timer, __entry->expires, __entry->period
179  	)
180  );
181  
182  DEFINE_EVENT(rtc_timer_class, rtc_timer_enqueue,
183  
184  	TP_PROTO(struct rtc_timer *timer),
185  
186  	TP_ARGS(timer)
187  );
188  
189  DEFINE_EVENT(rtc_timer_class, rtc_timer_dequeue,
190  
191  	TP_PROTO(struct rtc_timer *timer),
192  
193  	TP_ARGS(timer)
194  );
195  
196  DEFINE_EVENT(rtc_timer_class, rtc_timer_fired,
197  
198  	TP_PROTO(struct rtc_timer *timer),
199  
200  	TP_ARGS(timer)
201  );
202  
203  #endif /* _TRACE_RTC_H */
204  
205  /* This part must be outside protection */
206  #include <trace/define_trace.h>
207