STRUCT MHI_EP_BUF_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct mhi_ep_buf_info(9) β€” a whole page from the Kernel API Manual, bestie

okay so picture this: you're deep in the kernel docs, right? and you stumble on this little struct. it's giving "small but runs the whole group chat" energy, and honestly? obsessed. it's called struct mhi_ep_buf_info and it's literally the MHI Endpoint transfer buffer info. that's the NAME, periodt. πŸ’–


✨ SYNOPSIS ✨

here's the whole glow-up, verbatim, don't touch a single character:

struct mhi_ep_buf_info {
    struct mhi_ep_device *mhi_dev;
    void *dev_addr;
    u64 host_addr;
    size_t size;
    int code;
    void (*cb)(struct mhi_ep_buf_info *buf_info);
    void *cb_buf;
 };

okay she's cute, she's compact, she's about to explain herself member by member πŸŽ€


🌸 Members 🌸

time for the meet-the-cast segment. every single one of these matters, no skipping:

  • mhi_dev β€” the MHI device that's associated with this buffer. like, whose buffer is this? this one. πŸ’«
  • dev_addr β€” the address of the buffer in the endpoint. that's the device-side address, bestie.
  • host_addr β€” the address of the buffer in the host. yep, the other side of the situationship. two addresses, one buffer, iconic. πŸ¦‹
  • size β€” the size of the buffer. self-explanatory, lowkey the most well-adjusted member here.
  • code β€” the transfer completion code. it's giving "how did the transfer go" report card. ⭐
  • cb β€” a callback that the controller drivers execute after transfer completion, and no cap: it's async. so don't sit there waiting for it like it's gonna text back first. πŸ’€
  • cb_buf β€” an opaque buffer that gets passed to that callback. it's opaque, so don't go poking around inside it, bestie. that's the vibe check and it failed. πŸ™ˆ

πŸ”₯ SEE ALSO πŸ”₯

go read the kernel file ./include/linux/mhi_ep.h first (iykyk), then honestly just binge the whole friend group:

that's the entire roster, no one got left on read πŸ’œ


also quick note: cb is async, so the callback runs after the transfer completes, not during. do not block on it. main character energy only in the controller drivers. πŸ‘‘

k bye love u, this page lives in ./include/linux, dated October 2026, and it goes by struct mhi_ep_buf_info(9) β€” slay, stay hydrated, read your headers πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from