STRUCT ETHTOOL_EEPROM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct ethtool_eeprom(9) πŸ’–

okay bestie, welcome to the struct ethtool_eeprom(9) page from the Kernel API Manual β€” this is literally the EEPROM dump struct and it's giving β€œtiny but important” energy ✨


🌸 NAME 🌸

struct ethtool_eeprom β€” EEPROM dump 🫢


✨ SYNOPSIS ✨

here's the exact shape of it, bestie β€” do not rename these fields, they are iconic:

struct ethtool_eeprom {
    __u32 cmd;
    __u32 magic;
    __u32 offset;
    __u32 len;
    __u8 data[];
 };

πŸŽ€ Members πŸŽ€

  • cmd β€” Command number = ETHTOOL_GEEPROM, ETHTOOL_GMODULEEEPROM or ETHTOOL_SEEPROM πŸ’…
  • magic β€” A 'magic cookie' value to guard against accidental changes. The value passed in to ETHTOOL_SEEPROM must match the value returned by ETHTOOL_GEEPROM for the same device. This is unused when cmd is ETHTOOL_GMODULEEEPROM. no cap, it's giving tiny security blanket πŸ“
  • offset β€” Offset within the EEPROM to begin reading/writing, in bytes πŸ“
  • len β€” On entry, number of bytes to read/write. On successful return, number of bytes actually read/written. In case of error, this may indicate at what point the error occurred. so yes, it can snitch on where things went wrong πŸ‘€
  • data β€” Buffer to read/write from 🧺

πŸ’… Description πŸ’…

Users may use ETHTOOL_GDRVINFO or ETHTOOL_GMODULEINFO to find the length of an on-board or module EEPROM, respectively. They must allocate the buffer immediately following this structure. that's the whole tea β€” the buffer goes right after the struct, so plan accordingly, bestie πŸ¦‹


🌈 SEE ALSO 🌈

Kernel file ./include/uapi/linux/ethtool.h, plus the whole related-page squad: struct ethtool_cmd(9), struct ethtool_drvinfo(9), struct ethtool_wolinfo(9), struct ethtool_regs(9), struct ethtool_eee(9), struct ethtool_modinfo(9), struct ethtool_coalesce(9), struct ethtool_ringparam(9), struct ethtool_channels(9), struct ethtool_pauseparam(9), enum ethtool_stringset(9), enum ethtool_mac_stats_src(9), enum ethtool_module_power_mode_policy(9), enum ethtool_module_power_mode(9), enum ethtool_c33_pse_ext_state(9), enum ethtool_c33_pse_ext_substate_mr_mps_valid(9), enum ethtool_c33_pse_ext_substate_error_condition(9), enum ethtool_c33_pse_ext_substate_mr_pse_enable(9), enum ethtool_c33_pse_ext_substate_option_detect_ted(9), enum ethtool_c33_pse_ext_substate_option_vport_lim(9), enum ethtool_c33_pse_ext_substate_ovld_detected(9), enum ethtool_c33_pse_ext_substate_power_not_available(9), enum ethtool_c33_pse_ext_substate_short_detected(9), enum ethtool_pse_types(9), enum ethtool_c33_pse_admin_state(9), enum ethtool_c33_pse_pw_d_status(9), enum ethtool_podl_pse_admin_state(9), enum ethtool_podl_pse_pw_d_status(9), enum ethtool_mm_verify_status(9), enum ethtool_module_fw_flash_status(9), struct ethtool_gstrings(9), struct ethtool_sset_info(9), enum ethtool_test_flags(9), struct ethtool_test(9), struct ethtool_stats(9), struct ethtool_perm_addr(9), struct ethtool_tcpip4_spec(9), struct ethtool_ah_espip4_spec(9), struct ethtool_usrip4_spec(9), struct ethtool_tcpip6_spec(9), struct ethtool_ah_espip6_spec(9), struct ethtool_usrip6_spec(9), struct ethtool_flow_ext(9), struct ethtool_rx_flow_spec(9), struct ethtool_rxnfc(9), struct ethtool_rxfh_indir(9), struct ethtool_rxfh(9), struct ethtool_rx_ntuple_flow_spec(9), struct ethtool_rx_ntuple(9), struct ethtool_dump(9), struct ethtool_get_features_block(9), struct ethtool_gfeatures(9), struct ethtool_set_features_block(9), struct ethtool_sfeatures(9), struct ethtool_ts_info(9), struct ethtool_per_queue_op(9), struct ethtool_fecparam(9), enum ethtool_fec_config_bits(9), struct ethtool_link_settings(9), enum phy_upstream(9) πŸ’œ


alright bestie, that's the whole page 🫢 this one came from ./include/uapi/linux and it's dated October 2026 β€” mwah, go read some EEPROMs responsibly ✨

πŸ“¦ where this page comes from