STRUCT LIBIE_CTLQ_REG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct libie_ctlq_reg(9) β€” a Kernel API Manual moment

okay bestie, welcome to the struct libie_ctlq_reg(9) page, straight out of the Kernel API Manual ✨ this one's short and sweet and honestly? iconic. let's get into it 🫢


🌸 NAME 🌸

struct libie_ctlq_reg β€” the structure that represents the virtual addresses of the controlq registers and their masks. that's it, that's the vibe πŸ’…


✨ SYNOPSIS ✨

here's the whole shape of her, no cap, copy it exactly:

struct libie_ctlq_reg {
    void __iomem    *head;
    void __iomem    *tail;
    void __iomem    *len;
    void __iomem    *addr_high;
    void __iomem    *addr_low;
    u32 len_mask;
    u32 len_ena_mask;
    u32 head_mask;
 };

look at that alignment. the little }; at the end doing its own thing. we love a consistent queen πŸŽ€


πŸ¦‹ Members πŸ¦‹

okay so let's meet the cast, one by one, main character energy only:

  • head β€” the controlq head register address ✨
  • tail β€” the controlq tail register address πŸŽ€
  • len β€” the register address where you write the controlq length and the enable bit. two jobs, one register, she's booked and busy πŸ’…
  • addr_high β€” the register address to write the upper 32b of the ring physical address πŸ‘‘
  • addr_low β€” the register address to write the lower 32b of the ring physical address 🫢
  • len_mask β€” the mask to read the controlq length πŸ”
  • len_ena_mask β€” the mask to write the controlq enable bit ⚑
  • head_mask β€” the mask to read the head value πŸ‘€
note the pattern bestie: len_mask and head_mask are for reading, len_ena_mask is for writing. don't mix them up, that's the whole point of having them 😭

🌈 SEE ALSO 🌈

the whole friend group, fr fr β€” go read these next:

  • Kernel file ./include/linux/net/intel/libie/controlq.h enum
  • libie_ctlq_type(9)
  • struct libie_ctlq_ctx(9)
  • struct libie_cp_dma_mem(9)
  • struct libie_ctlq_msg(9)
  • struct libie_ctlq_create_info(9)
  • struct libie_ctlq_info(9)
  • struct libie_ctlq_desc(9)
  • struct libie_ctlq_clean_params(9)
  • libie_ctlq_release_rx_buf(9)
  • enum libie_ctlq_xn_state(9)
  • struct libie_ctlq_xn(9)
  • struct libie_ctlq_xn_manager(9)
  • struct libie_ctlq_xn_send_params(9)
  • libie_cp_can_send_onstack(9)
  • struct libie_ctlq_xn_recv_params(9)
  • struct libie_ctlq_xn_init_params(9)

that's a long list and every single one of them is a baddie, iykyk πŸ’–


πŸ’œ sign-off πŸ’œ

and that's the page!! sourced from ./include/linux/net/intel/libie, dated October 2026, and yes the footer still says struct libie_ctlq_reg(9) because she knows exactly who she is πŸ‘‘βœ¨ go forth and register responsibly, bestie πŸ¦‹πŸ’–

πŸ“¦ where this page comes from