// SPDX-License-Identifier: GPL-2.0-only /* * NXP Wireless LAN device driver: management IE handling- setting and * deleting IE. * * Copyright 2011-2020 NXP */ #include "main.h" /* This function checks if current IE index is used by any on other interface. * Return: -1: yes, current IE index is used by someone else. * 0: no, current IE index is NOT used by other interface. */ static int mwifiex_ie_index_used_by_other_intf(struct mwifiex_private *priv, u16 idx) { … } /* Get unused IE index. This index will be used for setting new IE */ static int mwifiex_ie_get_autoidx(struct mwifiex_private *priv, u16 subtype_mask, struct mwifiex_ie *ie, u16 *index) { … } /* This function prepares IE data buffer for command to be sent to FW */ static int mwifiex_update_autoindex_ies(struct mwifiex_private *priv, struct mwifiex_ie_list *ie_list) { … } /* Copy individual custom IEs for beacon, probe response and assoc response * and prepare single structure for IE setting. * This function also updates allocated IE indices from driver. */ static int mwifiex_update_uap_custom_ie(struct mwifiex_private *priv, struct mwifiex_ie *beacon_ie, u16 *beacon_idx, struct mwifiex_ie *pr_ie, u16 *probe_idx, struct mwifiex_ie *ar_ie, u16 *assoc_idx) { … } /* This function checks if the vendor specified IE is present in passed buffer * and copies it to mwifiex_ie structure. * Function takes pointer to struct mwifiex_ie pointer as argument. * If the vendor specified IE is present then memory is allocated for * mwifiex_ie pointer and filled in with IE. Caller should take care of freeing * this memory. */ static int mwifiex_update_vs_ie(const u8 *ies, int ies_len, struct mwifiex_ie **ie_ptr, u16 mask, unsigned int oui, u8 oui_type) { … } /* This function parses beacon IEs, probe response IEs, association response IEs * from cfg80211_ap_settings->beacon and sets these IE to FW. */ static int mwifiex_set_mgmt_beacon_data_ies(struct mwifiex_private *priv, struct cfg80211_beacon_data *data) { … } /* This function parses head and tail IEs, from cfg80211_beacon_data and sets * these IE to FW. */ static int mwifiex_uap_parse_tail_ies(struct mwifiex_private *priv, struct cfg80211_beacon_data *info) { … } /* This function parses different IEs-head & tail IEs, beacon IEs, * probe response IEs, association response IEs from cfg80211_ap_settings * function and sets these IE to FW. */ int mwifiex_set_mgmt_ies(struct mwifiex_private *priv, struct cfg80211_beacon_data *info) { … } /* This function removes management IE set */ int mwifiex_del_mgmt_ies(struct mwifiex_private *priv) { … }