wiphy_locked_debugfs_read(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so bestie, welcome to the wiphy_locked_debugfs_read(9) page from the Kernel API Manual β€” part 1 is here, and it's literally about doing a locked read in debugfs, no cap ✨

πŸ’– NAME πŸ’–

wiphy_locked_debugfs_read β€” do a locked read in debugfs πŸŽ€

✨ SYNOPSIS ✨

Here's the whole signature, bestie β€” yes it's a long one, don't panic πŸ’…

ssize_t wiphy_locked_debugfs_read (struct wiphy *wiphy , struct file
       *file , char *buf , size_t bufsize , char __user *userbuf , size_t count
       , loff_t *ppos , ssize_t (*handler)(struct wiphy *wiphy, struct file
       *file, char *buf, size_t bufsize, void *data) , void *data );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • wiphy β€” the wiphy we're working with, bestie πŸ’œ
  • file β€” the file being read, periodt
  • buf β€” the buffer we fill and then read from 🌸
  • bufsize β€” the size of that buffer, no cap
  • userbuf β€” the user buffer we copy to 🫢
  • count β€” the read count, literally
  • ppos β€” the read position πŸ“
  • handler β€” the read handler we call (under the wiphy lock, iykyk) πŸ”₯
  • data β€” additional data we pass to the read handler ✨

🌈 RETURN 🌈

It returns the number of characters read, or a negative errno β€” that's the whole vibe check 😭

✨ SEE ALSO ✨

okay so the SEE ALSO section here is literally the entire guest list of the cfg80211 manpage universe πŸ’… and the original just yeets all 359 of them into one giant run-on paragraph. iconic of it tbh. I'm keeping the exact order, every single entry, no skipping, no shrinking β€” because bestie, a reference list is a promise 🫢

first up, the source file itself and the intro crew, then a whole parade of structs and enums that all want your attention:

then we roll into the actions-and-configuration block, which is giving "big binder energy" β€” chandef girls, DFS girls, station girls, SAR girls, mesh girls, all of them 😭 your girl is not dropping a single name:

and now the scanning/BSS chapter of the guest list, aka the "we found a network, now what" squad πŸ’– look at the size of this thing, I'm obsessed:

  • Scanning and BSS list handling(9)
  • struct cfg80211_ssid(9)
  • struct cfg80211_scan_info(9)
  • struct cfg80211_scan_6ghz_params(9)
  • struct cfg80211_scan_request(9)
  • struct cfg80211_match_set(9)
  • struct cfg80211_sched_scan_plan(9)
  • struct cfg80211_bss_select_adjust(9)
  • struct cfg80211_sched_scan_request(9)
  • enum cfg80211_signal_type(9)
  • struct cfg80211_inform_bss(9)
  • struct cfg80211_bss_ies(9)
  • struct cfg80211_bss(9)
  • ieee80211_bss_get_elem(9)
  • ieee80211_bss_get_ie(9)
  • struct cfg80211_auth_request(9)
  • struct cfg80211_assoc_link(9)
  • struct cfg80211_ml_reconf_req(9)
  • enum cfg80211_assoc_req_flags(9)
  • struct cfg80211_assoc_request(9)
  • struct cfg80211_deauth_request(9)
  • struct cfg80211_disassoc_request(9)
  • struct cfg80211_ibss_params(9)
  • struct cfg80211_bss_selection(9)
  • struct cfg80211_connect_params(9)
  • enum cfg80211_connect_params_changed(9)
  • enum wiphy_params_flags(9)
  • struct cfg80211_pmksa(9)
  • struct cfg80211_pkt_pattern(9)
  • struct cfg80211_wowlan_tcp(9)
  • struct cfg80211_wowlan(9)
  • struct cfg80211_coalesce_rules(9)
  • struct cfg80211_coalesce(9)
  • struct cfg80211_wowlan_nd_match(9)
  • struct cfg80211_wowlan_nd_info(9)
  • struct cfg80211_wowlan_wakeup(9)
  • struct cfg80211_gtk_rekey_data(9)
  • struct cfg80211_update_ft_ies_params(9)
  • struct cfg80211_mgmt_tx_params(9)
  • struct cfg80211_dscp_exception(9)
  • struct cfg80211_dscp_range(9)
  • struct cfg80211_qos_map(9)

NAN block next β€” Neighbor Awareness Networking, the social butterfly of the reference list πŸ¦‹ nine nan_ entries and then a bunch of extras that got tacked on after, all present and accounted for:

  • Neighbor Awareness Networking (NAN)(9)
  • struct cfg80211_nan_band_config(9)
  • struct cfg80211_nan_conf(9)
  • struct cfg80211_nan_channel(9)
  • struct cfg80211_nan_local_sched(9)
  • struct cfg80211_nan_peer_map(9)
  • struct cfg80211_nan_peer_sched(9)
  • enum cfg80211_nan_conf_changes(9)
  • struct cfg80211_nan_func_filter(9)
  • struct cfg80211_nan_func(9)
  • struct cfg80211_pmk_conf(9)
  • struct cfg80211_external_auth_params(9)
  • struct cfg80211_ftm_responder_stats(9)
  • struct cfg80211_pmsr_ftm_result(9)
  • struct cfg80211_pmsr_result(9)
  • struct cfg80211_pmsr_ftm_request_peer(9)
  • struct cfg80211_pmsr_request_peer(9)
  • struct cfg80211_pmsr_request(9)
  • struct cfg80211_update_owe_info(9)
  • struct mgmt_frame_regs(9)

then the wiphy life-cycle block, which goes hard β€” ops, flags, the whole wiphy_* family reunion, plus the work/delayed-work/hrtimer-work triplets that are honestly giving synchronized swimming 🌸 and after them, the wireless_dev girls:

utility functions + data path helpers, aka the "we're doing conversions and header lengths now" era 🌈 channelβ†’khz, khzβ†’channel, the find-the-element squad, the whole 8023 pipeline, it's all here:

regulatory enforcement block β€” short but mighty, and yes, Internal regulatory db functions(9) is a whole entry of its own, I didn't make that up 🫢 so it stays:

then back to BSS handling and the notification girlies β€” scan done, sched scan stuff, assoc resp, mlme mgmt, michael mic failure, ibss joined, all of it πŸ’€ this is the longest stretch in the whole list and it's not even close to over:

rfkill + vendor commands + test mode, the little mini-arc at the end of the middle πŸ’… note that RFkill integration(9), Vendor commands(9), and Test mode(9) are all legit entries here, not just section names, so they're getting their bullets and their moment:

and the final stretch β€” connect/roam/disconnect notifications, the rx/tx mgmt crowd, cqm, cac, radar, beaconing check config, the whole closer πŸŽ€ every last one made it in:

that's the whole guest list for real β€” nothing cut, nothing merged, nothing renamed, fr fr πŸ’– if a name's in the original it's in here, down to the double-underscore ones like __cfg80211_get_bss(9) and __cfg80211_radar_event(9), and the ones with the leading underscore like _ieee80211_set_sband_iftype_data(9). no cap ✨

…and honestly bestie, this friend group is MASSIVE, so here's the rest of the roll call β€” every single one, no skips, no "I'll get to it later" πŸ’…

The regulatory beaconing trio β€” they roll together, always 🌸

Channel-switch notification besties, one for "started", one for "hey it happened" ✨

Conversion girlies πŸ” β€” they literally just translate things back and forth and honestly? iconic.

The feature-flag duo β€” set it, then check if it's set. Groundbreaking. Obsessed. πŸŽ€

Okay the NAN crew is lowkey everywhere, and there's more of them coming, so brace yourself πŸ¦‹

The colour-change squad!! started, aborted, done β€” they've got the whole emotional arc covered fr fr 😭🌈

See? Told you there was more NAN πŸ’€ the NAN extended universe is real.

And here's the sibling!! The write half of the debugfs duo β€” this page's other half, living its best life one file over 🫢

The S1G corner of the party, plus one incumbent-signal notification to round it out. We love a full roster πŸ‘‘


That's the whole squad, bestie β€” not one name dropped, not one link lost ✨ Go click through them and have the best time, and remember: wiphy_locked_debugfs_read(9) is your main character, everyone else is supporting cast πŸ’–

Go read the actual pages if you need the real details β€” this one's just the vibe check, the cross-references are where the lore lives πŸ™ˆ

And that's a wrap on the whole thing! Big kiss to ./include/net for being the source of all this wisdom, and to the October 2026 edition of the docs β€” she's fresh, she's current, she's slaying. Forever yours, wiphy_locked_debugfs_read(9) πŸŽ€πŸ’œπŸŒΈ

πŸ“¦ where this page comes from