igb_mii_ioctl(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… igb_mii_ioctl(9) β€” the manual page, but make it make sense

okay so bestie, we're in section 9 of the kernel API manual today (that's the igb_mii_ioctl(9) page, if you're keeping track πŸŽ€), and honestly? this one is short. like, suspiciously short. but we're gonna cover every crumb, no cap.

Heads up: the NAME line is literally just igb_mii_ioctl - with nothing after the dash. not me staring at the void 😭 that's just how the page is. no description was given, so no description we shall invent. lowkey iconic of it.


✨ SYNOPSIS ✨

the whole function, delivered fresh:

int igb_mii_ioctl (struct net_device *netdev , struct ifreq *ifr , int cmd );

yeah that's it. three args, returns an int. she's compact πŸ¦‹


🌸 ARGUMENTS 🌸

okay so here's the trio, one by one, exactly as the page spells them:

  • netdev β€” pointer to netdev struct. yeah. that's the description. a pointer to netdev. thank u king πŸ’…
  • ifr β€” interface structure. the ifreq situation. it's giving "you know what that is."
  • cmd β€” ioctl command to execute. the actual thing you're asking for. the main character of the call, honestly πŸ‘‘
ngl these one-liners are doing the absolute bare minimum. but we keep every word, bc that's the rule. no detail left behind fr fr πŸ’–

πŸ¦‹ SEE ALSO πŸ¦‹

okay so THIS is where the page goes feral. it's not a "see also", it's a whole family reunion. the kernel file itself is at ./drivers/net/ethernet/intel/igb/igb_main.c, and then there's the entire extended cast, all in section 9, in exactly this order:

igb_get_i2c_data(9), igb_set_i2c_data(9), igb_set_i2c_clk(9), igb_get_i2c_clk(9), igb_get_hw_dev(9), igb_init_module(9), igb_exit_module(9), igb_cache_ring_register(9), igb_write_ivar(9), igb_configure_msix(9), igb_request_msix(9), igb_free_q_vector(9), igb_reset_q_vector(9), igb_free_q_vectors(9), igb_clear_interrupt_scheme(9), igb_set_interrupt_capability(9), igb_alloc_q_vector(9), igb_alloc_q_vectors(9), igb_init_interrupt_scheme(9), igb_request_irq(9), igb_irq_disable(9), igb_irq_enable(9), igb_release_hw_control(9), igb_get_hw_control(9), igb_config_tx_modes(9), igb_setup_tx_mode(9), igb_configure(9), igb_power_up_link(9), igb_power_down_link(9), igb_check_swap_media(9), igb_up(9), igb_set_i2c_bb(9), igb_set_fw_version(9), igb_init_mas(9), igb_init_i2c(9), igb_probe(9), igb_remove_i2c(9), igb_remove(9), igb_probe_vfs(9), igb_sw_init(9), __igb_open(9), __igb_close(9), igb_setup_tx_resources(9), igb_setup_all_tx_resources(9), igb_setup_tctl(9), igb_configure_tx_ring(9), igb_configure_tx(9), igb_setup_rx_resources(9), igb_setup_all_rx_resources(9), igb_setup_mrqc(9), igb_setup_rctl(9), igb_setup_srrctl(9), igb_configure_rx_ring(9), igb_configure_rx(9), igb_free_tx_resources(9), igb_free_all_tx_resources(9), igb_clean_tx_ring(9), igb_clean_all_tx_rings(9), igb_free_rx_resources(9), igb_free_all_rx_resources(9), igb_clean_rx_ring(9), igb_clean_all_rx_rings(9), igb_set_mac(9), igb_write_mc_addr_list(9), igb_set_rx_mode(9), igb_has_link(9), igb_check_lvmmc(9), igb_watchdog(9), igb_update_ring_itr(9), igb_update_itr(9), igb_tx_timeout(9), igb_get_stats64(9), igb_change_mtu(9), igb_update_stats(9), igb_set_uta(9), igb_intr_msi(9), igb_intr(9), igb_poll(9), igb_clean_tx_irq(9), igb_reuse_rx_page(9), igb_add_rx_frag(9), igb_is_non_eop(9), igb_cleanup_headers(9), igb_process_skb_fields(9), igb_alloc_rx_buffers(9), igb_ioctl(9), igb_io_error_detected(9), igb_io_slot_reset(9), igb_io_resume(9), igb_rar_set_index(9), igb_read_i2c_byte(9), igb_write_i2c_byte(9).

like. ninety of them. she said "you want context? have ALL the context." and we respect it 🫢


and that's the whole page!! short, sweet, and absolutely committed to the bit. 🌈

cute little sign-off: this one lives under ./drivers/net/ethernet/intel/igb, dated October 2026, and it's filed as igb_mii_ioctl(9). go read the source, bestie, it's all in igb_main.c πŸ’œβœ¨

πŸ“¦ where this page comes from