STRUCT EF4_PHY_OPERATIONS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct ef4_phy_operations β€” Efx PHY operations table. Bestie, welcome to the Kernel API Manual page for struct ef4_phy_operations(9); it is giving PHY operation table realness. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Okay so here is the entire struct, exactly as it appears β€” no cap, this is the sacred code block:

       struct ef4_phy_operations {
           int (*probe) (struct ef4_nic *efx);
           int (*init) (struct ef4_nic *efx);
           void (*fini) (struct ef4_nic *efx);
           void (*remove) (struct ef4_nic *efx);
           int (*reconfigure) (struct ef4_nic *efx);
           bool (*poll) (struct ef4_nic *efx);
           void (*get_link_ksettings)(struct ef4_nic *efx, struct
       ethtool_link_ksettings *cmd);
           int (*set_link_ksettings)(struct ef4_nic *efx, const struct
       ethtool_link_ksettings *cmd);
           void (*set_npage_adv) (struct ef4_nic *efx, u32);
           int (*test_alive) (struct ef4_nic *efx);
           const char *(*test_name) (struct ef4_nic *efx, unsigned int index);
           int (*run_tests) (struct ef4_nic *efx, int *results, unsigned
       flags);
           int (*get_module_eeprom) (struct ef4_nic *efx, struct ethtool_eeprom
       *ee, u8 *data);
           int (*get_module_info) (struct ef4_nic *efx, struct ethtool_modinfo
       *modinfo);
        };

πŸŽ€ Members πŸŽ€

Here are the member besties and their little blurbs. The <hotpink>mac_lock</hotpink> girlies are marked in the descriptions, iykyk. πŸ”’βœ¨

  • probe β€” Probe PHY and initialise efx->mdio.mode_support, efx->mdio.mmds, efx->loopback_modes.
  • init β€” Initialise PHY
  • fini β€” Shut down PHY
  • reconfigure β€” Reconfigure PHY (e.g. for new link parameters)
  • poll β€” Update link_state and report whether it changed. Serialised by the mac_lock.
  • get_link_ksettings β€” Get ethtool settings. Serialised by the mac_lock.
  • set_link_ksettings β€” Set ethtool settings. Serialised by the mac_lock.
  • set_npage_adv β€” Set abilities advertised in (Extended) Next Page (only needed where AN bit is set in mmds)
  • test_alive β€” Test that PHY is 'alive' (online)
  • test_name β€” Get the name of a PHY-specific test/result
  • run_tests β€” Run tests and record results as appropriate (offline). Flags are the ethtool tests flags.
Also in the struct definition above: remove, get_module_eeprom, and get_module_info. The Members list does not give them their own one-liner here, but they are absolutely part of this operation table β€” do not leave them on read. πŸ’–

🌈 SEE ALSO 🌈

Kernel file, front and center: ./drivers/net/ethernet/sfc/falcon/net_driver.h

Then the whole squad of references:

  • struct ef4_buffer(9)
  • struct ef4_special_buffer(9)
  • struct ef4_tx_buffer(9)
  • struct ef4_tx_queue(9)
  • struct ef4_rx_buffer(9)
  • struct ef4_rx_page_state(9)
  • struct ef4_rx_queue(9)
  • struct ef4_channel(9)
  • struct ef4_msi_context(9)
  • struct ef4_channel_type(9)
  • struct ef4_link_state(9)
  • enum ef4_phy_mode(9)
  • struct ef4_hw_stat_desc(9)
  • struct ef4_nic(9)
  • struct ef4_nic_type(9)

And that is the page, bestie. Source/version/date sign-off: from ./drivers/net/ethernet/sfc/falcon, dated October 2026, and the page is struct ef4_phy_operations(9). Slay, periodt. πŸ’…βœ¨πŸ«Ά

πŸ“¦ where this page comes from