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:
2026-04-17 00:03:08 +01:00
parent 7126a76f54
commit e2d2fd138c
25 changed files with 1655 additions and 42 deletions
@@ -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