net/mac802154/trace.h

Source file repositories/reference/linux-study-clean/net/mac802154/trace.h

File Facts

System
Linux kernel
Corpus path
net/mac802154/trace.h
Extension
.h
Size
7233 bytes
Lines
299
Domain
Networking Core
Bucket
Sockets, Protocols, Packet Path, And Network Policy
Inferred role
Networking Core: implementation source
Status
source implementation candidate

Why This File Exists

Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.

Dependency Surface

Detected Declarations

Annotated Snippet

#undef TRACE_SYSTEM
#define TRACE_SYSTEM mac802154

#if !defined(__MAC802154_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
#define __MAC802154_DRIVER_TRACE

#include <linux/tracepoint.h>

#include <net/mac802154.h>
#include "ieee802154_i.h"

#define MAXNAME		32
#define LOCAL_ENTRY	__array(char, wpan_phy_name, MAXNAME)
#define LOCAL_ASSIGN	strscpy(__entry->wpan_phy_name, \
				wpan_phy_name(local->hw.phy), MAXNAME)
#define LOCAL_PR_FMT	"%s"
#define LOCAL_PR_ARG	__entry->wpan_phy_name

#define CCA_ENTRY __field(enum nl802154_cca_modes, cca_mode) \
		  __field(enum nl802154_cca_opts, cca_opt)
#define CCA_ASSIGN \
	do {                                     \
		(__entry->cca_mode) = cca->mode; \
		(__entry->cca_opt) = cca->opt;   \
	} while (0)
#define CCA_PR_FMT "cca_mode: %d, cca_opt: %d"
#define CCA_PR_ARG __entry->cca_mode, __entry->cca_opt

#define BOOL_TO_STR(bo) (bo) ? "true" : "false"

/* Tracing for driver callbacks */

DECLARE_EVENT_CLASS(local_only_evt4,
	TP_PROTO(struct ieee802154_local *local),
	TP_ARGS(local),
	TP_STRUCT__entry(
		LOCAL_ENTRY
	),
	TP_fast_assign(
		LOCAL_ASSIGN;
	),
	TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG)
);

DEFINE_EVENT(local_only_evt4, 802154_drv_return_void,
	TP_PROTO(struct ieee802154_local *local),
	TP_ARGS(local)
);

TRACE_EVENT(802154_drv_return_int,
	TP_PROTO(struct ieee802154_local *local, int ret),
	TP_ARGS(local, ret),
	TP_STRUCT__entry(
		LOCAL_ENTRY
		__field(int, ret)
	),
	TP_fast_assign(
		LOCAL_ASSIGN;
		__entry->ret = ret;
	),
	TP_printk(LOCAL_PR_FMT ", returned: %d", LOCAL_PR_ARG,
		  __entry->ret)
);

DEFINE_EVENT(local_only_evt4, 802154_drv_start,
	TP_PROTO(struct ieee802154_local *local),
	TP_ARGS(local)
);

DEFINE_EVENT(local_only_evt4, 802154_drv_stop,
	TP_PROTO(struct ieee802154_local *local),
	TP_ARGS(local)
);

TRACE_EVENT(802154_drv_set_channel,
	TP_PROTO(struct ieee802154_local *local, u8 page, u8 channel),
	TP_ARGS(local, page, channel),
	TP_STRUCT__entry(
		LOCAL_ENTRY
		__field(u8, page)
		__field(u8, channel)
	),
	TP_fast_assign(
		LOCAL_ASSIGN;
		__entry->page = page;
		__entry->channel = channel;
	),
	TP_printk(LOCAL_PR_FMT ", page: %d, channel: %d", LOCAL_PR_ARG,
		  __entry->page, __entry->channel)
);

Annotation

Implementation Notes