Fix: ACCESS_ONCE() removed in kernel 4.15
[lttng-modules.git] / instrumentation / events / lttng-module / i2c.h
CommitLineData
2ca39464
SM
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 */
12LTTNG_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 =
a8f2d0c7 25 READ_ONCE(extract_sensitive_payload);
2ca39464
SM
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 */
48LTTNG_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 */
67LTTNG_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 =
a8f2d0c7 80 READ_ONCE(extract_sensitive_payload);
2ca39464
SM
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 */
103LTTNG_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.026733 seconds and 4 git commands to generate.