FILE
iwl-utils.h
File preview with syntax highlighting.
linux-6.19.14/drivers/net/wireless/intel/iwlwifi/iwl-utils.h
1/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2/* 3 * Copyright (C) 2024-2025 Intel Corporation 4 */ 5#ifndef __iwl_utils_h__ 6#define __iwl_utils_h__ 7 8#include <net/cfg80211.h> 9 10#ifdef CONFIG_INET 11/** 12 * iwl_tx_tso_segment - Segments a TSO packet into subframes for A-MSDU. 13 * @skb: buffer to segment. 14 * @num_subframes: number of subframes to create. 15 * @netdev_flags: netdev feature flags. 16 * @mpdus_skbs: list to hold the segmented subframes. 17 * 18 * This function segments a large TCP packet into subframes. 19 * subframes are added to the mpdus_skbs list 20 * 21 * Returns: 0 on success and negative value on failure. 22 */ 23int iwl_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes, 24 netdev_features_t netdev_flags, 25 struct sk_buff_head *mpdus_skbs); 26#else 27static inline 28int iwl_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes, 29 netdev_features_t netdev_flags, 30 struct sk_buff_head *mpdus_skbs) 31{ 32 WARN_ON(1); 33 34 return -1; 35} 36#endif /* CONFIG_INET */ 37 38static inline 39u32 iwl_find_ie_offset(u8 *beacon, u8 eid, u32 frame_size) 40{ 41 struct ieee80211_mgmt *mgmt = (void *)beacon; 42 const u8 *ie; 43 44 if (WARN_ON_ONCE(frame_size <= (mgmt->u.beacon.variable - beacon))) 45 return 0; 46 47 frame_size -= mgmt->u.beacon.variable - beacon; 48 49 ie = cfg80211_find_ie(eid, mgmt->u.beacon.variable, frame_size); 50 if (!ie) 51 return 0; 52 53 return ie - beacon; 54} 55 56s8 iwl_average_neg_dbm(const u8 *neg_dbm_values, u8 len); 57 58#endif /* __iwl_utils_h__ */
~/
Read-only file preview.