1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved. 5 * Copyright(c) 2015 Intel Deutschland GmbH 6 * Copyright(c) 2018 Intel Corporation 7 * 8 * Contact Information: 9 * Intel Linux Wireless <linuxwifi@intel.com> 10 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 11 * 12 *****************************************************************************/ 13 14 #if !defined(__IWLWIFI_DEVICE_TRACE_DATA) || defined(TRACE_HEADER_MULTI_READ) 15 #define __IWLWIFI_DEVICE_TRACE_DATA 16 17 #include <linux/tracepoint.h> 18 19 #undef TRACE_SYSTEM 20 #define TRACE_SYSTEM iwlwifi_data 21 22 TRACE_EVENT(iwlwifi_dev_tx_tb, 23 TP_PROTO(const struct device *dev, struct sk_buff *skb, 24 u8 *data_src, size_t data_len), 25 TP_ARGS(dev, skb, data_src, data_len), 26 TP_STRUCT__entry( 27 DEV_ENTRY 28 29 __dynamic_array(u8, data, 30 iwl_trace_data(skb) ? data_len : 0) 31 ), 32 TP_fast_assign( 33 DEV_ASSIGN; 34 if (iwl_trace_data(skb)) 35 memcpy(__get_dynamic_array(data), data_src, data_len); 36 ), 37 TP_printk("[%s] TX frame data", __get_str(dev)) 38 ); 39 40 TRACE_EVENT(iwlwifi_dev_rx_data, 41 TP_PROTO(const struct device *dev, 42 const struct iwl_trans *trans, 43 void *rxbuf, size_t len), 44 TP_ARGS(dev, trans, rxbuf, len), 45 TP_STRUCT__entry( 46 DEV_ENTRY 47 __dynamic_array(u8, data, 48 len - iwl_rx_trace_len(trans, rxbuf, len, NULL)) 49 ), 50 TP_fast_assign( 51 size_t offs = iwl_rx_trace_len(trans, rxbuf, len, NULL); 52 DEV_ASSIGN; 53 if (offs < len) 54 memcpy(__get_dynamic_array(data), 55 ((u8 *)rxbuf) + offs, len - offs); 56 ), 57 TP_printk("[%s] RX frame data", __get_str(dev)) 58 ); 59 #endif /* __IWLWIFI_DEVICE_TRACE_DATA */ 60 61 #undef TRACE_INCLUDE_PATH 62 #define TRACE_INCLUDE_PATH . 63 #undef TRACE_INCLUDE_FILE 64 #define TRACE_INCLUDE_FILE iwl-devtrace-data 65 #include <trace/define_trace.h> 66