STRUCT GFAR_PRIV_RX_Q(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct gfar_priv_rx_q(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual, section 9 β€” this is the whole entire page for struct gfar_priv_rx_q, aka the per rx queue structure ✨ like, one (1) receive queue's whole personality in a single C struct. she's giving main character energy and honestly she ate πŸŽ€


✨ SYNOPSIS ✨

struct gfar_priv_rx_q {
    struct gfar_rx_buff *rx_buff;
    struct rxbd8 *rx_bd_base;
    struct net_device *ndev;
    struct device *dev;
    u16 rx_ring_size;
    u16 qindex;
    struct gfar_priv_grp *grp;
    u16 next_to_clean;
    u16 next_to_use;
    u16 next_to_alloc;
    struct sk_buff *skb;
    struct rx_q_stats stats;
    u32 __iomem *rfbptr;
    unsigned char rxcoalescing;
    unsigned long rxic;
    dma_addr_t rx_bd_dma_base;
};

like, there she is. no cap, that's the whole struct πŸ’…


🌸 Members 🌸

so the page spells out some of these for us, and the rest are just… vibing in the struct with no narration (iykyk). going in order, here's what the doc actually tells us:

  • rx_buff β€” array of buffer info metadata structs πŸ¦‹ the little info cards for each buffer, basically
  • rx_bd_base β€” first rx buffer descriptor ⭐ like, the starting point of the descriptor lineup
  • ndev β€” back pointer to net_device πŸ‘‘ a little pointer that leads back home
  • dev β€” (it's in the struct! the page doesn't say anything else about it, so neither will I πŸ™ˆ)
  • rx_ring_size β€” Rx ring size πŸ’€ yes the ring. the ring size. that's the whole description and I respect the brevity
  • qindex β€” index of this queue πŸ”₯ which queue this is, numerically
  • grp β€” (present in the struct, no description given β€” she's mysterious ✨)
  • next_to_clean β€” index of the next buffer to be cleaned 🧹 the one you're gonna clean next
  • next_to_use β€” index of the next buffer to be alloc'd πŸŽ€ the one that's up next to get allocated
  • next_to_alloc β€” (again, in the struct with no write-up β€” cute, private, no notes πŸ’…)
  • skb β€” (listed in the struct, undisclosed lore 🫢)
  • stats β€” a struct rx_q_stats, hanging out in there without a description 🌈
  • rfbptr β€” also undescribed! it's a u32 __iomem * and that's all we get 😭
  • rxcoalescing β€” enable/disable rx-coalescing ⭐ the on/off switch, that's it that's the job
  • rxic β€” receive interrupt coalescing value πŸ”₯ (the page spells it "vlaue" and honestly? iconic typo, we stan)
  • rx_bd_dma_base β€” (in the struct, no description given β€” leaving us on read πŸ˜”)
real talk: if a member shows up in the struct but the Members list doesn't explain it, I'm not making up lore for it. no invented facts on this page, periodt πŸ’– just telling you it's there.

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/net/ethernet/freescale/gianfar.h struct gfar_priv_tx_q(9), struct gfar_priv_grp(9) β€” go read the tx queue's page and the group's page too, they're literally her besties 🌸

and that's the page!! πŸŽ€ this little beauty lives over at ./drivers/net/ethernet/freescale, dated October 2026, and yes the header up top really does say struct gfar_priv_rx_q(9) β€” ty for coming to my ted talk, mwah πŸ’œπŸ«Ά

πŸ“¦ where this page comes from