__igc_access_xmdio_reg(9)
π
__igc_access_xmdio_reg(9) β the Kernel API Manual, bestie edition π
okay so welcome to the __igc_access_xmdio_reg</p> page from the Kernel API Manual β¨ this one's all about poking at an XMDIO register β yes, the whole function is literally just "read or write one XMDIO register" and honestly? iconic. short, sweet, does one thing. we love a focused main character π«Ά
β¨ NAME β¨
__igc_access_xmdio_reg β Read/write XMDIO register π«
like, that's it. that's the whole gig. reading, writing, XMDIO, register. periodt π
πΈ SYNOPSIS πΈ
s32 __igc_access_xmdio_reg (struct igc_hw *hw , u16 address , u8
dev_addr , u16 *data , bool read );
it hands you back an s32 (no cap, that's the return type, it's right there) and it takes five things. four of them are info, one of them is a pointer you're gonna write through. bestie, be careful with that pointer π
π¦ ARGUMENTS π¦
hwβ pointer to the HW structure π§ like, the whole hardware context, this is where everything livesaddressβ XMDIO address to program πΈ the spot you're aiming atdev_addrβ device address to program π which device we're talking to, noted as au8btwdataβ pointer to value to read/write from/to the XMDIO address π ok so this one's a pointer to au16and it's doing double duty β it's the value coming in when you write, and the value going out when you read. flexible! also means you better not hand it garbage, fr fr πreadβ boolean flag to indicate read or write β literally the vibe check of the whole call:truemeans read,falsemeans write. the whole behaviour of this function hinges on this one littlebool, we stan a decisive king
π SEE ALSO π
first up, the actual source, in case you wanna go read the real thing (and honestly you should):
- Kernel file
./drivers/net/ethernet/intel/igc/igc_phy.cπ
and then the whole friend group, all of them, in the order the manual gives them π:
igc_check_reset_block(9)igc_get_phy_id(9)igc_phy_has_link(9)igc_power_up_phy_copper(9)igc_power_down_phy_copper(9)igc_check_downshift(9)igc_phy_hw_reset(9)igc_phy_setup_autoneg(9)igc_wait_autoneg(9)igc_copper_link_autoneg(9)igc_setup_copper_link(9)igc_read_phy_reg_mdic(9)igc_write_phy_reg_mdic(9)igc_read_xmdio_reg(9)igc_write_xmdio_reg(9)igc_write_phy_reg_gpy(9)igc_read_phy_reg_gpy(9)igc_read_phy_fw_version(9)igc_force_speed_duplex(9)
nineteen whole cross-references, no skips, we listed every single one because that's what besties do π«Ά
ok real talk: this page gives you the signature and the arg meanings, and that's it β no error codes listed here, no extra behaviour notes, so don't go inventing any. if you need the deep lore it's in igc_phy.c. iykyk π
and that's the page!! this lil beauty lives in ./drivers/net/ethernet/intel/igc, dated October 2026, and the manual itself calls it __igc_access_xmdio_reg(9). mwah π slay, go read your registers responsibly β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms