STRUCT IONIC_QUEUE(9)
π 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 π
ionic_queue_init(9)ionic_queue_destroy(9)ionic_queue_empty(9)ionic_queue_length(9)ionic_queue_length_remaining(9)ionic_queue_full(9)ionic_color_wrap(9)ionic_queue_at(9)ionic_queue_at_prod(9)ionic_queue_at_cons(9)ionic_queue_next(9)ionic_queue_produce(9)ionic_queue_consume(9)ionic_queue_consume_entries(9)ionic_queue_dbell_init(9)ionic_queue_dbell_val(9)
mwah π from ./drivers/infiniband/hw/ionic, October 2026, struct ionic_queue(9) bestie forever π«Ά
π¦ 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