STRUCT PPC440SPE_ADMA_CHAN(9)
π NAME π
struct ppc440spe_adma_chan β the internal representation of an ADMA channel, bestie. It's from the Kernel API Manual, and it's giving "backstage pass to the whole channel" energy β¨
π SYNOPSIS π
struct ppc440spe_adma_chan {
spinlock_t lock;
struct ppc440spe_adma_device *device;
struct list_head chain;
struct dma_chan common;
struct list_head all_slots;
struct ppc440spe_adma_desc_slot *last_used;
int pending;
int slots_allocated;
int hw_chain_inited;
struct tasklet_struct irq_tasklet;
u8 needs_unmap;
struct page *pdest_page;
struct page *qdest_page;
dma_addr_t pdest;
dma_addr_t qdest;
};
Copy that exactly, ok? Every field, every semicolon, no cap π«Ά
π¦ Members π¦
lockβ this one serializes enqueue/dequeue operations to the slot pool. Basically the bouncer at the door keeping the queue from turning into chaos π₯deviceβ the parent device. Its ride-or-die origin story πchainβ the device chain view of the descriptors. Like the group chat view of who's in the chat πcommonβ the common dmaengine channel object members. Shared queen behavior, iconic πall_slotsβ the complete domain of slots usable by the channel. Every slot it's allowed to touch, periodt β¨pendingβ allows batching of hardware operations. Lowkey the "wait, stack a few more in before we go" field πslots_allocatedβ records the actual size of the descriptor slot pool. Receipts, literally π§Ύhw_chain_initedβ the h/w descriptor chain initialization flag. Is the chain set up or not? This knows πirq_taskletβ bottom half whereppc440spe_adma_slot_cleanupruns. The cleanup crew, working quietly in the background π§needs_unmapβ if buffers should not be unmapped upon final processing. Yeah β read that again πpdest_pageβ P destination page for async validate operation πqdest_pageβ Q destination page for async validate operation πpdestβ P dma addr for async validate operation βqdestβ Q dma addr for async validate operation β
Not me pointing out that last_used is chillin' in the struct but has no little blurb in the Members list β that's just how it is in the original, so we're not gonna invent one π
π SEE ALSO π
- Kernel file
./drivers/dma/ppc4xx/adma.h struct ppc440spe_adma_device(9)struct ppc440spe_adma_desc_slot(9)
Go read them, iykyk π
That's the whole page, bestie β slayed, no facts lost πΈ This cutie came from the Kernel API Manual, source/version ./drivers/dma/ppc4xx, dated October 2026, and the page itself is struct ppc440spe_adma_chan(9). Byeee π«Άπ
π¦ 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