velocity_init_dma_rings(9)
π velocity_init_dma_rings(9) π
okay so we're in the Kernel API Manual bestie, and today's main character is velocity_init_dma_rings π
β¨ NAME β¨
velocity_init_dma_rings β set up DMA rings, that's the whole vibe π«
πΈ SYNOPSIS πΈ
int velocity_init_dma_rings (struct velocity_info *vptr );
π¦ ARGUMENTS π¦
vptrβ the Velocity you're setting up π«Ά like, the actualstruct velocity_info *you're handing over, no cap
π DESCRIPTION π
So what it does is: it allocates PCI mapped DMA rings π that's it, that's the whole thing. The receive and transmit layer are gonna use them, so this is lowkey the moment where the rings get born π£β¨
ngl, note the words PCI mapped β these aren't just any rings, they're PCI mapped, so the hardware and the driver can both be obsessed with the same memory π₯
π SEE ALSO π
π§ the source file itself
- Kernel file
./drivers/net/ethernet/via/via-velocity.cβ go read it, iykyk π
π the whole friend group (65 of them, fr fr, we're not skipping a single one)
mac_get_cam_mask(9),mac_set_cam_mask(9),mac_set_cam(9),mac_wol_reset(9),get_chip_name(9),velocity_set_int_opt(9),velocity_set_bool_opt(9),velocity_get_options(9),velocity_init_cam_filter(9),velocity_rx_reset(9),velocity_get_opt_media_mode(9),safe_disable_mii_autopoll(9),enable_mii_autopoll(9),velocity_mii_read(9),mii_check_media_mode(9),velocity_mii_write(9),set_mii_flow_control(9),mii_set_auto_on(9),velocity_set_media_mode(9),velocity_print_link_status(9),enable_flow_control_ability(9),velocity_soft_reset(9),velocity_set_multi(9),mii_init(9),setup_queue_timers(9),setup_adaptive_interrupts(9),velocity_init_registers(9),velocity_alloc_rx_buf(9),velocity_free_rd_ring(9),velocity_init_rd_ring(9),velocity_init_td_ring(9),velocity_free_dma_rings(9),velocity_free_tx_buf(9),velocity_free_td_ring(9),velocity_error(9),velocity_tx_srv(9),velocity_rx_csum(9),velocity_rx_copy(9),velocity_iph_realign(9),velocity_receive_frame(9),velocity_rx_srv(9),velocity_intr(9),velocity_open(9),velocity_shutdown(9),velocity_change_mtu(9),velocity_poll_controller(9),velocity_mii_ioctl(9),velocity_ioctl(9),velocity_get_stats(9),velocity_close(9),velocity_xmit(9),velocity_init_info(9),velocity_get_pci_info(9),velocity_get_platform_info(9),velocity_print_info(9),velocity_probe(9),velocity_remove(9),wol_calc_crc(9),velocity_set_wol(9),velocity_save_context(9),velocity_restore_context(9),velocity_ethtool_up(9),velocity_ethtool_down(9),velocity_init_module(9),velocity_cleanup_module(9)
and that's the page, bestie π«Ά slay
this whole thing lives in ./drivers/net/ethernet/via, it's the Kernel API Manual edition dated October 2026, and it's literally titled velocity_init_dma_rings(9) β don't forget to free your rings, ily, bye ππ
π¦ 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