STRUCT QCOM_GLINK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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 associated struct 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 the rx_queue. bodyguard energy, don't touch πŸ›‘οΈ
  • rx_queue β€” queue of received control messages to be processed in rx_work. the to-do list πŸ“
  • tx_lock β€” synchronizes operations on the tx fifo. one at a time please, there's a line 🚦
  • idr_lock β€” synchronizes lcids and rcids modifications. 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:


⭐ 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