wiphy_new_nm(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« wiphy_new_nm β€” like, the Kernel API Manual (section 9) page, bestie ✨

Okay so picture this: you're deep in the Kernel API Manual, section 9, and you hit wiphy_new_nm. Iconic name, honestly. Let me break it down for you 🫢


🌸 NAME 🌸

wiphy_new_nm β€” create a new wiphy for use with cfg80211

Like, that's the whole job. It makes a wiphy. For cfg80211. Slay πŸ’…


✨ SYNOPSIS ✨

struct wiphy * wiphy_new_nm (const struct cfg80211_ops *ops , int
       sizeof_priv , const char *requested_name );

Three things in, one struct wiphy * out. That's the whole vibe check πŸ”₯


πŸŽ€ ARGUMENTS πŸŽ€

  • ops β€” the configuration operations for this device. Basically the whole personality of your device, handed over as a struct πŸ‘‘
  • sizeof_priv β€” the size of the private area to allocate. Yes bestie, you're telling it how much room your own little private stash needs πŸ“¦
  • requested_name β€” you can request a particular name here. NULL is a valid value, and it means use the default phyd naming. So like, no name = default name, no drama πŸ™ˆ

πŸ’œ DESCRIPTION πŸ’œ

Create a new wiphy and associate the given operations with it. sizeof_priv bytes are allocated for private use. That's it, that's the whole thing β€” new wiphy, ops attached, and a private area sized exactly the way you asked for it 🧚


⭐ RETURN ⭐

A pointer to the new wiphy. Fr fr, this pointer must be assigned to each netdev's ieee80211_ptr for proper operation β€” like, don't just leave it sitting there, that's not the move 😭

Bestie warning: if you don't wire that pointer into each netdev's ieee80211_ptr, proper operation is not happening. Not optional, ngl πŸ’€

✨ SEE ALSO ✨

okay bestie, buckle up πŸ’– because this is the part where the page just... lists everyone this function knows. like a group chat with 358 members and honestly? every single one of them is relevant. no cap. i'm keeping them all, in order, exactly as written β€” because leaving one out would be a crime πŸ’…


πŸŽ€ the first three, the holy trinity of "go read the intro"


🌸 all the band / rate / cap stuff (the "what can this radio even do" crew)


πŸ¦‹ Actions and configuration β€” the whole main-character arc of doing stuff

like genuinely this is the longest clique in the group chat and they're all iconic in their own way ✨


πŸŽ€ Scanning and BSS list handling β€” the "who's out there" squad

  • 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)

🌈 Neighbor Awareness Networking (NAN) β€” the ✨proximity besties✨

  • 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)

🫢 the wiphy core β€” ops, flags, and all the capability structs

  • struct cfg80211_ops(9)
  • enum wiphy_flags(9)
  • struct ieee80211_iface_limit(9)
  • struct ieee80211_iface_combination(9)
  • enum wiphy_wowlan_support_flags(9)
  • struct wiphy_wowlan_support(9)
  • struct wiphy_coalesce_support(9)
  • enum wiphy_vendor_command_flags(9)
  • enum wiphy_opmode_flag(9)
  • struct sta_opmode_info(9)
  • struct wiphy_vendor_command(9)
  • struct wiphy_iftype_ext_capab(9)
  • cfg80211_get_iftype_ext_capa(9)
  • struct cfg80211_pmsr_capabilities(9)
  • struct wiphy_iftype_akm_suites(9)
  • struct wiphy_radio_cfg(9)
  • struct wiphy_radio_freq_range(9)
  • struct wiphy_radio(9)
  • enum wiphy_nan_flags(9)
  • struct wiphy_nan_capa(9)
  • struct wiphy(9)

πŸ’€ the wiphy lifecycle and all its little work helpers (yes, all of them, i counted)


🧚 Utility functions β€” the little helpers that lowkey carry everything


πŸ“ Data path helpers β€” the ones doing the actual carrying of the packets


πŸ‘‘ Regulatory enforcement infrastructure + the internal regdb bits


πŸ’œ the big pile of cfg80211_* notify / report / done functions


⭐ RFkill, vendor commands, test mode β€” the special-interest besties


πŸ”₯ the rest of the saga β€” connect, roam, mgmt tx/rx, stats, and every notifier

ngl this is the long tail and it goes hard fr fr 😭


and yeah that's the entire friend list πŸ’– like, all 358 of them, nobody got left on read. the page keeps going tho β€” more to come, so don't go anywhere πŸ¦‹

...and here's the rest of the guest list πŸ’– ngl it's giving phonebook, but every single one of these has its own page and they're all ride-or-die for the same subsystem, so go say hi:


okay that's the whole thing, bestie β€” you made it to the end, I'm so proud πŸ˜­πŸ’œ this page lives in ./include/net, it's dated October 2026, and the page itself is wiphy_new_nm(9). go forth and build something iconic with it βœ¨πŸŽ€

πŸ“¦ where this page comes from