sis900_mcast_bitnr(9)
π sis900_mcast_bitnr β ngl bestie this one's a lil hash-table baddie
okay so this is a section 9 (Kernel API Manual) page for sis900_mcast_bitnr, and she's honestly kinda iconic in a "small function, big personality" way β¨
π SYNOPSIS
u16 sis900_mcast_bitnr (u8 *addr , u8 revision );
likeβ¦ yes that's the whole signature, she's not long-winded π
πΈ ARGUMENTS
addrβ the multicast address, aka the thing you want a hash index for π«Άrevisionβ the revision id of the chip, because not all silicon is built the same, iykyk
β¨ DESCRIPTION
so the tea is this: SiS 900 uses the most significant 7 bits to index a 128 bits multicast hash table π and that's literally why this function is a little bit different from other drivers. it's giving "not like other girls" but make it network hardware π
meanwhile SiS 900 B0 & 635 M/B uses the most significat 8 bits to index 256 bits multicast hash table π
so yeah β 7 bits β 128 bits table, 8 bits β 256 bits table, and the revision argument is how she knows which vibe she's in. compute hashtable index, that's the whole job, and she ate π₯
π SEE ALSO
Kernel file ./drivers/net/ethernet/sis/sis900.c and honestly the whole sis900 friend group:
sis900_get_mac_addr(9), sis630e_get_mac_addr(9), sis635_get_mac_addr(9), sis96x_get_mac_addr(9), sis900_probe(9), sis900_mii_probe(9), sis900_default_phy(9), sis900_set_capability(9), read_eeprom(9), mdio_read(9), mdio_write(9), sis900_reset_phy(9), sis900_open(9), sis900_init_rxfilter(9), sis900_init_tx_ring(9), sis900_init_rx_ring(9), sis630_set_eq(9), sis900_timer(9), sis900_check_mode(9), sis900_set_mode(9), sis900_auto_negotiate(9), sis900_read_mode(9), sis900_tx_timeout(9), sis900_start_xmit(9), sis900_interrupt(9), sis900_rx(9), sis900_finish_xmit(9), sis900_close(9), sis900_get_drvinfo(9), sis900_set_wol(9), mii_ioctl(9), sis900_set_config(9), set_rx_mode(9), sis900_reset(9), sis900_remove(9)
like go read them, they're all main characters in their own way π¦
π real talk though: the bit-width difference between chip revisions is the entire reason this function exists, so don't go assuming 7 bits is universal. check that revision, bestie.
π sign-off
this cutie lives over in ./drivers/net/ethernet/sis, dated October 2026, and yes the manual name is still sis900_mcast_bitnr(9) β periodt πβ¨π
π¦ 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