STRUCT VRINGH_KIOV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct vringh_kiov ✨

okay bestie, welcome to the Kernel API Manual πŸ’… today's main character is struct vringh_kiov, and honestly? it's giving kvec mangler. that's the whole NAME section, no cap.


🌸 SYNOPSIS 🌸

like, here's the whole vibe, verbatim, don't @ me:

struct vringh_kiov {
    struct kvec *iov;
    size_t consumed;
    unsigned i, used, max_num;
 };

πŸŽ€ MEMBERS πŸŽ€

every field, bestie, we're not skipping a single one:

  • iov β€” the array of iovecs we're operating on. that's it, that's the field πŸ¦‹
  • consumed β€” how many bytes have been consumed within iov[i]. yes, inside a single entry. track it, queen πŸ‘‘
  • i β€” the index of the current iovec. which one are we on rn, that's i 🫢
  • used β€” how many iovecs are actually present in iov. the real count, not the theoretical one ⭐
  • max_num β€” the maximum number of iovecs, which corresponds to the allocated memory of iov. so like, the ceiling. the limit. the allocated-memory vibe check πŸ’€

🧚 DESCRIPTION 🧚

so what does it do? it mangles kvec in place, and then restores it. lowkey iconic behavior β€” mess it up, then put it back like nothing happened 😭✨

and the remaining data? it's iov + i, made of used - i elements. literally that. no extra lore, that's the whole thing πŸ’–

fr fr, remember: in place, then restored. don't invent extra steps, bestie πŸ™ˆ

🌈 SEE ALSO 🌈

go read these next, iykyk:

  • Kernel file ./include/linux/vringh.h
  • struct vringh_config_ops(9)
  • struct vringh_iov(9)

and that's the page, bestie πŸŽ€ sign-off time: this one lives in ./include/linux and it's dated October 2026. slay, go read the header file, mwah πŸ’œπŸ¦‹

πŸ“¦ where this page comes from