diff options
author | Guido Günther <agx@sigxcpu.org> | 2015-04-30 11:44:55 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2015-04-30 12:48:09 -0400 |
commit | 1cc800e7aabb40e2d8ffc3d259e6a153007fa9eb (patch) | |
tree | 4f96651ce009ec24d320e8d384a1f1569ca6dcf1 /net | |
parent | 42fb23e2f57accbed69804e6d72ea3a88b8a84c4 (diff) |
ieee802154: Add trace events for rdev->ops
Enabling tracing via
echo 1 > /sys/kernel/debug/tracing/events/cfg802154/enable
enables event tracing like
iwpan dev wpan0 set pan_id 0xbeef
cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 2/2 #P:1
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
iwpan-2663 [000] .... 170.369142: 802154_rdev_set_pan_id: phy0, wpan_dev(1), pan id: 0xbeef
iwpan-2663 [000] .... 170.369177: 802154_rdev_return_int: phy0, returned: 0
Signed-off-by: Guido Günther <agx@sigxcpu.org>
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/ieee802154/Makefile | 4 | ||||
-rw-r--r-- | net/ieee802154/rdev-ops.h | 77 | ||||
-rw-r--r-- | net/ieee802154/trace.c | 7 | ||||
-rw-r--r-- | net/ieee802154/trace.h | 246 |
4 files changed, 322 insertions, 12 deletions
diff --git a/net/ieee802154/Makefile b/net/ieee802154/Makefile index 05dab2957cd4..4adfd4d5471b 100644 --- a/net/ieee802154/Makefile +++ b/net/ieee802154/Makefile | |||
@@ -3,7 +3,9 @@ obj-$(CONFIG_IEEE802154_SOCKET) += ieee802154_socket.o | |||
3 | obj-y += 6lowpan/ | 3 | obj-y += 6lowpan/ |
4 | 4 | ||
5 | ieee802154-y := netlink.o nl-mac.o nl-phy.o nl_policy.o core.o \ | 5 | ieee802154-y := netlink.o nl-mac.o nl-phy.o nl_policy.o core.o \ |
6 | header_ops.o sysfs.o nl802154.o | 6 | header_ops.o sysfs.o nl802154.o trace.o |
7 | ieee802154_socket-y := socket.o | 7 | ieee802154_socket-y := socket.o |
8 | 8 | ||
9 | CFLAGS_trace.o := -I$(src) | ||
10 | |||
9 | ccflags-y += -D__CHECK_ENDIAN__ | 11 | ccflags-y += -D__CHECK_ENDIAN__ |
diff --git a/net/ieee802154/rdev-ops.h b/net/ieee802154/rdev-ops.h index 7c46732fad2b..624413ee095f 100644 --- a/net/ieee802154/rdev-ops.h +++ b/net/ieee802154/rdev-ops.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <net/cfg802154.h> | 4 | #include <net/cfg802154.h> |
5 | 5 | ||
6 | #include "core.h" | 6 | #include "core.h" |
7 | #include "trace.h" | ||
7 | 8 | ||
8 | static inline struct net_device * | 9 | static inline struct net_device * |
9 | rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, | 10 | rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, |
@@ -24,73 +25,127 @@ static inline int | |||
24 | rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name, | 25 | rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name, |
25 | enum nl802154_iftype type, __le64 extended_addr) | 26 | enum nl802154_iftype type, __le64 extended_addr) |
26 | { | 27 | { |
27 | return rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, type, | 28 | int ret; |
29 | |||
30 | trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type, | ||
28 | extended_addr); | 31 | extended_addr); |
32 | ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, type, | ||
33 | extended_addr); | ||
34 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
35 | return ret; | ||
29 | } | 36 | } |
30 | 37 | ||
31 | static inline int | 38 | static inline int |
32 | rdev_del_virtual_intf(struct cfg802154_registered_device *rdev, | 39 | rdev_del_virtual_intf(struct cfg802154_registered_device *rdev, |
33 | struct wpan_dev *wpan_dev) | 40 | struct wpan_dev *wpan_dev) |
34 | { | 41 | { |
35 | return rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev); | 42 | int ret; |
43 | |||
44 | trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev); | ||
45 | ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev); | ||
46 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
47 | return ret; | ||
36 | } | 48 | } |
37 | 49 | ||
38 | static inline int | 50 | static inline int |
39 | rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel) | 51 | rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel) |
40 | { | 52 | { |
41 | return rdev->ops->set_channel(&rdev->wpan_phy, page, channel); | 53 | int ret; |
54 | |||
55 | trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel); | ||
56 | ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel); | ||
57 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
58 | return ret; | ||
42 | } | 59 | } |
43 | 60 | ||
44 | static inline int | 61 | static inline int |
45 | rdev_set_cca_mode(struct cfg802154_registered_device *rdev, | 62 | rdev_set_cca_mode(struct cfg802154_registered_device *rdev, |
46 | const struct wpan_phy_cca *cca) | 63 | const struct wpan_phy_cca *cca) |
47 | { | 64 | { |
48 | return rdev->ops->set_cca_mode(&rdev->wpan_phy, cca); | 65 | int ret; |
66 | |||
67 | trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca); | ||
68 | ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca); | ||
69 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
70 | return ret; | ||
49 | } | 71 | } |
50 | 72 | ||
51 | static inline int | 73 | static inline int |
52 | rdev_set_pan_id(struct cfg802154_registered_device *rdev, | 74 | rdev_set_pan_id(struct cfg802154_registered_device *rdev, |
53 | struct wpan_dev *wpan_dev, __le16 pan_id) | 75 | struct wpan_dev *wpan_dev, __le16 pan_id) |
54 | { | 76 | { |
55 | return rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); | 77 | int ret; |
78 | |||
79 | trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); | ||
80 | ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); | ||
81 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
82 | return ret; | ||
56 | } | 83 | } |
57 | 84 | ||
58 | static inline int | 85 | static inline int |
59 | rdev_set_short_addr(struct cfg802154_registered_device *rdev, | 86 | rdev_set_short_addr(struct cfg802154_registered_device *rdev, |
60 | struct wpan_dev *wpan_dev, __le16 short_addr) | 87 | struct wpan_dev *wpan_dev, __le16 short_addr) |
61 | { | 88 | { |
62 | return rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); | 89 | int ret; |
90 | |||
91 | trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); | ||
92 | ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); | ||
93 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
94 | return ret; | ||
63 | } | 95 | } |
64 | 96 | ||
65 | static inline int | 97 | static inline int |
66 | rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev, | 98 | rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev, |
67 | struct wpan_dev *wpan_dev, u8 min_be, u8 max_be) | 99 | struct wpan_dev *wpan_dev, u8 min_be, u8 max_be) |
68 | { | 100 | { |
69 | return rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev, | 101 | int ret; |
102 | |||
103 | trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev, | ||
70 | min_be, max_be); | 104 | min_be, max_be); |
105 | ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev, | ||
106 | min_be, max_be); | ||
107 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
108 | return ret; | ||
71 | } | 109 | } |
72 | 110 | ||
73 | static inline int | 111 | static inline int |
74 | rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev, | 112 | rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev, |
75 | struct wpan_dev *wpan_dev, u8 max_csma_backoffs) | 113 | struct wpan_dev *wpan_dev, u8 max_csma_backoffs) |
76 | { | 114 | { |
77 | return rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev, | 115 | int ret; |
78 | max_csma_backoffs); | 116 | |
117 | trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev, | ||
118 | max_csma_backoffs); | ||
119 | ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev, | ||
120 | max_csma_backoffs); | ||
121 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
122 | return ret; | ||
79 | } | 123 | } |
80 | 124 | ||
81 | static inline int | 125 | static inline int |
82 | rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev, | 126 | rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev, |
83 | struct wpan_dev *wpan_dev, s8 max_frame_retries) | 127 | struct wpan_dev *wpan_dev, s8 max_frame_retries) |
84 | { | 128 | { |
85 | return rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev, | 129 | int ret; |
130 | |||
131 | trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev, | ||
86 | max_frame_retries); | 132 | max_frame_retries); |
133 | ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev, | ||
134 | max_frame_retries); | ||
135 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
136 | return ret; | ||
87 | } | 137 | } |
88 | 138 | ||
89 | static inline int | 139 | static inline int |
90 | rdev_set_lbt_mode(struct cfg802154_registered_device *rdev, | 140 | rdev_set_lbt_mode(struct cfg802154_registered_device *rdev, |
91 | struct wpan_dev *wpan_dev, bool mode) | 141 | struct wpan_dev *wpan_dev, bool mode) |
92 | { | 142 | { |
93 | return rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); | 143 | int ret; |
144 | |||
145 | trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); | ||
146 | ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); | ||
147 | trace_802154_rdev_return_int(&rdev->wpan_phy, ret); | ||
148 | return ret; | ||
94 | } | 149 | } |
95 | 150 | ||
96 | #endif /* __CFG802154_RDEV_OPS */ | 151 | #endif /* __CFG802154_RDEV_OPS */ |
diff --git a/net/ieee802154/trace.c b/net/ieee802154/trace.c new file mode 100644 index 000000000000..95f997fad755 --- /dev/null +++ b/net/ieee802154/trace.c | |||
@@ -0,0 +1,7 @@ | |||
1 | #include <linux/module.h> | ||
2 | |||
3 | #ifndef __CHECKER__ | ||
4 | #define CREATE_TRACE_POINTS | ||
5 | #include "trace.h" | ||
6 | |||
7 | #endif | ||
diff --git a/net/ieee802154/trace.h b/net/ieee802154/trace.h new file mode 100644 index 000000000000..8ed9f975de01 --- /dev/null +++ b/net/ieee802154/trace.h | |||
@@ -0,0 +1,246 @@ | |||
1 | /* Based on net/wireless/tracing.h */ | ||
2 | |||
3 | #undef TRACE_SYSTEM | ||
4 | #define TRACE_SYSTEM cfg802154 | ||
5 | |||
6 | #if !defined(__RDEV_CFG802154_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ) | ||
7 | #define __RDEV_CFG802154_OPS_TRACE | ||
8 | |||
9 | #include <linux/tracepoint.h> | ||
10 | |||
11 | #include <net/cfg802154.h> | ||
12 | |||
13 | #define MAXNAME 32 | ||
14 | #define WPAN_PHY_ENTRY __array(char, wpan_phy_name, MAXNAME) | ||
15 | #define WPAN_PHY_ASSIGN strlcpy(__entry->wpan_phy_name, \ | ||
16 | wpan_phy_name(wpan_phy), \ | ||
17 | MAXNAME) | ||
18 | #define WPAN_PHY_PR_FMT "%s" | ||
19 | #define WPAN_PHY_PR_ARG __entry->wpan_phy_name | ||
20 | |||
21 | #define WPAN_DEV_ENTRY __field(u32, identifier) | ||
22 | #define WPAN_DEV_ASSIGN (__entry->identifier) = (!IS_ERR_OR_NULL(wpan_dev) \ | ||
23 | ? wpan_dev->identifier : 0) | ||
24 | #define WPAN_DEV_PR_FMT "wpan_dev(%u)" | ||
25 | #define WPAN_DEV_PR_ARG (__entry->identifier) | ||
26 | |||
27 | #define WPAN_CCA_ENTRY __field(enum nl802154_cca_modes, cca_mode) \ | ||
28 | __field(enum nl802154_cca_opts, cca_opt) | ||
29 | #define WPAN_CCA_ASSIGN \ | ||
30 | do { \ | ||
31 | (__entry->cca_mode) = cca->mode; \ | ||
32 | (__entry->cca_opt) = cca->opt; \ | ||
33 | } while (0) | ||
34 | #define WPAN_CCA_PR_FMT "cca_mode: %d, cca_opt: %d" | ||
35 | #define WPAN_CCA_PR_ARG __entry->cca_mode, __entry->cca_opt | ||
36 | |||
37 | #define BOOL_TO_STR(bo) (bo) ? "true" : "false" | ||
38 | |||
39 | /************************************************************* | ||
40 | * rdev->ops traces * | ||
41 | *************************************************************/ | ||
42 | |||
43 | TRACE_EVENT(802154_rdev_add_virtual_intf, | ||
44 | TP_PROTO(struct wpan_phy *wpan_phy, char *name, | ||
45 | enum nl802154_iftype type, __le64 extended_addr), | ||
46 | TP_ARGS(wpan_phy, name, type, extended_addr), | ||
47 | TP_STRUCT__entry( | ||
48 | WPAN_PHY_ENTRY | ||
49 | __string(vir_intf_name, name ? name : "<noname>") | ||
50 | __field(enum nl802154_iftype, type) | ||
51 | __field(__le64, extended_addr) | ||
52 | ), | ||
53 | TP_fast_assign( | ||
54 | WPAN_PHY_ASSIGN; | ||
55 | __assign_str(vir_intf_name, name ? name : "<noname>"); | ||
56 | __entry->type = type; | ||
57 | __entry->extended_addr = extended_addr; | ||
58 | ), | ||
59 | TP_printk(WPAN_PHY_PR_FMT ", virtual intf name: %s, type: %d, ea %llx", | ||
60 | WPAN_PHY_PR_ARG, __get_str(vir_intf_name), __entry->type, | ||
61 | __entry->extended_addr) | ||
62 | ); | ||
63 | |||
64 | TRACE_EVENT(802154_rdev_del_virtual_intf, | ||
65 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev), | ||
66 | TP_ARGS(wpan_phy, wpan_dev), | ||
67 | TP_STRUCT__entry( | ||
68 | WPAN_PHY_ENTRY | ||
69 | WPAN_DEV_ENTRY | ||
70 | ), | ||
71 | TP_fast_assign( | ||
72 | WPAN_PHY_ASSIGN; | ||
73 | WPAN_DEV_ASSIGN; | ||
74 | ), | ||
75 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT, WPAN_PHY_PR_ARG, | ||
76 | WPAN_DEV_PR_ARG) | ||
77 | ); | ||
78 | |||
79 | TRACE_EVENT(802154_rdev_set_channel, | ||
80 | TP_PROTO(struct wpan_phy *wpan_phy, u8 page, u8 channel), | ||
81 | TP_ARGS(wpan_phy, page, channel), | ||
82 | TP_STRUCT__entry( | ||
83 | WPAN_PHY_ENTRY | ||
84 | __field(u8, page) | ||
85 | __field(u8, channel) | ||
86 | ), | ||
87 | TP_fast_assign( | ||
88 | WPAN_PHY_ASSIGN; | ||
89 | __entry->page = page; | ||
90 | __entry->channel = channel; | ||
91 | ), | ||
92 | TP_printk(WPAN_PHY_PR_FMT ", page: %d, channel: %d", WPAN_PHY_PR_ARG, | ||
93 | __entry->page, __entry->channel) | ||
94 | ); | ||
95 | |||
96 | TRACE_EVENT(802154_rdev_set_cca_mode, | ||
97 | TP_PROTO(struct wpan_phy *wpan_phy, const struct wpan_phy_cca *cca), | ||
98 | TP_ARGS(wpan_phy, cca), | ||
99 | TP_STRUCT__entry( | ||
100 | WPAN_PHY_ENTRY | ||
101 | WPAN_CCA_ENTRY | ||
102 | ), | ||
103 | TP_fast_assign( | ||
104 | WPAN_PHY_ASSIGN; | ||
105 | WPAN_CCA_ASSIGN; | ||
106 | ), | ||
107 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_CCA_PR_FMT, WPAN_PHY_PR_ARG, | ||
108 | WPAN_CCA_PR_ARG) | ||
109 | ); | ||
110 | |||
111 | DECLARE_EVENT_CLASS(802154_le16_template, | ||
112 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
113 | __le16 le16arg), | ||
114 | TP_ARGS(wpan_phy, wpan_dev, le16arg), | ||
115 | TP_STRUCT__entry( | ||
116 | WPAN_PHY_ENTRY | ||
117 | WPAN_DEV_ENTRY | ||
118 | __field(__le16, le16arg) | ||
119 | ), | ||
120 | TP_fast_assign( | ||
121 | WPAN_PHY_ASSIGN; | ||
122 | WPAN_DEV_ASSIGN; | ||
123 | __entry->le16arg = le16arg; | ||
124 | ), | ||
125 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT ", pan id: 0x%04x", | ||
126 | WPAN_PHY_PR_ARG, WPAN_DEV_PR_ARG, | ||
127 | __le16_to_cpu(__entry->le16arg)) | ||
128 | ); | ||
129 | |||
130 | DEFINE_EVENT(802154_le16_template, 802154_rdev_set_pan_id, | ||
131 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
132 | __le16 le16arg), | ||
133 | TP_ARGS(wpan_phy, wpan_dev, le16arg) | ||
134 | ); | ||
135 | |||
136 | DEFINE_EVENT_PRINT(802154_le16_template, 802154_rdev_set_short_addr, | ||
137 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
138 | __le16 le16arg), | ||
139 | TP_ARGS(wpan_phy, wpan_dev, le16arg), | ||
140 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT ", sa: 0x%04x", | ||
141 | WPAN_PHY_PR_ARG, WPAN_DEV_PR_ARG, __entry->le16arg) | ||
142 | ); | ||
143 | |||
144 | TRACE_EVENT(802154_rdev_set_backoff_exponent, | ||
145 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
146 | u8 min_be, u8 max_be), | ||
147 | TP_ARGS(wpan_phy, wpan_dev, min_be, max_be), | ||
148 | TP_STRUCT__entry( | ||
149 | WPAN_PHY_ENTRY | ||
150 | WPAN_DEV_ENTRY | ||
151 | __field(u8, min_be) | ||
152 | __field(u8, max_be) | ||
153 | ), | ||
154 | TP_fast_assign( | ||
155 | WPAN_PHY_ASSIGN; | ||
156 | WPAN_DEV_ASSIGN; | ||
157 | __entry->min_be = min_be; | ||
158 | __entry->max_be = max_be; | ||
159 | ), | ||
160 | |||
161 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT | ||
162 | ", min be: %d, max_be: %d", WPAN_PHY_PR_ARG, | ||
163 | WPAN_DEV_PR_ARG, __entry->min_be, __entry->max_be) | ||
164 | ); | ||
165 | |||
166 | TRACE_EVENT(802154_rdev_set_csma_backoffs, | ||
167 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
168 | u8 max_csma_backoffs), | ||
169 | TP_ARGS(wpan_phy, wpan_dev, max_csma_backoffs), | ||
170 | TP_STRUCT__entry( | ||
171 | WPAN_PHY_ENTRY | ||
172 | WPAN_DEV_ENTRY | ||
173 | __field(u8, max_csma_backoffs) | ||
174 | ), | ||
175 | TP_fast_assign( | ||
176 | WPAN_PHY_ASSIGN; | ||
177 | WPAN_DEV_ASSIGN; | ||
178 | __entry->max_csma_backoffs = max_csma_backoffs; | ||
179 | ), | ||
180 | |||
181 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT | ||
182 | ", max csma backoffs: %d", WPAN_PHY_PR_ARG, | ||
183 | WPAN_DEV_PR_ARG, __entry->max_csma_backoffs) | ||
184 | ); | ||
185 | |||
186 | TRACE_EVENT(802154_rdev_set_max_frame_retries, | ||
187 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
188 | s8 max_frame_retries), | ||
189 | TP_ARGS(wpan_phy, wpan_dev, max_frame_retries), | ||
190 | TP_STRUCT__entry( | ||
191 | WPAN_PHY_ENTRY | ||
192 | WPAN_DEV_ENTRY | ||
193 | __field(s8, max_frame_retries) | ||
194 | ), | ||
195 | TP_fast_assign( | ||
196 | WPAN_PHY_ASSIGN; | ||
197 | WPAN_DEV_ASSIGN; | ||
198 | __entry->max_frame_retries = max_frame_retries; | ||
199 | ), | ||
200 | |||
201 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT | ||
202 | ", max frame retries: %d", WPAN_PHY_PR_ARG, | ||
203 | WPAN_DEV_PR_ARG, __entry->max_frame_retries) | ||
204 | ); | ||
205 | |||
206 | TRACE_EVENT(802154_rdev_set_lbt_mode, | ||
207 | TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, | ||
208 | bool mode), | ||
209 | TP_ARGS(wpan_phy, wpan_dev, mode), | ||
210 | TP_STRUCT__entry( | ||
211 | WPAN_PHY_ENTRY | ||
212 | WPAN_DEV_ENTRY | ||
213 | __field(bool, mode) | ||
214 | ), | ||
215 | TP_fast_assign( | ||
216 | WPAN_PHY_ASSIGN; | ||
217 | WPAN_DEV_ASSIGN; | ||
218 | __entry->mode = mode; | ||
219 | ), | ||
220 | TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT | ||
221 | ", lbt mode: %s", WPAN_PHY_PR_ARG, | ||
222 | WPAN_DEV_PR_ARG, BOOL_TO_STR(__entry->mode)) | ||
223 | ); | ||
224 | |||
225 | TRACE_EVENT(802154_rdev_return_int, | ||
226 | TP_PROTO(struct wpan_phy *wpan_phy, int ret), | ||
227 | TP_ARGS(wpan_phy, ret), | ||
228 | TP_STRUCT__entry( | ||
229 | WPAN_PHY_ENTRY | ||
230 | __field(int, ret) | ||
231 | ), | ||
232 | TP_fast_assign( | ||
233 | WPAN_PHY_ASSIGN; | ||
234 | __entry->ret = ret; | ||
235 | ), | ||
236 | TP_printk(WPAN_PHY_PR_FMT ", returned: %d", WPAN_PHY_PR_ARG, | ||
237 | __entry->ret) | ||
238 | ); | ||
239 | |||
240 | #endif /* !__RDEV_CFG802154_OPS_TRACE || TRACE_HEADER_MULTI_READ */ | ||
241 | |||
242 | #undef TRACE_INCLUDE_PATH | ||
243 | #define TRACE_INCLUDE_PATH . | ||
244 | #undef TRACE_INCLUDE_FILE | ||
245 | #define TRACE_INCLUDE_FILE trace | ||
246 | #include <trace/define_trace.h> | ||