STRUCT MHI_EP_BUF_INFO(9)
π 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:
struct mhi_ep_channel_config(9)struct mhi_ep_cntrl_config(9)struct mhi_ep_db_info(9)struct mhi_ep_cntrl(9)struct mhi_ep_device(9)struct mhi_ep_driver(9)__mhi_ep_driver_register(9)mhi_ep_driver_unregister(9)mhi_ep_register_controller(9)mhi_ep_unregister_controller(9)mhi_ep_power_up(9)mhi_ep_power_down(9)mhi_ep_queue_is_empty(9)mhi_ep_queue_skb(9)
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
- 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