STRUCT RPMSG_ENDPOINT_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct rpmsg_endpoint_ops(9) πŸ‘‘

okay so bestie, welcome to the Kernel API Manual ✨ β€” this is the page for struct rpmsg_endpoint_ops, and honestly? she's the whole vibe check for rpmsg endpoints. let's get into it πŸ’…


🌸 NAME 🌸

struct rpmsg_endpoint_ops β€” the indirection table for rpmsg_endpoint operations πŸŽ€

like, it's the lil directory of function pointers that says "hey backend, here's what you gotta be able to do." no cap. 🫢


✨ SYNOPSIS ✨

struct rpmsg_endpoint_ops {
    void (*destroy_ept)(struct rpmsg_endpoint *ept);
    int (*send)(struct rpmsg_endpoint *ept, const void *data, int len);
    int (*sendto)(struct rpmsg_endpoint *ept, const void *data, int len,
u32 dst);
    int (*trysend)(struct rpmsg_endpoint *ept, const void *data, int
len);
    int (*trysendto)(struct rpmsg_endpoint *ept, const void *data, int
len, u32 dst);
    __poll_t (*poll)(struct rpmsg_endpoint *ept, struct file *filp,
poll_table *wait);
    int (*set_flow_control)(struct rpmsg_endpoint *ept, bool pause, u32
dst);
    ssize_t (*get_mtu)(struct rpmsg_endpoint *ept);
 };

look at her go 😭 so many function pointers, so little time πŸ¦‹


πŸŽ€ Members πŸŽ€

okay let's meet the cast πŸ’–

  • destroy_ept β€” see rpmsg_destroy_ept. required, bestie, you literally cannot skip this one πŸ™ˆ
  • send β€” see rpmsg_send. required ✨
  • sendto β€” see rpmsg_sendto. optional, she's flexible like that πŸ’…
  • trysend β€” see rpmsg_trysend. required πŸ”₯
  • trysendto β€” see rpmsg_trysendto. optional πŸŽ€
  • poll β€” see rpmsg_poll. optional ⭐
  • set_flow_control β€” see rpmsg_set_flow_control. optional 🌈
  • get_mtu β€” see rpmsg_get_mtu. optional 🌸

πŸ’œ Description πŸ’œ

This is the indirection table for the operations that a rpmsg backend should implement. iykyk 🧚

so here's the tea: in addition to destroy_ept, the backend must at least implement send and trysend β€” those two are non-negotiable, main character energy, periodt πŸ‘‘ β€” while the variants that send data off-channel are optional πŸ’€

literally: destroy_ept + send + trysend = mandatory. everything else? cute bonus content πŸ“

πŸ¦‹ SEE ALSO πŸ¦‹

go read those next, bestie, they're iconic too 😌


okay that's the whole page and you ate that ngl πŸ’– this lil gem lives in ./drivers/rpmsg, dated October 2026, from the Kernel API Manual β€” mwah, go implement those three required ops and slay βœ¨πŸŽ€

πŸ“¦ where this page comes from