hw_turn_on_intr(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– hw_turn_on_intr (9) β€” Kernel API Manual πŸ’–

okay so bestie, we are in the Kernel API Manual today, and the star of the show is hw_turn_on_intr. yes, that's a 9 in the parens, that means kernel doc, we're fancy now πŸ’…


✨ NAME ✨

hw_turn_on_intr β€” turn on specified interrupts πŸ”₯


🌸 SYNOPSIS 🌸

void hw_turn_on_intr (struct ksz_hw *hw , u32 bit );

like, that's the whole signature. clean, minimal, iconic πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

  • hw β€” The hardware instance. this is your little hardware baddie, the thing we're talking to 🫢
  • bit β€” The interrupt bits to be on. plural bits, one variable, the way that multitasking is literally main character energy ✨

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so what does this routine do? it turns on the specified interrupts in the interrupt mask, so that those interrupts will be enabled. that's it. that's the whole vibe check. it flips the bits you handed it, they go live, the interrupts start interrupting. slay πŸ’–

no cap, this is a small one β€” but small functions ate and left no crumbs 🌈


πŸ’œ SEE ALSO πŸ’œ

buckle up bestie, this reference list is long and honestly it's giving "the whole driver in one SEE ALSO" 😭

first up, the kernel file itself: ./drivers/net/ethernet/micrel/ksz884x.c β€” that's where the magic lives.

then the structs, and there are a lot of them: 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).

then the switch/table crowd: 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).

then the phy / eeprom / link squad: 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).

then the hw lifecycle besties: 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).

then timers, descriptors and memory: 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).

then the tx path: 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).

then the netdev ops parade: 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).


ngl bestie, if you actually read every single one of those, you deserve a little treat πŸ“

and that's the page!! πŸ’« this lil doc comes to you from ./drivers/net/ethernet/micrel, dated October 2026, and yeah β€” hw_turn_on_intr(9) forever πŸ§šβ€β™€οΈπŸ’œ

πŸ“¦ where this page comes from