STRUCT KSZ_HW(9)
π 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 toKSZ8842switch. 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 byMAX_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
- 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