STRUCT RPMSG_ENDPOINT_OPS(9)
π 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β seerpmsg_destroy_ept. required, bestie, you literally cannot skip this one πsendβ seerpmsg_send. required β¨sendtoβ seerpmsg_sendto. optional, she's flexible like that πtrysendβ seerpmsg_trysend. required π₯trysendtoβ seerpmsg_trysendto. optional πpollβ seerpmsg_poll. optional βset_flow_controlβ seerpmsg_set_flow_control. optional πget_mtuβ seerpmsg_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 π¦
- Kernel file
./drivers/rpmsg/rpmsg_internal.h struct rpmsg_device_ops(9)rpmsg_ctrldev_register_device(9)
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
- 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