1// SPDX-License-Identifier: GPL-2.0
2/* bug in tracepoint.h, it should include this */
3#include <linux/module.h>
4
5/* sparse isn't too happy with all macros... */
6#ifndef __CHECKER__
7#include <net/cfg80211.h>
8#include "driver-ops.h"
9#include "debug.h"
10#define CREATE_TRACE_POINTS
11#include "trace.h"
12#include "trace_msg.h"
13
14#ifdef CONFIG_MAC80211_MESSAGE_TRACING
15void __sdata_info(const char *fmt, ...)
16{
17	struct va_format vaf = {
18		.fmt = fmt,
19	};
20	va_list args;
21
22	va_start(args, fmt);
23	vaf.va = &args;
24
25	pr_info("%pV", &vaf);
26	trace_mac80211_info(&vaf);
27	va_end(args);
28}
29
30void __sdata_dbg(bool print, const char *fmt, ...)
31{
32	struct va_format vaf = {
33		.fmt = fmt,
34	};
35	va_list args;
36
37	va_start(args, fmt);
38	vaf.va = &args;
39
40	if (print)
41		pr_debug("%pV", &vaf);
42	trace_mac80211_dbg(&vaf);
43	va_end(args);
44}
45
46void __sdata_err(const char *fmt, ...)
47{
48	struct va_format vaf = {
49		.fmt = fmt,
50	};
51	va_list args;
52
53	va_start(args, fmt);
54	vaf.va = &args;
55
56	pr_err("%pV", &vaf);
57	trace_mac80211_err(&vaf);
58	va_end(args);
59}
60
61void __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...)
62{
63	struct va_format vaf = {
64		.fmt = fmt,
65	};
66	va_list args;
67
68	va_start(args, fmt);
69	vaf.va = &args;
70
71	if (print)
72		wiphy_dbg(wiphy, "%pV", &vaf);
73	trace_mac80211_dbg(&vaf);
74	va_end(args);
75}
76#endif
77#endif
78