velocity_alloc_rx_buf(9)
π velocity_alloc_rx_buf β the Kernel API Manual moment π
okay so bestie, welcome to the velocity_alloc_rx_buf(9) page, straight out of the Kernel API Manual. she's short, she's sweet, she's out here doing one (1) job and doing it iconically. let's get into it β¨
πΈ NAME πΈ
velocity_alloc_rx_buf β allocate aligned receive buffer
like, she allocates. she aligns. she's a receive buffer girlie. no cap π
β¨ SYNOPSIS β¨
int velocity_alloc_rx_buf (struct velocity_info *vptr , int idx );
that's it. that's the whole vibe check. two args, one int coming back at you π«Ά
π¦ ARGUMENTS π¦
vptrβ the velocity, bestie. that's thestruct velocity_info *situation right there π«idxβ the ring index. which slot in the ring we're talking about, iykyk π
π DESCRIPTION π
so here's what she does, and ngl it's honestly kind of a lot for one function to carry:
she allocates a brand new full sized buffer for the reception of a frame β yes, full sized, we don't do half measures here π β and then she maps it into PCI space so the hardware can go ahead and use it. like, she's handing the hardware its own lil workspace. generous queen π
BUT. and this is the part that makes her life harder than it needs to be, the hardware requires *64* byte alignment of the buffer. which, in her own words, "makes life less fun than would be ideal." π and honestly? she's so right. alignment constraints are not the main character energy we asked for but we're dealing with it anyway π
lowkey feel for her fr fr β a full sized buffer PLUS a 64 byte alignment requirement is giving "group project where you do all the work" energy π
β SEE ALSO β
okay this list is LONG, so buckle up bestie, we're going through every single one, no skipping, periodt π
the kernel file itself lives at: Kernel file ./drivers/net/ethernet/via/via-velocity.c
and then all her friends and neighbours, in the order the page gives them:
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_init_dma_rings(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)
yeah. that's all of them. she knows everybody at the function party and honestly? we love a well-connected icon π§ββοΈ
aaaand that's the page!! π if you made it through the whole SEE ALSO list you deserve a little treat, fr fr π
this lil slice of documentation lives at ./drivers/net/ethernet/via, dated October 2026, and it's the velocity_alloc_rx_buf(9) page β go off, aligned buffer queen, we'll see you in the kernel πβ¨π
π¦ 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