18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* bug in tracepoint.h, it should include this */ 38c2ecf20Sopenharmony_ci#include <linux/module.h> 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci/* sparse isn't too happy with all macros... */ 68c2ecf20Sopenharmony_ci#ifndef __CHECKER__ 78c2ecf20Sopenharmony_ci#include <net/cfg80211.h> 88c2ecf20Sopenharmony_ci#include "driver-ops.h" 98c2ecf20Sopenharmony_ci#include "debug.h" 108c2ecf20Sopenharmony_ci#define CREATE_TRACE_POINTS 118c2ecf20Sopenharmony_ci#include "trace.h" 128c2ecf20Sopenharmony_ci#include "trace_msg.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#ifdef CONFIG_MAC80211_MESSAGE_TRACING 158c2ecf20Sopenharmony_civoid __sdata_info(const char *fmt, ...) 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci struct va_format vaf = { 188c2ecf20Sopenharmony_ci .fmt = fmt, 198c2ecf20Sopenharmony_ci }; 208c2ecf20Sopenharmony_ci va_list args; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci va_start(args, fmt); 238c2ecf20Sopenharmony_ci vaf.va = &args; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci pr_info("%pV", &vaf); 268c2ecf20Sopenharmony_ci trace_mac80211_info(&vaf); 278c2ecf20Sopenharmony_ci va_end(args); 288c2ecf20Sopenharmony_ci} 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_civoid __sdata_dbg(bool print, const char *fmt, ...) 318c2ecf20Sopenharmony_ci{ 328c2ecf20Sopenharmony_ci struct va_format vaf = { 338c2ecf20Sopenharmony_ci .fmt = fmt, 348c2ecf20Sopenharmony_ci }; 358c2ecf20Sopenharmony_ci va_list args; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci va_start(args, fmt); 388c2ecf20Sopenharmony_ci vaf.va = &args; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci if (print) 418c2ecf20Sopenharmony_ci pr_debug("%pV", &vaf); 428c2ecf20Sopenharmony_ci trace_mac80211_dbg(&vaf); 438c2ecf20Sopenharmony_ci va_end(args); 448c2ecf20Sopenharmony_ci} 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_civoid __sdata_err(const char *fmt, ...) 478c2ecf20Sopenharmony_ci{ 488c2ecf20Sopenharmony_ci struct va_format vaf = { 498c2ecf20Sopenharmony_ci .fmt = fmt, 508c2ecf20Sopenharmony_ci }; 518c2ecf20Sopenharmony_ci va_list args; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci va_start(args, fmt); 548c2ecf20Sopenharmony_ci vaf.va = &args; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci pr_err("%pV", &vaf); 578c2ecf20Sopenharmony_ci trace_mac80211_err(&vaf); 588c2ecf20Sopenharmony_ci va_end(args); 598c2ecf20Sopenharmony_ci} 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_civoid __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...) 628c2ecf20Sopenharmony_ci{ 638c2ecf20Sopenharmony_ci struct va_format vaf = { 648c2ecf20Sopenharmony_ci .fmt = fmt, 658c2ecf20Sopenharmony_ci }; 668c2ecf20Sopenharmony_ci va_list args; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci va_start(args, fmt); 698c2ecf20Sopenharmony_ci vaf.va = &args; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci if (print) 728c2ecf20Sopenharmony_ci wiphy_dbg(wiphy, "%pV", &vaf); 738c2ecf20Sopenharmony_ci trace_mac80211_dbg(&vaf); 748c2ecf20Sopenharmony_ci va_end(args); 758c2ecf20Sopenharmony_ci} 768c2ecf20Sopenharmony_ci#endif 778c2ecf20Sopenharmony_ci#endif 78