1/* SPDX-License-Identifier: GPL-2.0-only */ 2/****************************************************************************** 3 * 4 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved. 5 * 6 * Contact Information: 7 * Intel Linux Wireless <linuxwifi@intel.com> 8 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 9 * 10 *****************************************************************************/ 11 12#if !defined(__IWLWIFI_DEVICE_TRACE_MSG) || defined(TRACE_HEADER_MULTI_READ) 13#define __IWLWIFI_DEVICE_TRACE_MSG 14 15#include <linux/tracepoint.h> 16 17#undef TRACE_SYSTEM 18#define TRACE_SYSTEM iwlwifi_msg 19 20#define MAX_MSG_LEN 110 21 22DECLARE_EVENT_CLASS(iwlwifi_msg_event, 23 TP_PROTO(struct va_format *vaf), 24 TP_ARGS(vaf), 25 TP_STRUCT__entry( 26 __dynamic_array(char, msg, MAX_MSG_LEN) 27 ), 28 TP_fast_assign( 29 WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), 30 MAX_MSG_LEN, vaf->fmt, 31 *vaf->va) >= MAX_MSG_LEN); 32 ), 33 TP_printk("%s", __get_str(msg)) 34); 35 36DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_err, 37 TP_PROTO(struct va_format *vaf), 38 TP_ARGS(vaf) 39); 40 41DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_warn, 42 TP_PROTO(struct va_format *vaf), 43 TP_ARGS(vaf) 44); 45 46DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_info, 47 TP_PROTO(struct va_format *vaf), 48 TP_ARGS(vaf) 49); 50 51DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_crit, 52 TP_PROTO(struct va_format *vaf), 53 TP_ARGS(vaf) 54); 55 56TRACE_EVENT(iwlwifi_dbg, 57 TP_PROTO(u32 level, const char *function, 58 struct va_format *vaf), 59 TP_ARGS(level, function, vaf), 60 TP_STRUCT__entry( 61 __field(u32, level) 62 __string(function, function) 63 __dynamic_array(char, msg, MAX_MSG_LEN) 64 ), 65 TP_fast_assign( 66 __entry->level = level; 67 __assign_str(function, function); 68 WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), 69 MAX_MSG_LEN, vaf->fmt, 70 *vaf->va) >= MAX_MSG_LEN); 71 ), 72 TP_printk("%s", __get_str(msg)) 73); 74#endif /* __IWLWIFI_DEVICE_TRACE_MSG */ 75 76#undef TRACE_INCLUDE_PATH 77#define TRACE_INCLUDE_PATH . 78#undef TRACE_INCLUDE_FILE 79#define TRACE_INCLUDE_FILE iwl-devtrace-msg 80#include <trace/define_trace.h> 81