phylink_mii_ioctl(9)
πΈ NAME πΈ
okay so welcome to the Kernel API Manual, section 9, bestie: this page is phylink_mii_ioctl(9), and itβs literally the generic mii ioctl interface. no cap, thatβs the name and the whole vibe. π«Ά
β¨ SYNOPSIS β¨
exact signature time, do not freestyle it:
int phylink_mii_ioctl (struct phylink *pl , struct ifreq *ifr , int cmd
);
π ARGUMENTS π
plβ a pointer to astruct phylinkreturned fromphylink_create. this is the phylink instance youβre working with, bestie.ifrβ a pointer to astruct ifreqfor socket ioctls. yes, thatstruct ifreq, for socket ioctls.cmdβ theioctlcmd to execute. the actual command youβre sending through.
π¦ DESCRIPTION π¦
so it performs the specified MII ioctl on the PHY attached to the phylink instance specified by pl. if no PHY is attached, it emulates the presence of the PHY. like, it fakes the PHY being there. iconic behavior, honestly.
the cmd squad is:
SIOCGMIIPHYβ read register from the current PHY.SIOCGMIIREGβ read register from the specified PHY.SIOCSMIIREGβ set a register on the specified PHY.
π RETURN π
zero on success or negative error code. thatβs the whole return story. zero? slay. negative error code? go debug, bestie. π
π SEE ALSO π
Kernel file ./drivers/net/phy/phylink.c, plus the full squad: struct phylink(9), phylink_set_port_modes(9), phylink_interface_max_speed(9), phylink_caps_to_link_caps(9), phylink_caps_to_linkmodes(9), phylink_limit_mac_speed(9), phylink_cap_from_speed_duplex(9), phylink_get_capabilities(9), phylink_validate_mask_caps(9), phylink_pcs_neg_mode(9), phylink_set_fixed_link(9), phylink_create(9), phylink_destroy(9), phylink_expects_phy(9), phylink_connect_phy(9), phylink_of_phy_connect(9), phylink_fwnode_phy_connect(9), phylink_disconnect_phy(9), phylink_mac_change(9), phylink_pcs_change(9), phylink_start(9), phylink_stop(9), phylink_rx_clk_stop_block(9), phylink_rx_clk_stop_unblock(9), phylink_suspend(9), phylink_prepare_resume(9), phylink_resume(9), phylink_ethtool_get_wol(9), phylink_ethtool_set_wol(9), phylink_ethtool_ksettings_get(9), phylink_ethtool_ksettings_set(9), phylink_ethtool_nway_reset(9), phylink_ethtool_get_pauseparam(9), phylink_ethtool_set_pauseparam(9), phylink_get_eee_err(9), phylink_ethtool_get_eee(9), phylink_ethtool_set_eee(9), phylink_speed_down(9), phylink_speed_up(9), phylink_decode_usxgmii_word(9), phylink_decode_usgmii_word(9), phylink_mii_c22_pcs_decode_state(9), phylink_mii_c22_pcs_get_state(9), phylink_mii_c22_pcs_encode_advertisement(9), phylink_mii_c22_pcs_config(9), phylink_mii_c22_pcs_an_restart(9), phylink_replay_link_begin(9), phylink_replay_link_end(9).
mwah π this cutieβs source is ./drivers/net/phy, dated October 2026, and the manual page is phylink_mii_ioctl(9). bye bestie, go slay those ioctls! π
π¦ 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