83 lines
1.9 KiB
C
83 lines
1.9 KiB
C
// 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 */
|