1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM watchdog
4 
5 #if !defined(_TRACE_WATCHDOG_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_WATCHDOG_H
7 
8 #include <linux/watchdog.h>
9 #include <linux/tracepoint.h>
10 
11 DECLARE_EVENT_CLASS(watchdog_template,
12 
13 	TP_PROTO(struct watchdog_device *wdd, int err),
14 
15 	TP_ARGS(wdd, err),
16 
17 	TP_STRUCT__entry(
18 		__field(int, id)
19 		__field(int, err)
20 	),
21 
22 	TP_fast_assign(
23 		__entry->id = wdd->id;
24 		__entry->err = err;
25 	),
26 
27 	TP_printk("watchdog%d err=%d", __entry->id, __entry->err)
28 );
29 
30 DEFINE_EVENT(watchdog_template, watchdog_start,
31 	TP_PROTO(struct watchdog_device *wdd, int err),
32 	TP_ARGS(wdd, err));
33 
34 DEFINE_EVENT(watchdog_template, watchdog_ping,
35 	TP_PROTO(struct watchdog_device *wdd, int err),
36 	TP_ARGS(wdd, err));
37 
38 DEFINE_EVENT(watchdog_template, watchdog_stop,
39 	TP_PROTO(struct watchdog_device *wdd, int err),
40 	TP_ARGS(wdd, err));
41 
42 TRACE_EVENT(watchdog_set_timeout,
43 
44 	TP_PROTO(struct watchdog_device *wdd, unsigned int timeout, int err),
45 
46 	TP_ARGS(wdd, timeout, err),
47 
48 	TP_STRUCT__entry(
49 		__field(int, id)
50 		__field(unsigned int, timeout)
51 		__field(int, err)
52 	),
53 
54 	TP_fast_assign(
55 		__entry->id = wdd->id;
56 		__entry->timeout = timeout;
57 		__entry->err = err;
58 	),
59 
60 	TP_printk("watchdog%d timeout=%u err=%d", __entry->id, __entry->timeout, __entry->err)
61 );
62 
63 #endif /* !defined(_TRACE_WATCHDOG_H) || defined(TRACE_HEADER_MULTI_READ) */
64 
65 /* This part must be outside protection */
66 #include <trace/define_trace.h>
67