STRUCT MV_XOR_CHAN(9)
π struct mv_xor_chan(9)
okay so bestie, welcome to the Kernel API Manual β¨ β section 9, we're in the deep kernel lore now. This page is all about struct mv_xor_chan, and it's literally the internal representation of a XOR channel π₯. iykyk.
β¨ NAME β¨
struct mv_xor_chan β the internal representation of a XOR channel. that's it, that's the vibe π«Ά
π SYNOPSIS π
here's the whole struct, laid out exactly as it lives in the source, no cap:
struct mv_xor_chan {
int pending;
spinlock_t lock;
void __iomem *mmr_base;
void __iomem *mmr_high_base;
unsigned int idx;
int irq;
struct list_head chain;
struct list_head free_slots;
struct list_head allocated_slots;
struct list_head completed_slots;
dma_addr_t dma_desc_pool;
void *dma_desc_pool_virt;
size_t pool_size;
struct dma_device dmadev;
struct dma_chan dmachan;
int slots_allocated;
struct tasklet_struct irq_tasklet;
int op_in_desc;
char dummy_src[MV_XOR_MIN_BYTE_COUNT];
char dummy_dst[MV_XOR_MIN_BYTE_COUNT];
dma_addr_t dummy_src_addr, dummy_dst_addr;
u32 saved_config_reg, saved_int_mask_reg;
struct mv_xor_device *xordev;
};
like, look at her. main character struct energy π
π¦ Members π¦
okay so these are the fields the page actually spills the tea on:
pendingβ allows batching of hardware operations. lowkey the queue-collector of the group chat πlockβ serializes enqueue/dequeue operations to the descriptors pool. one at a time, bestie, we're not doing chaos today πmmr_baseβ memory mapped register base. the literal address home base β¨idxβ the index of the xor channel. which one of the siblings she is πΈchainβ device chain view of the descriptors. the big-picture friendship bracelet view πfree_slotsβ free slots usable by the channel. available, unbothered, moisturised π§allocated_slotsβ slots allocated by the driver. taken, claimed, spoken for πcompleted_slotsβ slots completed by HW but still need to be acked. girl did the work, now she needs her receipt signed πslots_allocatedβ records the actual size of the descriptor slot pool. the real, factual headcount fr frirq_taskletβ bottom half wheremv_xor_slot_cleanupruns. the cleanup crew, off the main thread πop_in_descβ new mode of driver, each op is written to descriptor. it's giving new-era behaviour, periodt π₯
ngl, a bunch of the other fields βmmr_high_base,irq,dma_desc_pool,dma_desc_pool_virt,pool_size,dmadev,dmachan,dummy_src,dummy_dst,dummy_src_addr,dummy_dst_addr,saved_config_reg,saved_int_mask_reg,xordevβ show up in the struct above but this page doesn't spell out a description for them, so i'm not gonna invent one π you saw the exact source, that's what we've got.
π SEE ALSO π
- Kernel file
./drivers/dma/mv_xor.h struct mv_xor_desc_slot(9)β go read her sister page too, bestie π
and that's the whole page! this one came from ./drivers/dma, dated October 2026, and it's struct mv_xor_chan(9) all the way down. slay, go forth and XOR responsibly π
β¨π¦
π¦ 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