tb_ring_poll(9)
π tb_ring_poll(9) β bestie edition π
okay so this is a page straight out of the Kernel API Manual, and it's literally called tb_ring_poll(9) β yes the number is part of the name, that's just how kernel manpages do it, iykyk π
πΈ NAME πΈ
tb_ring_poll β poll one completed frame from the ring π¦
likeβ¦ grab exactly one finished frame out of the ring. one. just one. β¨
β¨ SYNOPSIS β¨
struct ring_frame * tb_ring_poll (struct tb_ring *ring );
that's the whole signature, copy it exactly bestie, no cap π
π ARGUMENTS π
ringβ the ring you're polling π (the ring to poll, that's the whole vibe)
π₯ DESCRIPTION π₯
so here's when you're allowed to call this, and it is lowkey specific:
- when the
start_pollcallback of the ring has been called, OR - the ring was created with
RING_FLAG_NO_INTERRUPTπ«Ά
in those cases this function will read one completed frame from the ring and return it to the caller. that's it. one frame. it's giving minimalism, it's giving "one job and it does it" π
β RETURN β
it hands you back a pointer to struct ring_frame π«
and if there are no more completed frames? you get NULL. that's the signal, don't ignore it π
π SEE ALSO π
Kernel file ./drivers/thunderbolt/nhi.c β go read it, it's the main character of this whole story π
tb_ring_poll_complete(9)tb_ring_alloc_tx(9)tb_ring_alloc_rx(9)tb_ring_start(9)tb_ring_flush(9)tb_ring_stop(9)tb_ring_throttling(9)nhi_mailbox_cmd(9)nhi_mailbox_mode(9)
all of these, no skips, collect them like PokΓ©mon π§π
and that's the whole page bestie π sign-off time: this one lives in ./drivers/thunderbolt, dated October 2026 β periodt, end of page, go poll some rings π
β¨πΈ
π¦ 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