rpmsg_send(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’Œ rpmsg_send(9) β€” the Kernel API Manual, bestie edition

okay so you found the rpmsg_send(9) page, and honestly? good for you. this is the one that actually pushes your bytes across the void to the remote processor. let's get into it ✨


🌸 NAME

rpmsg_send β€” send a message across to the remote processor 🫢


πŸŽ€ SYNOPSIS

int rpmsg_send (struct rpmsg_endpoint *ept , const void *data , int len
);

like, that's the whole vibe. three args, one int coming back at you. πŸ’…


πŸ¦‹ ARGUMENTS

  • ept β€” the rpmsg endpoint. your lil handle on the conversation, bestie πŸŽ€
  • data β€” payload of message. the actual stuff you're shipping πŸ“¦
  • len β€” length of payload. how many bytes are you sending, no cap πŸ”’

✨ DESCRIPTION

so here's the tea: this function sends data of length len on the ept endpoint. that's it, that's the job. 🌈

the message gets sent to the remote processor that the ept endpoint belongs to β€” and it uses ept's address plus its associated rpmsg device destination addresses to figure out where it's going. iykyk. πŸ’«

now for the part you actually need to know πŸ‘€ β€” in case there are no TX buffers available, the function will block until one becomes available, or a timeout of 15 seconds elapses. so yeah, it'll just sit there waiting and you'll be like "hello??" 😭 and when that timeout hits, -ERESTARTSYS is returned. note it. memorize it. 🫑

⚠️ important vibe check: this can only be called from process context (for now). like, that's the rule. πŸ’€

πŸ‘‘ RETURN

0 on success, and an appropriate error value on failure. that's it. slay. βœ…


πŸ”₯ SEE ALSO

Kernel file ./drivers/rpmsg/rpmsg_core.c β€” go read it, it's giving main character energy πŸ“–


and that's the whole page, bestie πŸ’– it lives in ./drivers/rpmsg, dated October 2026, and it's literally the rpmsg_send(9) manual β€” go send some messages, you've got this πŸ§šβ€β™€οΈβ­

πŸ“¦ where this page comes from