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
11DECLARE_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
30DEFINE_EVENT(watchdog_template, watchdog_start,
31	TP_PROTO(struct watchdog_device *wdd, int err),
32	TP_ARGS(wdd, err));
33
34DEFINE_EVENT(watchdog_template, watchdog_ping,
35	TP_PROTO(struct watchdog_device *wdd, int err),
36	TP_ARGS(wdd, err));
37
38DEFINE_EVENT(watchdog_template, watchdog_stop,
39	TP_PROTO(struct watchdog_device *wdd, int err),
40	TP_ARGS(wdd, err));
41
42TRACE_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