cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sta.h (2985B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Implementation of mac80211 API.
      4 *
      5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc.
      6 * Copyright (c) 2010, ST-Ericsson
      7 */
      8#ifndef WFX_STA_H
      9#define WFX_STA_H
     10
     11#include <net/mac80211.h>
     12
     13struct wfx_dev;
     14struct wfx_vif;
     15
     16struct wfx_sta_priv {
     17	int link_id;
     18	int vif_id;
     19};
     20
     21/* mac80211 interface */
     22int wfx_start(struct ieee80211_hw *hw);
     23void wfx_stop(struct ieee80211_hw *hw);
     24int wfx_config(struct ieee80211_hw *hw, u32 changed);
     25int wfx_set_rts_threshold(struct ieee80211_hw *hw, u32 value);
     26void wfx_set_default_unicast_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int idx);
     27void wfx_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags,
     28			  unsigned int *total_flags, u64 unused);
     29
     30int wfx_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
     31void wfx_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
     32int wfx_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
     33void wfx_stop_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
     34int wfx_join_ibss(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
     35void wfx_leave_ibss(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
     36int wfx_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     37		u16 queue, const struct ieee80211_tx_queue_params *params);
     38void wfx_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     39			  struct ieee80211_bss_conf *info, u32 changed);
     40int wfx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta);
     41int wfx_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta);
     42void wfx_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     43		    enum sta_notify_cmd cmd, struct ieee80211_sta *sta);
     44int wfx_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set);
     45int wfx_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     46		     struct ieee80211_ampdu_params *params);
     47int wfx_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf);
     48void wfx_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf);
     49void wfx_change_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf, u32 changed);
     50int wfx_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     51			   struct ieee80211_chanctx_conf *conf);
     52void wfx_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     53			      struct ieee80211_chanctx_conf *conf);
     54
     55/* Hardware API Callbacks */
     56void wfx_cooling_timeout_work(struct work_struct *work);
     57void wfx_suspend_hot_dev(struct wfx_dev *wdev, enum sta_notify_cmd cmd);
     58void wfx_suspend_resume_mc(struct wfx_vif *wvif, enum sta_notify_cmd cmd);
     59void wfx_event_report_rssi(struct wfx_vif *wvif, u8 raw_rcpi_rssi);
     60int wfx_update_pm(struct wfx_vif *wvif);
     61
     62/* Other Helpers */
     63void wfx_reset(struct wfx_vif *wvif);
     64u32 wfx_rate_mask_to_hw(struct wfx_dev *wdev, u32 rates);
     65
     66#endif