STRUCT PRUETH_QUEUE_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct prueth_queue_desc(9) πŸŽ€

okay bestie, this is a page from the Kernel API Manual and it's literally all about one little struct called struct prueth_queue_desc β€” the queue descriptor. it's giving "small but runs the whole group chat" energy. 🫢


✨ NAME ✨

struct prueth_queue_desc β€” the Queue descriptor, periodt.


🌸 SYNOPSIS 🌸

here's the whole glow-up, character for character, no cap:

struct prueth_queue_desc {
    u16 rd_ptr;
    u16 wr_ptr;
    u8 busy_s;
    u8 status;
    u8 max_fill_level;
    u8 overflow_cnt;
 };

look at her. six fields. iconic. πŸ‘‘


πŸ¦‹ Members πŸ¦‹

so let's do a vibe check on every single member, one by one, no skipping:

  • rd_ptr β€” the read pointer, and she points to a buffer descriptor over in Shared PRU RAM. that's her whole job. πŸ’–
  • wr_ptr β€” the write pointer, also pointing at a buffer descriptor in Shared PRU RAM. her and rd_ptr are literally besties doing the same thing from different directions. ✨
  • busy_s β€” the slave queue busy flag. the slave (that's us, hii πŸ‘‹) sets this to request access from the master (the PRU). it's the "hey can i get in the chat" flag.
  • status β€” a bit field status register, and the bits are doing the most:
    • Bit 0: Master queue busy flag.
    • Bit 1: Packet has been placed in collision queue.
    • Bit 2: Packet has been discarded due to overflow. 😭
  • max_fill_level β€” the maximum queue usage seen. her peak. her main character era. 🌈
  • overflow_cnt β€” the count of queue overflows. lowkey a sad number but somebody has to track it. πŸ’€

🧚 Description 🧚

okay so here's the lore: each port has up to 4 queues, and they're variable length. the queue gets processed as a ring buffer with read and write pointers doing their little circular dance. 🎠

both of those pointers are address pointers β€” and this part matters, so listen up β€” they increment by 4 for each buffer descriptor position. fr fr, that's the detail. πŸ’…

and the queue has a length defined in constants (not here, go look elsewhere bestie) plus a status. that's the whole thing. slay.


πŸ”₯ SEE ALSO πŸ”₯

go read these next, they're the rest of the friend group:

  • Kernel file ./drivers/net/ethernet/ti/icssm/icssm_prueth.h struct prueth_queue_info(9)
  • struct prueth_packet_info(9)
  • struct prueth_firmware(9)
  • struct prueth_private_data(9)

and that's the whole page, bestie β€” brought to you by ./drivers/net/ethernet/ti/icssm, dated October 2026. πŸ“… mark your calendars, mwah πŸ’œπŸŒΈ

πŸ“¦ where this page comes from