ENUM QUEUE_INDEX(9)
β¨ enum queue_index β Queue index type β¨
Okay bestie, gather round, because we're looking at the enum queue_index(9) page from the Kernel API Manual and honestly? It's a little gem π. It's short, it's sweet, and it's literally just four constants that make the rt2x00 queue machinery go brrr. Let's get into it π«Ά
πΈ SYNOPSIS πΈ
Here's the whole enum, verbatim, no cap:
enum queue_index {
Q_INDEX ,
Q_INDEX_DMA_DONE ,
Q_INDEX_DONE ,
Q_INDEX_MAX
};
That's it. Four members. Clean. Iconic. Periodt π
π Constants π
Now for the actual tea on each one β same facts as always, just with better vibes:
Q_INDEXβ the index pointer to the current entry in the queue. And here's the spicy part: if this entry is owned by the hardware, then the queue is considered to be full π. So like, hardware owning it = no room, bestie.Q_INDEX_DMA_DONEβ the index pointer for the next entry which will have been transferred to the hardware. It's giving "what's about to land" energy β¨Q_INDEX_DONEβ the index pointer to the next entry which will be completed by the hardware and for which we need to run thetxdonehandler π₯. Flip side ofQ_INDEX: if this entry is not owned by the hardware, the queue is considered to be empty π.Q_INDEX_MAXβ keep this one last, okay? It's used instruct data_queueto determine the size of the index array π. Do not move it. It's the main character of "array size math" and it needs to stay in its spot.
Lowkey important: Q_INDEX_MAX last. That's not a suggestion, that's the whole point of it π
π¦ SEE ALSO π¦
Everything's connected, iykyk. Here's the full squad, all of them (9):
Kernel file ./drivers/net/wireless/ralink/rt2x00/rt2x00queue.h Entry frame size(9), enum data_queue_qid(9), enum skb_frame_desc_flags(9), struct skb_frame_desc(9), get_skb_frame_desc(9), enum rxdone_entry_desc_flags(9), RXDONE_SIGNAL_MASK(9), struct rxdone_entry_desc(9), enum txdone_entry_desc_flags(9), struct txdone_entry_desc(9), enum txentry_desc_flags(9), struct txentry_desc(9), enum queue_entry_flags(9), struct queue_entry(9), enum data_queue_flags(9), struct data_queue(9), queue_end(9), tx_queue_end(9), queue_next(9), queue_loop(9), queue_for_each(9), tx_queue_for_each(9), txall_queue_for_each(9), rt2x00queue_for_each_entry(9), rt2x00queue_empty(9), rt2x00queue_full(9), rt2x00queue_threshold(9), rt2x00queue_dma_timeout(9), _rt2x00_desc_read(9), rt2x00_desc_read(9), rt2x00_desc_write(9) π
One more thing π§ β the source path in the footer gets truncated to ./drivers/net/wireless/ralink/... which is basically the manpage equivalent of a text message that got cut off mid-sentence π. You know the drill.
Okay that's the whole page! This little cutie of a manpage comes from the Kernel API Manual, sourced from ./drivers/net/wireless/ralink/..., dated October 2026. Slay, read it, love it, cite it properly in your SEE ALSO πβ¨ bye bestie π
π¦ 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