Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright(c) 2021        Intel Corporation
0004  */
0005 
0006 #if !defined(CONFIG_IWLWIFI_DEVICE_TRACING)
0007 
0008 #define trace_iwlmei_sap_data(...)
0009 
0010 #else
0011 
0012 #if !defined(__IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA) || defined(TRACE_HEADER_MULTI_READ)
0013 
0014 #ifndef __IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA
0015 enum iwl_sap_data_trace_type {
0016     IWL_SAP_RX_DATA_TO_AIR,
0017     IWL_SAP_TX_DATA_FROM_AIR,
0018     IWL_SAP_RX_DATA_DROPPED_FROM_AIR,
0019     IWL_SAP_TX_DHCP,
0020 };
0021 
0022 static inline size_t
0023 iwlmei_sap_data_offset(enum iwl_sap_data_trace_type trace_type)
0024 {
0025     switch (trace_type) {
0026     case IWL_SAP_RX_DATA_TO_AIR:
0027         return 0;
0028     case IWL_SAP_TX_DATA_FROM_AIR:
0029     case IWL_SAP_RX_DATA_DROPPED_FROM_AIR:
0030         return sizeof(struct iwl_sap_hdr);
0031     case IWL_SAP_TX_DHCP:
0032         return sizeof(struct iwl_sap_cb_data);
0033     default:
0034         WARN_ON_ONCE(1);
0035     }
0036 
0037     return 0;
0038 }
0039 #endif
0040 
0041 #define __IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA
0042 
0043 #include <linux/tracepoint.h>
0044 #include <linux/skbuff.h>
0045 #include "sap.h"
0046 
0047 #undef TRACE_SYSTEM
0048 #define TRACE_SYSTEM iwlmei_sap_data
0049 
0050 TRACE_EVENT(iwlmei_sap_data,
0051     TP_PROTO(const struct sk_buff *skb,
0052          enum iwl_sap_data_trace_type trace_type),
0053     TP_ARGS(skb, trace_type),
0054     TP_STRUCT__entry(
0055         __dynamic_array(u8, data,
0056                 skb->len - iwlmei_sap_data_offset(trace_type))
0057         __field(u32, trace_type)
0058     ),
0059     TP_fast_assign(
0060         size_t offset = iwlmei_sap_data_offset(trace_type);
0061         __entry->trace_type = trace_type;
0062         skb_copy_bits(skb, offset, __get_dynamic_array(data),
0063                   skb->len - offset);
0064     ),
0065     TP_printk("sap_data:trace_type %d len %d",
0066           __entry->trace_type, __get_dynamic_array_len(data))
0067 );
0068 
0069 /*
0070  * If you add something here, add a stub in case
0071  * !defined(CONFIG_IWLWIFI_DEVICE_TRACING)
0072  */
0073 
0074 #endif /* __IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA */
0075 
0076 #undef TRACE_INCLUDE_PATH
0077 #define TRACE_INCLUDE_PATH .
0078 #undef TRACE_INCLUDE_FILE
0079 #define TRACE_INCLUDE_FILE trace-data
0080 #include <trace/define_trace.h>
0081 
0082 #endif /* CONFIG_IWLWIFI_DEVICE_TRACING */