sw_r_table(9)
sw_r_table(9) π
okay bestie, this page comes from the Kernel API Manual, and itβs giving βtiny switch-table read with main character energyβ β¨π. no cap, itβs a whole little routine.
β¨ NAME β¨
sw_r_table β read 4 bytes of data from switch table πΎβ¨
πΈ SYNOPSIS πΈ
void sw_r_table (struct ksz_hw *hw , int table , u16 addr , u32 *data );
π ARGUMENTS π
hwβ the hardware instance, periodt π«Άtableβ the table selector; pick your table, bestie π―addrβ the address of the table entry πdataβ buffer to store the read data π
π¦ DESCRIPTION π¦
okay so this routine reads 4 bytes of data from the table of the switch. thatβs literally the mission: 4 bytes, switch table, done ππ.
while itβs doing that, hardware interrupts are disabled to minimize corruption of read data. so yeah β interrupts get blocked so the read data doesnβt get messy. protective bubble moment π«§β¨.
π SEE ALSO π
start with the Kernel file ./drivers/net/ethernet/micrel/ksz884x.c, and then the whole iconic friend group is:
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_hw(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_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, from ./drivers/net/ethernet/micrel β 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