STRUCT PPC440SPE_ADMA_DESC_SLOT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 the async_tx api. async bestie behavior.
  • slot_node β€” node on the iop_adma_chan.all_slots list.
  • chain_node β€” node on the op_adma_chan.chain list.
  • 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 for ppc440spe_prep_dma_pqxor function. P/Q operation lore.
  • flags β€” desc state/type.
  • reverse_flags β€” 1 if 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 peep struct 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