STRUCT IONIC_QUEUE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ionic_queue(9) β€” Kernel API Manual πŸ’…

okay so welcome to the struct ionic_queue(9) page, bestie. This is the Kernel API Manual entry, and it’s literally the ring buffer used between device and driver. no cap. ✨

🌸 NAME 🌸

struct ionic_queue β€” ring buffer used between device and driver. periodt. πŸ’–

✨ SYNOPSIS ✨

Here’s the whole struct, copied exactly, no cap:

struct ionic_queue {
    size_t size;
    dma_addr_t dma;
    void *ptr;
    u16 prod;
    u16 cons;
    u16 mask;
    u8 depth_log2;
    u8 stride_log2;
    u64 dbell;
 };

🧚 Members 🧚

Every field is doing main-character work. let’s go 🫢

  • size β€” size of the buffer, in bytes. lowkey just the byte count πŸ’…
  • dma β€” DMA address of the buffer. yes bestie, the dma address πŸŽ€
  • ptr β€” buffer virtual address. the virtual-address bestie ✨
  • prod β€” driver position in the queue. driver’s spot, periodt πŸ”₯
  • cons β€” device position in the queue. device’s spot, iykyk πŸ¦‹
  • mask β€” capacity of the queue, subtracting the hole. this value is equal to ((1 << depth_log2) - 1) πŸ’€
  • depth_log2 β€” log base two size depth of the queue. math girlie behavior 🌸
  • stride_log2 β€” log base two size of an element in the queue. element-size log magic 🧚
  • dbell β€” doorbell identifying bits. doorbell bits, iconic πŸ‘‘

πŸ” SEE ALSO πŸ”

Kernel file: ./drivers/infiniband/hw/ionic/ionic_queue.h πŸ“


mwah πŸ’‹ from ./drivers/infiniband/hw/ionic, October 2026, struct ionic_queue(9) bestie forever 🫢

πŸ“¦ where this page comes from