| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright(c) 2021 Intel Corporation |
| */ |
| |
| #if !defined(CONFIG_IWLWIFI_DEVICE_TRACING) |
| |
| #define trace_iwlmei_sap_data(...) |
| |
| #else |
| |
| #if !defined(__IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA) || defined(TRACE_HEADER_MULTI_READ) |
| |
| #ifndef __IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA |
| enum iwl_sap_data_trace_type { |
| IWL_SAP_RX_DATA_TO_AIR, |
| IWL_SAP_TX_DATA_FROM_AIR, |
| IWL_SAP_RX_DATA_DROPPED_FROM_AIR, |
| IWL_SAP_TX_DHCP, |
| }; |
| |
| static inline size_t |
| iwlmei_sap_data_offset(enum iwl_sap_data_trace_type trace_type) |
| { |
| switch (trace_type) { |
| case IWL_SAP_RX_DATA_TO_AIR: |
| return 0; |
| case IWL_SAP_TX_DATA_FROM_AIR: |
| case IWL_SAP_RX_DATA_DROPPED_FROM_AIR: |
| return sizeof(struct iwl_sap_hdr); |
| case IWL_SAP_TX_DHCP: |
| return sizeof(struct iwl_sap_cb_data); |
| default: |
| WARN_ON_ONCE(1); |
| } |
| |
| return 0; |
| } |
| #endif |
| |
| #define __IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA |
| |
| #include <linux/tracepoint.h> |
| #include <linux/skbuff.h> |
| #include "sap.h" |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM iwlmei_sap_data |
| |
| TRACE_EVENT(iwlmei_sap_data, |
| TP_PROTO(const struct sk_buff *skb, |
| enum iwl_sap_data_trace_type trace_type), |
| TP_ARGS(skb, trace_type), |
| TP_STRUCT__entry( |
| __dynamic_array(u8, data, |
| skb->len - iwlmei_sap_data_offset(trace_type)) |
| __field(u32, trace_type) |
| ), |
| TP_fast_assign( |
| size_t offset = iwlmei_sap_data_offset(trace_type); |
| __entry->trace_type = trace_type; |
| skb_copy_bits(skb, offset, __get_dynamic_array(data), |
| skb->len - offset); |
| ), |
| TP_printk("sap_data:trace_type %d len %d", |
| __entry->trace_type, __get_dynamic_array_len(data)) |
| ); |
| |
| /* |
| * If you add something here, add a stub in case |
| * !defined(CONFIG_IWLWIFI_DEVICE_TRACING) |
| */ |
| |
| #endif /* __IWLWIFI_DEVICE_TRACE_IWLWIFI_SAP_DATA */ |
| |
| #undef TRACE_INCLUDE_PATH |
| #define TRACE_INCLUDE_PATH . |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_FILE trace-data |
| #include <trace/define_trace.h> |
| |
| #endif /* CONFIG_IWLWIFI_DEVICE_TRACING */ |