sis900_mcast_bitnr(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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