dpaa2_io_store_create(9)
π dpaa2_io_store_create β okay so let me tell you about this function
Bestie, welcome to the kernel API manual for dpaa2_io_store_create(9), which honestly is giving "quiet little helper that does something kind of iconic." Let's get into it. π
β¨ NAME β¨
dpaa2_io_store_create β literally makes the DMA memory storage where your dequeue results live. That's the whole vibe. π¦
πΈ SYNOPSIS πΈ
struct dpaa2_io_store * dpaa2_io_store_create (unsigned int max_frames ,
struct device *dev );
Two arguments, one returned pointer, zero drama (unless it returns NULL, more on that in a sec π).
π ARGUMENTS π
max_framesβ the maximum number of dequeued result frames you want room for. And listen, this one has a hard limit: it must be <= 32. Not 33, not "eh, close enough," it's just<= 32, periodt. πdevβ the device that lets you map/unmap the DMAable region. Like, it's the one holding the keys to the memory door. π
π§ DESCRIPTION π§
Okay so the size of the storage? It's exactly this:
"max_frames*sizeof(struct dpaa2_dq)"
Not vibes-based sizing, an actual formula, hope that helps. π
The dpaa2_io_store you get back is a DPIO service managed object β so like, it's part of the DPIO service family and the service is very much in charge of it. Main character energy, but managed. π
As for what you get back: a pointer to the dpaa2_io_store struct if the storage memory got created all cute and successful, or NULL on error. So always check before you start dereferencing, ngl. π
Lowkey important: NULL means error. It's not a secret success code, bestie. Check it. π
π₯ SEE ALSO π₯
The kernel file lives right here:
./drivers/soc/fsl/dpio/dpio-service.c
And here's the full friend group β every single one, no cap:
dpaa2_io_service_select(9)dpaa2_io_create(9)dpaa2_io_down(9)dpaa2_io_irq(9)dpaa2_io_get_cpu(9)dpaa2_io_service_register(9)dpaa2_io_service_deregister(9)dpaa2_io_service_rearm(9)dpaa2_io_service_pull_fq(9)dpaa2_io_service_pull_channel(9)dpaa2_io_service_enqueue_fq(9)dpaa2_io_service_enqueue_multiple_fq(9)dpaa2_io_service_enqueue_multiple_desc_fq(9)dpaa2_io_service_enqueue_qd(9)dpaa2_io_service_release(9)dpaa2_io_service_acquire(9)dpaa2_io_store_destroy(9)dpaa2_io_store_next(9)dpaa2_io_query_fq_count(9)dpaa2_io_query_bp_count(9)dpaa2_io_set_irq_coalescing(9)dpaa2_io_get_irq_coalescing(9)dpaa2_io_set_adaptive_coalescing(9)dpaa2_io_get_adaptive_coalescing(9)dpaa2_io_update_net_dim(9)
That's the whole page, bestie β go forth and allocate your DMA storage responsibly. π
Signed off from ./drivers/soc/fsl/dpio, dated October 2026, kernel API manual energy only. Slay. π«Άβ¨
π¦ 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