Fix: ACCESS_ONCE() removed in kernel 4.15
[lttng-modules.git] / instrumentation / events / lttng-module / i2c.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM i2c
3
4 #if !defined(LTTNG_TRACE_I2C_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define LTTNG_TRACE_I2C_H
6
7 #include <probes/lttng-tracepoint-event.h>
8
9 /*
10 * __i2c_transfer() write request
11 */
12 LTTNG_TRACEPOINT_EVENT_CODE(i2c_write,
13
14 TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
15 int num),
16
17 TP_ARGS(adap, msg, num),
18
19 TP_locvar(
20 int extract_sensitive_payload;
21 ),
22
23 TP_code_pre(
24 tp_locvar->extract_sensitive_payload =
25 READ_ONCE(extract_sensitive_payload);
26 ),
27
28 TP_FIELDS(
29 ctf_integer(int, adapter_nr, adap->nr)
30 ctf_integer(__u16, msg_nr, num)
31 ctf_integer(__u16, addr, msg->addr)
32 ctf_integer(__u16, flags, msg->flags)
33 ctf_integer(__u16, len, msg->len)
34 ctf_sequence_hex(__u8, buf,
35 tp_locvar->extract_sensitive_payload ?
36 msg->buf : NULL,
37 __u16,
38 tp_locvar->extract_sensitive_payload ?
39 msg->len : 0)
40 ),
41
42 TP_code_post()
43 )
44
45 /*
46 * __i2c_transfer() read request
47 */
48 LTTNG_TRACEPOINT_EVENT(i2c_read,
49
50 TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
51 int num),
52
53 TP_ARGS(adap, msg, num),
54
55 TP_FIELDS(
56 ctf_integer(int, adapter_nr, adap->nr)
57 ctf_integer(__u16, msg_nr, num)
58 ctf_integer(__u16, addr, msg->addr)
59 ctf_integer(__u16, flags, msg->flags)
60 ctf_integer(__u16, len, msg->len)
61 )
62 )
63
64 /*
65 * __i2c_transfer() read reply
66 */
67 LTTNG_TRACEPOINT_EVENT_CODE(i2c_reply,
68
69 TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
70 int num),
71
72 TP_ARGS(adap, msg, num),
73
74 TP_locvar(
75 int extract_sensitive_payload;
76 ),
77
78 TP_code_pre(
79 tp_locvar->extract_sensitive_payload =
80 READ_ONCE(extract_sensitive_payload);
81 ),
82
83 TP_FIELDS(
84 ctf_integer(int, adapter_nr, adap->nr)
85 ctf_integer(__u16, msg_nr, num)
86 ctf_integer(__u16, addr, msg->addr)
87 ctf_integer(__u16, flags, msg->flags)
88 ctf_integer(__u16, len, msg->len)
89 ctf_sequence_hex(__u8, buf,
90 tp_locvar->extract_sensitive_payload ?
91 msg->buf : NULL,
92 __u16,
93 tp_locvar->extract_sensitive_payload ?
94 msg->len : 0)
95 ),
96
97 TP_code_post()
98 )
99
100 /*
101 * __i2c_transfer() result
102 */
103 LTTNG_TRACEPOINT_EVENT(i2c_result,
104
105 TP_PROTO(const struct i2c_adapter *adap, int num, int ret),
106
107 TP_ARGS(adap, num, ret),
108
109 TP_FIELDS(
110 ctf_integer(int, adapter_nr, adap->nr)
111 ctf_integer(__u16, nr_msgs, num)
112 ctf_integer(__s16, ret, ret)
113 )
114 )
115
116 #endif /* LTTNG_TRACE_I2C_H */
117
118 /* This part must be outside protection */
119 #include <probes/define_trace.h>
This page took 0.033701 seconds and 4 git commands to generate.