1/* SPDX-License-Identifier: GPL-2.0 */
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM hwmon
4
5#if !defined(_TRACE_HWMON_H) || defined(TRACE_HEADER_MULTI_READ)
6#define _TRACE_HWMON_H
7
8#include <linux/tracepoint.h>
9
10DECLARE_EVENT_CLASS(hwmon_attr_class,
11
12	TP_PROTO(int index, const char *attr_name, long val),
13
14	TP_ARGS(index, attr_name, val),
15
16	TP_STRUCT__entry(
17		__field(int, index)
18		__string(attr_name, attr_name)
19		__field(long, val)
20	),
21
22	TP_fast_assign(
23		__entry->index = index;
24		__assign_str(attr_name, attr_name);
25		__entry->val = val;
26	),
27
28	TP_printk("index=%d, attr_name=%s, val=%ld",
29		  __entry->index,  __get_str(attr_name), __entry->val)
30);
31
32DEFINE_EVENT(hwmon_attr_class, hwmon_attr_show,
33
34	TP_PROTO(int index, const char *attr_name, long val),
35
36	TP_ARGS(index, attr_name, val)
37);
38
39DEFINE_EVENT(hwmon_attr_class, hwmon_attr_store,
40
41	TP_PROTO(int index, const char *attr_name, long val),
42
43	TP_ARGS(index, attr_name, val)
44);
45
46TRACE_EVENT(hwmon_attr_show_string,
47
48	TP_PROTO(int index, const char *attr_name, const char *s),
49
50	TP_ARGS(index, attr_name, s),
51
52	TP_STRUCT__entry(
53		__field(int, index)
54		__string(attr_name, attr_name)
55		__string(label, s)
56	),
57
58	TP_fast_assign(
59		__entry->index = index;
60		__assign_str(attr_name, attr_name);
61		__assign_str(label, s);
62	),
63
64	TP_printk("index=%d, attr_name=%s, val=%s",
65		  __entry->index, __get_str(attr_name), __get_str(label))
66);
67
68#endif /* _TRACE_HWMON_H */
69
70/* This part must be outside protection */
71#include <trace/define_trace.h>
72