Commit | Line | Data |
---|---|---|
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 | */ | |
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 = | |
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 | */ | |
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 = | |
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 | */ | |
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> |