STRUCT GLINK_CHANNEL(9)
π struct glink_channel(9) π
okay so this is from the Kernel API Manual, section 9, and it's literally the whole personality of a glink channel in one struct bestie π
β¨ NAME β¨
struct glink_channel β the internal representation of a channel π¦
πΈ SYNOPSIS πΈ
struct glink_channel {
struct rpmsg_endpoint ept;
struct rpmsg_device *rpdev;
struct qcom_glink *glink;
struct kref refcount;
spinlock_t recv_lock;
char *name;
unsigned int lcid;
unsigned int rcid;
spinlock_t intent_lock;
struct idr liids;
struct idr riids;
struct work_struct intent_work;
struct list_head done_intents;
struct glink_core_rx_intent *buf;
int buf_offset;
int buf_size;
struct completion open_ack;
struct completion open_req;
struct mutex intent_req_lock;
int intent_req_result;
bool intent_received;
wait_queue_head_t intent_req_wq;
};
π Members π
like, every single field, explained, no gatekeeping π
eptβ the rpmsg endpoint this channel is associated with π«Άrpdevβ therpdevreference, and lowkey she's only used for primary endpointsglinkβ theqcom_glinkcontext handle, the whole vibe containerrefcountβ refcount for the channel object, keeping her alive, main character energy β¨recv_lockβ guard forept.cb, protective queennameβ unique channel name/identifier, her literal government namelcidβ channel id, in local spacercidβ channel id, in remote spaceintent_lockβ lock protectingliidsandriidsπ«‘liidsβ idr of all local intentsriidsβ idr of all remote intentsintent_workβ the worker responsible for transmittingrx_donepackets, she's got a job fr frdone_intentsβ list of intents that need to be announcedrx_donebufβ receive buffer, for gathering fragments π§©buf_offsetβ write offset inbufbuf_sizeβ size of currentbufopen_ackβ completed once remote has acked the open-request βopen_reqβ completed once open-request has been receivedintent_req_lockβ synchronises multiple intent requests, no fighting in the group chat plsintent_req_resultβ result of intent requestintent_receivedβ flag indicating that an intent has been received π©intent_req_wqβ wait queue forintent_reqsignalling
π₯ SEE ALSO π₯
- Kernel file
./drivers/rpmsg/qcom_glink_native.c struct glink_defer_cmd(9)struct glink_core_rx_intent(9)struct qcom_glink(9)qcom_glink_send_open_req(9)qcom_glink_receive_version(9)qcom_glink_receive_version_ack(9)qcom_glink_send_intent_req_ack(9)qcom_glink_advertise_intent(9)qcom_glink_handle_intent_req(9)qcom_glink_set_flow_control(9)
π that's the whole page, ate and left no crumbs. this one lives in ./drivers/rpmsg, it's dated October 2026, and it's your girl struct glink_channel(9) signing off β mwah ππ
π¦ 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