STRUCT IOAT_RING_ENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so struct ioat_ring_ent β€” it's literally just a wrapper around a hardware descriptor, bestie. that's the whole vibe. it's the little glow-up cocoon that holds the shiny hardware thing πŸ’…


✨ SYNOPSIS ✨

struct ioat_ring_ent {
    union {
      struct ioat_dma_descriptor *hw;
      struct ioat_xor_descriptor *xor;
      struct ioat_xor_ext_descriptor *xor_ex;
      struct ioat_pq_descriptor *pq;
      struct ioat_pq_ext_descriptor *pq_ex;
      struct ioat_pq_update_descriptor *pqu;
      struct ioat_raw_descriptor *raw;
    };
    size_t len;
    struct dma_async_tx_descriptor txd;
    enum sum_check_flags *result;
  #ifdef DEBUG;
    int id;
  #endif;
    struct ioat_sed_ent *sed;
  };

like, look at her. she's got a whole anonymous union situation going on and honestly? main character energy 😭


πŸ¦‹ Members πŸ¦‹

so here's the cast of characters, and yes every single one of them matters so don't skim this part:

  • {unnamed_union} β€” anonymous. she has no name. she simply is. 🫢
  • hw β€” the hardware DMA descriptor, and like specifically for memcpy. that's her moment.
  • xor β€” hardware xor descriptor
  • xor_ex β€” hardware xor extension descriptor (the deluxe version ✨)
  • pq β€” hardware pq descriptor
  • pq_ex β€” hardware pq extension descriptor
  • pqu β€” hardware pq update descriptor, not to be confused with the ones above her, she's different πŸ’…
  • raw β€” hardware raw (un-typed) descriptor. no type, no label, just vibes πŸ’€
  • len β€” total transaction length for unmap. remember her, she's important for the unmap, no cap
  • txd β€” the generic software descriptor for all engines. yes, all of them. queen behavior πŸ‘‘
  • result β€” the asynchronous result of validate operations
  • id β€” identifier for debug. only shows up when DEBUG is defined, btw, she's shy like that πŸ™ˆ
  • sed β€” pointer to super extended descriptor sw desc. "super extended" like she's not even trying to be subtle, iconic 🌈

🌸 SEE ALSO 🌸

go read these next bestie, i'm serious, don't leave me hanging:

  • Kernel file ./drivers/dma/ioat/dma.h struct ioatdma_device(9) β€” like, the actual file, just go look at it ok
  • struct ioat_sed_ent(9) β€” her super-extended bestie 🧚

that's the whole page fr fr πŸ’– this one's from ./drivers/dma/ioat, dated October 2026, and the man page itself is struct ioat_ring_ent(9) β€” slay, go read the kernel source, ily, bye πŸ’œβœ¨

πŸ“¦ where this page comes from