Expand linux-kpi wireless and networking scaffolding
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -51,6 +51,17 @@ struct key_params {
|
||||
const u8 *key;
|
||||
u8 key_len;
|
||||
u32 cipher;
|
||||
u8 key_idx;
|
||||
};
|
||||
|
||||
struct cfg80211_bss {
|
||||
u8 bssid[6];
|
||||
struct ieee80211_channel *channel;
|
||||
s16 signal;
|
||||
u16 capability;
|
||||
u16 beacon_interval;
|
||||
const u8 *ies;
|
||||
size_t ies_len;
|
||||
};
|
||||
|
||||
struct cfg80211_connect_params {
|
||||
@@ -99,9 +110,11 @@ extern void cfg80211_connect_bss(struct net_device *dev,
|
||||
u16 status,
|
||||
gfp_t gfp);
|
||||
extern void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr,
|
||||
struct station_parameters *params, gfp_t gfp);
|
||||
struct station_parameters *params, gfp_t gfp);
|
||||
extern void cfg80211_rx_mgmt(struct wireless_dev *wdev, u32 freq, int sig_dbm,
|
||||
const u8 *buf, size_t len, gfp_t gfp);
|
||||
const u8 *buf, size_t len, gfp_t gfp);
|
||||
extern void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie,
|
||||
const u8 *buf, size_t len, bool ack, gfp_t gfp);
|
||||
extern void cfg80211_sched_scan_results(struct wiphy *wiphy, u64 reqid);
|
||||
extern void cfg80211_ready_on_channel(struct wireless_dev *wdev,
|
||||
u64 cookie,
|
||||
@@ -109,5 +122,19 @@ extern void cfg80211_ready_on_channel(struct wireless_dev *wdev,
|
||||
u32 chan_type,
|
||||
u32 duration,
|
||||
gfp_t gfp);
|
||||
extern u32 ieee80211_channel_to_frequency(u32 chan, u32 band);
|
||||
extern u32 ieee80211_frequency_to_channel(u32 freq);
|
||||
extern struct cfg80211_bss *cfg80211_inform_bss(struct wiphy *wiphy,
|
||||
struct wireless_dev *wdev,
|
||||
u32 freq,
|
||||
const u8 *bssid,
|
||||
u64 tsf,
|
||||
u16 capability,
|
||||
u16 beacon_interval,
|
||||
const u8 *ie,
|
||||
size_t ielen,
|
||||
int signal,
|
||||
gfp_t gfp);
|
||||
extern void cfg80211_put_bss(struct cfg80211_bss *bss);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
struct ieee80211_hw {
|
||||
struct wiphy *wiphy;
|
||||
const struct ieee80211_ops *ops;
|
||||
void *priv;
|
||||
int registered;
|
||||
u32 extra_tx_headroom;
|
||||
@@ -32,6 +33,25 @@ struct ieee80211_bss_conf {
|
||||
bool assoc;
|
||||
u16 aid;
|
||||
u16 beacon_int;
|
||||
u8 bssid[6];
|
||||
u32 basic_rates;
|
||||
u8 bandwidth;
|
||||
struct {
|
||||
u32 center_freq;
|
||||
u16 band;
|
||||
void *channel;
|
||||
} chandef;
|
||||
};
|
||||
|
||||
struct ieee80211_rx_status {
|
||||
u16 freq;
|
||||
u32 band;
|
||||
s8 signal;
|
||||
s8 noise;
|
||||
u8 rate_idx;
|
||||
u32 flag;
|
||||
u8 antenna;
|
||||
u32 rx_flags;
|
||||
};
|
||||
|
||||
enum ieee80211_sta_state {
|
||||
@@ -62,8 +82,13 @@ struct ieee80211_ops {
|
||||
int (*set_key)(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
||||
struct ieee80211_vif *vif, struct ieee80211_sta *sta,
|
||||
struct key_params *key);
|
||||
int (*ampdu_action)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, u16 action, u16 tid, u16 ssn);
|
||||
void (*sw_scan_start)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr);
|
||||
void (*sw_scan_complete)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
|
||||
u64 (*prepare_multicast)(struct ieee80211_hw *hw, void *mc_list);
|
||||
void (*configure_filter)(struct ieee80211_hw *hw, u32 changed_flags,
|
||||
u32 *total_flags, u64 multicast);
|
||||
int (*sched_scan_start)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *req);
|
||||
void (*sched_scan_stop)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
|
||||
};
|
||||
@@ -87,6 +112,11 @@ extern void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted);
|
||||
extern void ieee80211_connection_loss(struct ieee80211_vif *vif);
|
||||
extern int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid, u16 timeout);
|
||||
extern int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid);
|
||||
extern int ieee80211_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, u32 old_state, u32 new_state);
|
||||
extern struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_hw *hw, const u8 *addr);
|
||||
extern void ieee80211_beacon_loss(struct ieee80211_vif *vif);
|
||||
extern void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, struct sk_buff *skb);
|
||||
extern size_t ieee80211_rx_drain(struct ieee80211_hw *hw);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user