STRUCT QCOM_GLINK(9)
β¨ struct qcom_glink(9) β¨
okay bestie, this is struct qcom_glink β and no, it's not a social media thing π
it's the driver context that relates to one remote subsystem. one. single. subsystem. it's giving main character energy for exactly one remote. π«Ά
this page lives in section 9 of the Kernel API Manual, so you know it's the fancy kernel-internals section, iykyk.
πΈ SYNOPSIS πΈ
struct qcom_glink {
struct device *dev;
const char *label;
struct qcom_glink_pipe *rx_pipe;
struct qcom_glink_pipe *tx_pipe;
struct work_struct rx_work;
spinlock_t rx_lock;
struct list_head rx_queue;
spinlock_t tx_lock;
spinlock_t idr_lock;
struct idr lcids;
struct idr rcids;
unsigned long features;
bool intentless;
wait_queue_head_t tx_avail_notify;
bool sent_read_notify;
bool abort_tx;
};
like, look at her. so many fields. so much going on. literally iconic. π copy it exactly bestie, don't you dare retype it from memory.
π¦ Members π¦
let's do a vibe check on every single field, one by one, no skipping, no cap:
devβ reference to the associatedstruct device. her link to the device world πlabelβ identifier of the glink edge. that's her name tag at the party π·οΈrx_pipeβ pipe object for the receive FIFO. incoming mail slot π¬tx_pipeβ pipe object for the transmit FIFO. outgoing mail slot π€rx_workβ worker for handling received control messages. she does the actual work, unlike some people πrx_lockβ protects therx_queue. bodyguard energy, don't touch π‘οΈrx_queueβ queue of received control messages to be processed inrx_work. the to-do list πtx_lockβ synchronizes operations on the tx fifo. one at a time please, there's a line π¦idr_lockβ synchronizeslcidsandrcidsmodifications. protects both, equal treatment, slay βοΈlcidsβ idr of all channels with a known local channel id. local besties only πrcidsβ idr of all channels with a known remote channel id. long-distance besties πfeaturesβ remote features. what the other side can do β¨intentlessβ flag to indicate that there is no intent. not me being intentless ππtx_avail_notifyβ Waitqueue for pending tx tasks. they wait here, patiently, like me waiting for a text back πsent_read_notifyβ flag to check cmd sent or not. did it send? did it not? the suspense π₯abort_txβ flag indicating that all tx attempts should fail. yes, ALL of them. dramatic? maybe. accurate? absolutely π
β οΈ heads up bestie: that last one is a real mood-killer β abort_tx literally means every single tx attempt should fail. no exceptions, no partial credit.
π SEE ALSO π
go read these next, they're all part of the same friend group, fr fr:
- Kernel file
./drivers/rpmsg/qcom_glink_native.cstruct glink_defer_cmd(9) struct glink_core_rx_intent(9)struct glink_channel(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)
β and that's the whole page, bestie! ily, stay hydrated, and remember: this one came to you from ./drivers/rpmsg, dated October 2026, in the one and only struct qcom_glink(9) manpage. periodt. π
ππΈ
π¦ 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