STRUCT KSZ_HW(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct ksz_hw(9) β€” KSZ884X hardware data structure

okay bestie, welcome to the struct ksz_hw(9) page from the Kernel API Manual πŸ’– this is the whole KSZ884X hardware data structure, and we're gonna go through every single member like it's the group chat receipts. no cap, nothing skipped.

✨ NAME

struct ksz_hw β€” KSZ884X hardware data structure. literally the hardware data structure for KSZ884X, and yes, that's the vibe.

πŸ¦‹ SYNOPSIS

okay so here's the struct in all its glory β€” every field exactly as written, bestie:

       struct ksz_hw {
           void __iomem *io;
           struct ksz_switch *ksz_switch;
           struct ksz_port_info port_info[SWITCH_PORT_NUM];
           struct ksz_port_mib port_mib[TOTAL_PORT_NUM];
           int dev_count;
           int dst_ports;
           int id;
           int mib_cnt;
           int mib_port_cnt;
           u32 tx_cfg;
           u32 rx_cfg;
           u32 intr_mask;
           u32 intr_set;
           uint intr_blocked;
           struct ksz_desc_info rx_desc_info;
           struct ksz_desc_info tx_desc_info;
           int tx_int_cnt;
           int tx_int_mask;
           int tx_size;
           u8 perm_addr[ETH_ALEN];
           u8 override_addr[ETH_ALEN];
           u8 address[ADDITIONAL_ENTRIES][ETH_ALEN];
           u8 addr_list_size;
           u8 mac_override;
           u8 promiscuous;
           u8 all_multi;
           u8 multi_list[MAX_MULTICAST_LIST][ETH_ALEN];
           u8 multi_bits[HW_MULTICAST_SIZE];
           u8 multi_list_size;
           u8 enabled;
           u8 rx_stop;
           u8 reserved2[1];
           uint features;
           uint overrides;
           void *parent;
        };

🫢 Members

okay bestie, here's the member-by-member breakdown β€” every single one, with the exact names in code. πŸ’…

  • io β€” Virtual address assigned. that's it, that's the field.
  • ksz_switch β€” Pointer to KSZ8842 switch. iconic pointer energy.
  • port_info β€” Port information. the port info bucket.
  • port_mib β€” Port MIB information. MIB data lives here.
  • dev_count β€” Number of network devices this hardware supports.
  • dst_ports β€” Destination ports in switch for transmission.
  • id β€” Hardware ID. Used for display only.
  • mib_cnt β€” Number of MIB counters this hardware has.
  • mib_port_cnt β€” Number of ports with MIB counters.
  • tx_cfg β€” Cached transmit control settings.
  • rx_cfg β€” Cached receive control settings.
  • intr_mask β€” Current interrupt mask.
  • intr_set β€” Current interrupt set.
  • intr_blocked β€” Interrupt blocked.
  • rx_desc_info β€” Receive descriptor information.
  • tx_desc_info β€” Transmit descriptor information.
  • tx_int_cnt β€” Transmit interrupt count. Used for TX optimization.
  • tx_int_mask β€” Transmit interrupt mask. Used for TX optimization.
  • tx_size β€” Transmit data size. Used for TX optimization. The maximum is defined by MAX_TX_HELD_SIZE.
  • perm_addr β€” Permanent MAC address.
  • override_addr β€” Overridden MAC address.
  • address β€” Additional MAC address entries.
  • addr_list_size β€” Additional MAC address list size.
  • mac_override β€” Indication of MAC address overridden.
  • promiscuous β€” Counter to keep track of promiscuous mode set.
  • all_multi β€” Counter to keep track of all multicast mode set.
  • multi_list β€” Multicast address entries.
  • multi_bits β€” Cached multicast hash table settings.
  • multi_list_size β€” Multicast address list size.
  • enabled β€” Indication of hardware enabled.
  • rx_stop β€” Indication of receive process stop.
  • reserved2 β€” none.
  • features β€” Hardware features to enable.
  • overrides β€” Hardware features to override.
  • parent β€” Pointer to parent, network device private structure.

🌈 SEE ALSO

bestie, the kernel file is ./drivers/net/ethernet/micrel/ksz884x.c, and here are all the referenced (9) pages β€” every single one, no skips, periodt:

struct ksz_hw_desc(9)
struct ksz_sw_desc(9)
struct ksz_dma_buf(9)
struct ksz_desc(9)
struct ksz_desc_info(9)
struct ksz_mac_table(9)
struct ksz_vlan_table(9)
struct ksz_port_mib(9)
struct ksz_port_cfg(9)
struct ksz_switch(9)
struct ksz_port_info(9)
struct ksz_port(9)
struct ksz_timer_info(9)
struct ksz_shared_mem(9)
struct ksz_counter_info(9)
struct dev_info(9)
struct dev_priv(9)
hw_turn_on_intr(9)
hw_block_intr(9)
sw_r_table(9)
sw_w_table_64(9)
sw_w_sta_mac_table(9)
sw_r_vlan_table(9)
port_r_mib_cnt(9)
port_r_mib_pkt(9)
port_r_cnt(9)
port_init_cnt(9)
port_cfg(9)
port_r8(9)
port_r16(9)
port_w16(9)
sw_chk(9)
sw_cfg(9)
sw_cfg_broad_storm(9)
sw_get_broad_storm(9)
sw_dis_broad_storm(9)
sw_ena_broad_storm(9)
sw_init_broad_storm(9)
hw_cfg_broad_storm(9)
sw_dis_prio_rate(9)
sw_init_prio_rate(9)
sw_dis_diffserv(9)
sw_dis_802_1p(9)
sw_cfg_replace_null_vid(9)
sw_cfg_replace_vid(9)
sw_cfg_port_based(9)
sw_dis_multi_queue(9)
sw_init_prio(9)
port_get_def_vid(9)
sw_init_vlan(9)
sw_cfg_port_base_vlan(9)
sw_set_addr(9)
sw_set_global_ctrl(9)
port_set_stp_state(9)
sw_clr_sta_mac_table(9)
sw_init_stp(9)
sw_block_addr(9)
hw_r_phy(9)
hw_w_phy(9)
eeprom_read(9)
eeprom_write(9)
port_get_link_speed(9)
port_set_link_speed(9)
port_force_link_speed(9)
hw_chk_wol_pme_status(9)
hw_clr_wol_pme_status(9)
hw_cfg_wol_pme(9)
hw_cfg_wol(9)
hw_set_wol_frame(9)
hw_add_wol_arp(9)
hw_add_wol_bcast(9)
hw_add_wol_mcast(9)
hw_add_wol_ucast(9)
hw_enable_wol(9)
hw_init(9)
hw_reset(9)
hw_setup(9)
hw_setup_intr(9)
hw_set_desc_base(9)
hw_start_rx(9)
hw_stop_rx(9)
hw_start_tx(9)
hw_stop_tx(9)
hw_disable(9)
hw_enable(9)
hw_alloc_pkt(9)
hw_send_pkt(9)
hw_set_addr(9)
hw_read_addr(9)
hw_clr_multicast(9)
hw_set_grp_addr(9)
hw_set_multicast(9)
hw_set_promiscuous(9)
sw_enable(9)
sw_setup(9)
ksz_start_timer(9)
ksz_stop_timer(9)
ksz_alloc_soft_desc(9)
ksz_alloc_desc(9)
free_dma_buf(9)
ksz_init_rx_buffers(9)
ksz_alloc_mem(9)
ksz_free_desc(9)
ksz_free_buffers(9)
ksz_free_mem(9)
send_packet(9)
transmit_cleanup(9)
tx_done(9)
netdev_tx(9)
netdev_tx_timeout(9)
netdev_intr(9)
netdev_close(9)
netdev_open(9)
netdev_query_statistics(9)
netdev_set_mac_address(9)
netdev_set_rx_mode(9)
netdev_ioctl(9)
mdio_read(9)
mdio_write(9)
netdev_get_link_ksettings(9)
netdev_set_link_ksettings(9)
netdev_nway_reset(9)
netdev_get_link(9)
netdev_get_drvinfo(9)
netdev_get_regs_len(9)
netdev_get_regs(9)
netdev_get_wol(9)
netdev_set_wol(9)
netdev_get_msglevel(9)
netdev_set_msglevel(9)
netdev_get_eeprom_len(9)
netdev_get_eeprom(9)
netdev_set_eeprom(9)
netdev_get_pauseparam(9)
netdev_set_pauseparam(9)
netdev_get_ringparam(9)
netdev_get_strings(9)
netdev_get_sset_count(9)
netdev_get_ethtool_stats(9)
netdev_set_features(9)
dev_monitor(9)
netdev_init(9)

xoxo, your Unix bestie πŸ’– β€” source/version: ./drivers/net/ethernet/micrel; date: October 2026.

πŸ“¦ where this page comes from