STRUCT IWL_DRV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iwl_drv β€” drv common data πŸ’–

ok so bestie, welcome to struct iwl_drv(9), a Kernel API Manual moment. this is the "drv common data" struct β€” the little home base for the iwlwifi driver, and we're gonna walk through every single field together, no skipping, no cap ✨


✨ SYNOPSIS ✨

here's the whole shape of it, copied exactly because we do not mess with struct definitions in this house πŸ’…

struct iwl_drv {
    struct list_head list;
    struct iwl_fw fw;
    struct iwl_op_mode *op_mode;
    struct iwl_trans *trans;
    struct device *dev;
    int fw_index;
    char firmware_name[64];
    struct completion request_firmware_complete;
  #ifdef CONFIG_IWLWIFI_DEBUGFS;
    struct dentry *dbgfs_drv;
    struct dentry *dbgfs_trans;
    struct dentry *dbgfs_op_mode;
  #endif;
 };
🫢 notice the #ifdef CONFIG_IWLWIFI_DEBUGFS block β€” those three dbgfs_* members only exist when that config option is on. the semicolons after the #ifdef / #endif are literally in the source, so we keep them. periodt.

🌸 Members 🌸

okay now the fun part, field by field, let me introduce the whole cast 😭

  • list β€” a list_head holding the list of drv structures that are using this opmode. the friendship group, basically πŸ’œ
  • fw β€” the struct iwl_fw structure itself. the whole firmware situation lives here.
  • op_mode β€” the running op_mode, as an struct iwl_op_mode *. the one currently on shift πŸ‘‘
  • trans β€” the transport layer. yes, struct iwl_trans *, the plumbing that actually moves the bytes 🚚
  • dev β€” a struct device *, and heads up: this one is for debug prints only. don't go building your whole life on it, bestie πŸ™ˆ
  • fw_index β€” an int, the firmware revision to try loading. which one are we attempting today πŸ”₯
  • firmware_name β€” a char [64], the composite filename of the ucode file to load. 64 characters of pure filename energy πŸŽ€
  • request_firmware_complete β€” a struct completion that signals the firmware has been obtained from user space. the "we got it!!" bell 🌈
  • dbgfs_drv β€” a struct dentry *, the debugfs root directory entry. only here under CONFIG_IWLWIFI_DEBUGFS πŸ¦‹
  • dbgfs_trans β€” a struct dentry *, the debugfs transport directory entry. same deal, debugfs-gated ⭐
  • dbgfs_op_mode β€” a struct dentry *, the debugfs op_mode directory entry. third of the trio, also debugfs-gated 🌸
πŸ’€ friendly reminder that dbgfs_drv, dbgfs_trans and dbgfs_op_mode are all wrapped in that #ifdef CONFIG_IWLWIFI_DEBUGFS β€” if the config's off, they're simply not there. don't come for me, that's how the struct is written.

πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/iwl-drv.c and struct iwl_tlv_calib_data(9)

go read those next, iykyk πŸ“š


and that's the page!! this came to you from ./drivers/net/wireless/intel/i... (the path got cute and truncated, we love that for it) dated October 2026, and it's struct iwl_drv(9) all the way down. mwah, stay slay, go read your kernel source πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from