STRUCT IWL_TRANS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iwl_trans(9) β€” the Kernel API Manual, bestie edition

okay so this is struct iwl_trans(9), the actual transport common data ✨ from the Kernel API Manual. ngl this struct is basically the main character of the iwlwifi transport layer β€” it's holding everything together and it knows it πŸ’–


🌸 NAME

struct iwl_trans β€” transport common data πŸ’«


πŸŽ€ SYNOPSIS

struct iwl_trans {
    bool csme_own;
    struct iwl_op_mode *op_mode;
    const struct iwl_mac_cfg *mac_cfg;
    const struct iwl_rf_cfg *cfg;
    struct iwl_drv *drv;
    struct iwl_trans_config conf;
    enum iwl_trans_state state;
    unsigned long status;
    struct device *dev;
    const struct iwl_trans_info info;
    bool reduced_cap_sku;
    bool step_urm;
    bool suppress_cmd_error_once;
    u8 pnvm_loaded:1;
    u8 fail_to_parse_pnvm_image:1;
    u8 reduce_power_loaded:1;
    u8 failed_to_load_reduce_power_image:1;
    struct dentry *dbgfs_dir;
  #ifdef CONFIG_LOCKDEP;
    struct lockdep_map sync_cmd_lockdep_map;
  #endif;
    struct iwl_trans_debug dbg;
    struct iwl_self_init_dram init_dram;
    struct {
      struct delayed_work wk;
      struct iwl_fw_error_dump_mode mode;
      bool during_reset;
    } restart;
    u8 request_top_reset:1, do_top_reset:1;
    char trans_specific[];
 };

slay, look at all those fields 🫢 careful with the bitfields bestie, they're literally single bits and they are NOT here to play 😭


πŸ¦‹ Members

here's the full roster, no skips, no "you get the idea" β€” every single one πŸ’…

  • csme_own β€” true if we couldn't get ownership on the device 😬 (yes that's how it's phrased, yes it's a little cursed)
  • op_mode β€” pointer to the op_mode
  • mac_cfg β€” the trans-specific configuration part ✨
  • cfg β€” pointer to the configuration
  • drv β€” pointer to iwl_drv
  • conf β€” configuration set by the opmode before enter
  • state β€” current device state
  • status β€” a bit-mask of transport status flags 🚩
  • dev β€” pointer to struct device * that represents the device
  • info β€” device information for use by other layers 🫢 (sharing is caring)
  • reduced_cap_sku β€” reduced capability supported SKU
  • step_urm β€” STEP is in URM, no support for MCS>9 in 320 MHz πŸ‘€
  • suppress_cmd_error_once β€” suppress "FW error in SYNC CMD" once, e.g. for testing πŸ™ˆ
  • pnvm_loaded β€” indicates PNVM was loaded βœ…
  • fail_to_parse_pnvm_image β€” set to true if pnvm parsing failed πŸ’€
  • reduce_power_loaded β€” indicates reduced power section was loaded
  • failed_to_load_reduce_power_image β€” set to true if pnvm loading failed 😭
  • dbgfs_dir β€” iwlwifi debugfs base dir for this device
  • sync_cmd_lockdep_map β€” lockdep map for checking sync commands
  • dbg β€” additional debug data, see struct iwl_trans_debug
  • init_dram β€” FW initialization DMA data
  • restart β€” restart worker data
    • restart.wk β€” restart worker
    • restart.mode β€” reset/restart error mode information
    • restart.during_reset β€” error occurred during previous software reset ⚠️
  • request_top_reset β€” TOP reset was requested, used by the reset worker that should be scheduled (with appropriate reason)
  • do_top_reset β€” indication to the (PCIe) transport/context-info to do the TOP reset
  • trans_specific β€” data for the specific transport this is allocated for/with 🧚
lowkey a lot of these are true/false flags telling you something went sideways β€” please actually read them before you assume everything is fine bestie πŸ’€

πŸ”₯ SEE ALSO

the whole friend group, in order, no cap 🫢

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/iwl-trans.h
  • Transport layer - what is it ?(9)
  • Life cycle of the transport layer(9)
  • enum CMD_MODE(9)
  • struct iwl_device_cmd(9)
  • struct iwl_device_tx_cmd(9)
  • enum iwl_hcmd_dataflag(9)
  • struct iwl_host_cmd(9)
  • enum iwl_trans_status(9)
  • struct iwl_dump_sanitize_ops(9)
  • struct iwl_trans_config(9)
  • struct iwl_trans_rxq_dma_data(9)
  • struct iwl_pnvm_image(9)
  • enum iwl_trans_state(9)
  • Platform power management(9)
  • enum iwl_ini_cfg_state(9)
  • struct iwl_dram_data(9)
  • struct iwl_dram_regions(9)
  • struct iwl_fw_mon(9)
  • struct iwl_self_init_dram(9)
  • struct iwl_imr_data(9)
  • struct iwl_pc_data(9)
  • struct iwl_trans_debug(9)
  • struct iwl_trans_info(9)
  • iwl_trans_resched_with_nic_access(9)

and that's the whole page, periodt πŸŒˆπŸ’œ before you go: this one came from ./drivers/net/wireless/intel/i... and it's dated October 2026 β€” so yeah, future-dated manpage energy, we love to see it πŸŽ€ go read the transport layer docs, ily, bye βœ¨πŸ’–

πŸ“¦ where this page comes from