ENUM QUEUE_INDEX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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 the txdone handler πŸ”₯. Flip side of Q_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 in struct data_queue to 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