vme_dma_pci_attribute(9)
π vme_dma_pci_attribute β the one where you make a "PCI" type VME DMA list attribute
ok so picture this: it's the vme_dma_pci_attribute(9) page in the Kernel API Manual, and it's literally the shortest little guy ever. tiny page, huge vibes. let's get into it π«Ά
β¨ NAME β¨
vme_dma_pci_attribute β Create "PCI" type VME DMA list attribute.
like, that's it, that's the whole name section. icon behavior honestly.
πΈ SYNOPSIS πΈ
struct vme_dma_attr * vme_dma_pci_attribute (dma_addr_t address );
bestie look at that signature. it returns a struct vme_dma_attr * and it takes exactly one (1) argument. no more, no less. we love a low-maintenance function π
π ARGUMENTS π
addressβ the PCI base address for the DMA transfer. that's the spot on PCI you're pointing at, bestie. no cap, that's the whole thing.
π¦ DESCRIPTION π¦
okay so what does it actually do? it creates a VME DMA list attribute that points to a location on PCI, so DMA transfers have somewhere to go. it's giving "setting up the destination" energy. honestly iconic.
β οΈ and here's the part where you gotta listen: it is the responsibility of the user to free used attributes using vme_dma_free_attribute. not the function's job. yours. so don't just walk away from it, okay? that's a leak and leaks are not slay π
π₯ RETURN π₯
- returns a pointer to the VME DMA attribute π
- returns
NULLon failure π
that's it. two outcomes. plot twist potential is lowkey high.
π SEE ALSO π
first off, the kernel file itself lives at ./drivers/staging/vme_user/vme.c β go say hi π§
and then, the whole friend group of VME functions, all in section 9, all present and accounted for:
vme_alloc_consistent(9)vme_free_consistent(9)vme_get_size(9)vme_slave_request(9)vme_slave_set(9)vme_slave_get(9)vme_slave_free(9)vme_master_request(9)vme_master_set(9)vme_master_get(9)vme_master_read(9)vme_master_write(9)vme_master_rmw(9)vme_master_mmap_prepare(9)vme_master_free(9)vme_dma_request(9)vme_new_dma_list(9)vme_dma_pattern_attribute(9)vme_dma_vme_attribute(9)vme_dma_free_attribute(9)vme_dma_list_add(9)vme_dma_list_exec(9)vme_dma_list_free(9)vme_dma_free(9)vme_irq_request(9)vme_irq_free(9)vme_irq_generate(9)vme_lm_request(9)vme_lm_count(9)vme_lm_set(9)vme_lm_get(9)vme_lm_attach(9)vme_lm_detach(9)vme_lm_free(9)vme_slot_num(9)vme_bus_num(9)vme_register_driver(9)vme_unregister_driver(9)
that's thirty-eight entries, and yes i counted, and yes you should go read them, iykyk πβ¨
and that's the whole page, bestie π this lil rewrite came straight out of the ./drivers/staging/vme_user corner of the kernel, dated October 2026 β mwah, 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