STRUCT PPC440SPE_ADMA_DESC_SLOT(9)
π NAME π
okay so bestie, welcome to the Kernel API Manual entry for struct ppc440spe_adma_desc_slot β it's the PPC440SPE-ADMA software descriptor, and it's literally the blueprint for the descriptor vibes. π
β¨ SYNOPSIS β¨
here's the whole struct in all its glory β do not rename, merge or "fix" a single field, fr fr:
struct ppc440spe_adma_desc_slot {
dma_addr_t phys;
struct ppc440spe_adma_desc_slot *group_head;
struct ppc440spe_adma_desc_slot *hw_next;
struct dma_async_tx_descriptor async_tx;
struct list_head slot_node;
struct list_head chain_node;
struct list_head group_list;
unsigned int unmap_len;
void *hw_desc;
u16 stride;
u16 idx;
u16 slot_cnt;
u8 src_cnt;
u8 dst_cnt;
u8 slots_per_op;
u8 descs_per_op;
unsigned long flags;
unsigned long reverse_flags[8];
#define PPC440SPE_DESC_INT 0 ;
#define PPC440SPE_ZERO_P 1 ;
#define PPC440SPE_ZERO_Q 2 ;
#define PPC440SPE_COHERENT 3 ;
#define PPC440SPE_DESC_WXOR 4 ;
#define PPC440SPE_DESC_RXOR 5 ;
#define PPC440SPE_DESC_RXOR123 8 ;
#define PPC440SPE_DESC_RXOR124 9 ;
#define PPC440SPE_DESC_RXOR125 10 ;
#define PPC440SPE_DESC_RXOR12 11 ;
#define PPC440SPE_DESC_RXOR_REV 12 ;
#define PPC440SPE_DESC_PCHECK 13;
#define PPC440SPE_DESC_QCHECK 14;
#define PPC440SPE_DESC_RXOR_MSK 0x3;
struct ppc440spe_rxor rxor_cursor;
union {
u32 *xor_check_result;
u32 *crc32_result;
};
};
π«Ά Members π«Ά
field-by-field, no skipping, because every member is iconic in its own way:
physβ hardware address of the hardware descriptor chain. yes, both hardware, it's giving layered lore.group_headβ first operation in a transaction. leader of the pack energy.hw_nextβ pointer to the next descriptor in chain.async_txβ support for theasync_txapi. async bestie behavior.slot_nodeβ node on theiop_adma_chan.all_slotslist.chain_nodeβ node on theop_adma_chan.chainlist.group_listβ list of slots that make up a multi-descriptor transaction β for example, transfer lengths larger than the supported hw max. big transfer crew.unmap_lenβ transaction bytecount.hw_descβ virtual address of the hardware descriptor chain.strideβ currently chained or not.idxβ pool index.slot_cntβ total slots used in an transaction (group of operations). group of operations energy.src_cntβ number of sources set in this descriptor.dst_cntβ number of destinations set in the descriptor.slots_per_opβ number of slots per operation.descs_per_opβ number of slot per P/Q operation see comment forppc440spe_prep_dma_pqxorfunction. P/Q operation lore.flagsβ desc state/type.reverse_flagsβ1if a corresponding rxor address uses reversed address order.{unnamed_union}β anonymous. mystery member.xor_check_resultβ result of zero sum.crc32_resultβ result crc calculation.
π SEE ALSO π
- Kernel file
./drivers/dma/ppc4xx/adma.hβ also peepstruct ppc440spe_adma_device(9),struct ppc440spe_adma_chan(9), bestie. π¦
okay that's the whole page, bestie π source/version: ./drivers/dma/ppc4xx; date: October 2026; footer title: struct ppc4...ma_desc_slot(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