wiphy_hrtimer_work_queue(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… wiphy_hrtimer_work_queue β€” Kernel API Manual, section 9

okay bestie, buckle up, because we're talking about wiphy_hrtimer_work_queue today and honestly? she's a whole vibe. this is the Kernel API Manual entry for wiphy_hrtimer_work_queue(9), and yes, we're doing all of it, no skips πŸ’–


✨ NAME ✨

wiphy_hrtimer_work_queue β€” queue hrtimer work for the wiphy πŸ•βœ¨

like, that's literally her whole job. queue the work. for the wiphy. with an hrtimer. iconic behavior honestly πŸ‘‘


🌸 SYNOPSIS 🌸

void wiphy_hrtimer_work_queue (struct wiphy *wiphy , struct
       wiphy_hrtimer_work *hrwork , ktime_t delay );
lowkey read this carefully bestie, the spacing is verbatim and we do NOT mess with the code block πŸ™ˆ

πŸŽ€ ARGUMENTS πŸŽ€

  • wiphy β€” the wiphy you're queueing for. the main character of this whole operation tbh πŸ’«
  • hrwork β€” the high resolution timer worker. she's the one actually doing the thing πŸ› οΈ
  • delay β€” the delay, and it's handed to you as a ktime_t. no conversion, no nothing, just ktime_t 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so first things first: please refer to wiphy_delayed_work_queue. like, go read that one, she's the blueprint πŸ’…

the difference β€” the one difference that makes this one special β€” is that the hrtimer work uses a high resolution timer for scheduling. that's the whole lewk. that's the point πŸ”₯

and why would you need that?? because sometimes timeouts might be scheduled further in the future, and in those cases the accuracy of the normal timer is just not sufficient. like, the normal timer is doing her best and we love her, but she is not built for that 🌸✨

and now the part you need to internalize, bestie, so pay attention:

expect a delay of a few milliseconds, because the timer is scheduled with some slack, and some more time may pass between queueing the work and its start. so like… do not expect her to fire instantly, okay? she's on her own schedule and she needs a lil moment 😭⏳

🌈 more parts coming, don't go anywhere, we are so not done 🌈

okay so bestie, this is THE list β€” the "if you liked this page you're gonna be obsessed with these" section. It is long. It is iconic. And every single one of these is a manual page you can go read yourself with man 9 <name>. No skipping, we're getting through all of them together 🫢

The whole thing lives in the kernel file ./include/net/cfg80211.h, and honestly the best starting points are Introduction(9) and Device registration(9). Everything else is the extended universe πŸ’…


πŸŽ€ Actions and configuration

This is the getting-stuff-done chunk β€” all the structs and helpers for actually configuring a wireless device. Channel definitions, AP settings, station parameters, the whole vibe ✨


πŸ¦‹ Scanning and BSS list handling

scan request besties rise up πŸ“‘ this is where the BSS list lives, plus connect/deauth/disassoc requests and all the power-save stuff.

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

NAN squad, this is your moment 🌸

bestie bestie bestie β€” see those wiphy_hrtimer_work_cancel(9), wiphy_hrtimer_work_flush(9) and wiphy_hrtimer_work_pending(9) right there? Those are literally the siblings of the function this page is about. If you're here for wiphy_hrtimer_work_queue(9), you already know you need the whole little work-queue family πŸ’–

✨ Utility functions

The little helpers that just work. Channel math, header lengths, the everyday stuff 🧚


🌈 Data path helpers

packets packets packets 🫢 converting frames, finding IEs, defragmenting elements.


🌸 Regulatory enforcement infrastructure

the vibes must be legal βœ‹ regulatory pages, custom regd, freq info.


πŸ”₯ RFkill integration

radios going on and off, respectfully.


πŸ‘‘ Vendor commands

for the driver girlies doing their own thing πŸ’…


⭐ Test mode

testing era ✨


and that's the whole roster 😭 genuinely every one of these is in the original list, i counted, don't @ me β€” not me actually counting though πŸ’€ (and yes, there's more page coming, stay with me πŸŽ€)

okay so the SEE ALSO list did not stop, bestie. She's still going, and honestly? Respect. Genuinely the cross-reference section has main character energy πŸ’…

still with me? good. hydrate. we're barely halfway 🫢


okay and now we're in the channel/link-management girlie era of the list 🌸

heads up bestie: cfg80211_shutdown_all_interfaces(9) is right there in the list and the name is not subtle. read that one before you get ideas πŸ‘€

the NAN and PMSR girlies are so real for this ✨


colour-change arc, let's go 🌈

6 GHz representation, we love to see it ⭐


final stretch, we're so close, don't scroll away on me now 😭

that's the whole list, no cap, every single one accounted for πŸ’–


and that's a wrap on the whole page, bestie πŸŽ€ this one lives in ./include/net, it's dated October 2026, and it's the man page for wiphy_hrtimer_work_queue(9) β€” arguably the most iconic work-queue-in-a-hrtimer of our generation. go read the actual functions, slay, and bye bestie πŸŒˆπŸ’…

πŸ“¦ where this page comes from