mac80211.h (db12847ca84b7a315a3ba77c939c9d08df17d54f) mac80211.h (2b9a7e1bac24df8ddb0713ad1e5807a7243bcab0)
1/*
2 * mac80211 <-> driver interface
3 *
4 * Copyright 2002-2005, Devicescape Software, Inc.
5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
6 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
7 * Copyright 2013-2014 Intel Mobile Communications GmbH
8 *

--- 2694 unchanged lines hidden (view full) ---

2703 * in the station data. This callback should only be used when the driver
2704 * uses hardware rate control (%IEEE80211_HW_HAS_RATE_CONTROL) since
2705 * otherwise the rate control algorithm is notified directly.
2706 * Must be atomic.
2707 * @sta_rate_tbl_update: Notifies the driver that the rate table changed. This
2708 * is only used if the configured rate control algorithm actually uses
2709 * the new rate table API, and is therefore optional. Must be atomic.
2710 *
1/*
2 * mac80211 <-> driver interface
3 *
4 * Copyright 2002-2005, Devicescape Software, Inc.
5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
6 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
7 * Copyright 2013-2014 Intel Mobile Communications GmbH
8 *

--- 2694 unchanged lines hidden (view full) ---

2703 * in the station data. This callback should only be used when the driver
2704 * uses hardware rate control (%IEEE80211_HW_HAS_RATE_CONTROL) since
2705 * otherwise the rate control algorithm is notified directly.
2706 * Must be atomic.
2707 * @sta_rate_tbl_update: Notifies the driver that the rate table changed. This
2708 * is only used if the configured rate control algorithm actually uses
2709 * the new rate table API, and is therefore optional. Must be atomic.
2710 *
2711 * @sta_statistics: Get statistics for this station. For example with beacon
2712 * filtering, the statistics kept by mac80211 might not be accurate, so
2713 * let the driver pre-fill the statistics. The driver can fill most of
2714 * the values (indicating which by setting the filled bitmap), but not
2715 * all of them make sense - see the source for which ones are possible.
2716 * Statistics that the driver doesn't fill will be filled by mac80211.
2717 * The callback can sleep.
2718 *
2711 * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
2712 * bursting) for a hardware TX queue.
2713 * Returns a negative error code on failure.
2714 * The callback can sleep.
2715 *
2716 * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently,
2717 * this is only used for IBSS mode BSSID merging and debugging. Is not a
2718 * required function.

--- 144 unchanged lines hidden (view full) ---

2863 *
2864 * @get_et_sset_count: Ethtool API to get string-set count.
2865 *
2866 * @get_et_stats: Ethtool API to get a set of u64 stats.
2867 *
2868 * @get_et_strings: Ethtool API to get a set of strings to describe stats
2869 * and perhaps other supported types of ethtool data-sets.
2870 *
2719 * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
2720 * bursting) for a hardware TX queue.
2721 * Returns a negative error code on failure.
2722 * The callback can sleep.
2723 *
2724 * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently,
2725 * this is only used for IBSS mode BSSID merging and debugging. Is not a
2726 * required function.

--- 144 unchanged lines hidden (view full) ---

2871 *
2872 * @get_et_sset_count: Ethtool API to get string-set count.
2873 *
2874 * @get_et_stats: Ethtool API to get a set of u64 stats.
2875 *
2876 * @get_et_strings: Ethtool API to get a set of strings to describe stats
2877 * and perhaps other supported types of ethtool data-sets.
2878 *
2871 * @get_rssi: Get current signal strength in dBm, the function is optional
2872 * and can sleep.
2873 *
2874 * @mgd_prepare_tx: Prepare for transmitting a management frame for association
2875 * before associated. In multi-channel scenarios, a virtual interface is
2876 * bound to a channel before it is associated, but as it isn't associated
2877 * yet it need not necessarily be given airtime, in particular since any
2878 * transmission to a P2P GO needs to be synchronized against the GO's
2879 * powersave state. mac80211 will call this function before transmitting a
2880 * management frame prior to having successfully associated to allow the
2881 * driver to give it channel time for the transmission, to get a response

--- 184 unchanged lines hidden (view full) ---

3066 struct ieee80211_sta *sta);
3067 void (*sta_rc_update)(struct ieee80211_hw *hw,
3068 struct ieee80211_vif *vif,
3069 struct ieee80211_sta *sta,
3070 u32 changed);
3071 void (*sta_rate_tbl_update)(struct ieee80211_hw *hw,
3072 struct ieee80211_vif *vif,
3073 struct ieee80211_sta *sta);
2879 * @mgd_prepare_tx: Prepare for transmitting a management frame for association
2880 * before associated. In multi-channel scenarios, a virtual interface is
2881 * bound to a channel before it is associated, but as it isn't associated
2882 * yet it need not necessarily be given airtime, in particular since any
2883 * transmission to a P2P GO needs to be synchronized against the GO's
2884 * powersave state. mac80211 will call this function before transmitting a
2885 * management frame prior to having successfully associated to allow the
2886 * driver to give it channel time for the transmission, to get a response

--- 184 unchanged lines hidden (view full) ---

3071 struct ieee80211_sta *sta);
3072 void (*sta_rc_update)(struct ieee80211_hw *hw,
3073 struct ieee80211_vif *vif,
3074 struct ieee80211_sta *sta,
3075 u32 changed);
3076 void (*sta_rate_tbl_update)(struct ieee80211_hw *hw,
3077 struct ieee80211_vif *vif,
3078 struct ieee80211_sta *sta);
3079 void (*sta_statistics)(struct ieee80211_hw *hw,
3080 struct ieee80211_vif *vif,
3081 struct ieee80211_sta *sta,
3082 struct station_info *sinfo);
3074 int (*conf_tx)(struct ieee80211_hw *hw,
3075 struct ieee80211_vif *vif, u16 ac,
3076 const struct ieee80211_tx_queue_params *params);
3077 u64 (*get_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3078 void (*set_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3079 u64 tsf);
3080 void (*reset_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3081 int (*tx_last_beacon)(struct ieee80211_hw *hw);

--- 51 unchanged lines hidden (view full) ---

3133 int (*get_et_sset_count)(struct ieee80211_hw *hw,
3134 struct ieee80211_vif *vif, int sset);
3135 void (*get_et_stats)(struct ieee80211_hw *hw,
3136 struct ieee80211_vif *vif,
3137 struct ethtool_stats *stats, u64 *data);
3138 void (*get_et_strings)(struct ieee80211_hw *hw,
3139 struct ieee80211_vif *vif,
3140 u32 sset, u8 *data);
3083 int (*conf_tx)(struct ieee80211_hw *hw,
3084 struct ieee80211_vif *vif, u16 ac,
3085 const struct ieee80211_tx_queue_params *params);
3086 u64 (*get_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3087 void (*set_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3088 u64 tsf);
3089 void (*reset_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3090 int (*tx_last_beacon)(struct ieee80211_hw *hw);

--- 51 unchanged lines hidden (view full) ---

3142 int (*get_et_sset_count)(struct ieee80211_hw *hw,
3143 struct ieee80211_vif *vif, int sset);
3144 void (*get_et_stats)(struct ieee80211_hw *hw,
3145 struct ieee80211_vif *vif,
3146 struct ethtool_stats *stats, u64 *data);
3147 void (*get_et_strings)(struct ieee80211_hw *hw,
3148 struct ieee80211_vif *vif,
3149 u32 sset, u8 *data);
3141 int (*get_rssi)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3142 struct ieee80211_sta *sta, s8 *rssi_dbm);
3143
3144 void (*mgd_prepare_tx)(struct ieee80211_hw *hw,
3145 struct ieee80211_vif *vif);
3146
3147 void (*mgd_protect_tdls_discover)(struct ieee80211_hw *hw,
3148 struct ieee80211_vif *vif);
3149
3150 int (*add_chanctx)(struct ieee80211_hw *hw,

--- 2039 unchanged lines hidden ---
3150
3151 void (*mgd_prepare_tx)(struct ieee80211_hw *hw,
3152 struct ieee80211_vif *vif);
3153
3154 void (*mgd_protect_tdls_discover)(struct ieee80211_hw *hw,
3155 struct ieee80211_vif *vif);
3156
3157 int (*add_chanctx)(struct ieee80211_hw *hw,

--- 2039 unchanged lines hidden ---