STRUCT QCOM_SMD_CHANNEL(9)
π NAME π
struct qcom_smd_channel β the smd channel struct, bestie. it's the whole vibe of an SMD channel in one little struct π
so this page lives in the Kernel API Manual, and yeah we're gonna go through literally every single member bc nothing gets skipped in this house β¨
πΈ SYNOPSIS πΈ
like, here's what she looks like, no cap:
struct qcom_smd_channel {
struct qcom_smd_edge *edge;
struct qcom_smd_endpoint *qsept;
bool registered;
char *name;
enum smd_channel_state state;
enum smd_channel_state remote_state;
wait_queue_head_t state_change_event;
struct smd_channel_info_pair *info;
struct smd_channel_info_word_pair *info_word;
spinlock_t tx_lock;
wait_queue_head_t fblockread_event;
void *tx_fifo;
void *rx_fifo;
int fifo_size;
void *bounce_buffer;
spinlock_t recv_lock;
int pkt_size;
void *drvdata;
struct list_head list;
};
she's giving structured. she's giving fields. we love her π
β¨ MEMBERS β¨
okay so this is the part where we go member by member and I tell you what each one rly does π«Ά
edgeβ theqcom_smd_edgethis channel is living on. like her home address fr πqseptβ reference to a associated smd endpoint πregisteredβ flag to indicate if the channel is registered βnameβ name of the channel π·οΈstateβ local state of the channel, yk, hers πββοΈremote_stateβ remote state of the channel, the other side's whole situation πstate_change_eventβ state change event β‘infoβ byte aligned outgoing/incoming channel info π¬info_wordβ word aligned outgoing/incoming channel info π¨tx_lockβ lock to make writes to the channel mutually exclusive. no two besties writing at once okay πfblockread_eventβ wakeup event tied to tx fBLOCKREADINTR β°tx_fifoβ pointer to the outgoing ring buffer πrx_fifoβ pointer to the incoming ring buffer π₯fifo_sizeβ size of each ring buffer πbounce_bufferβ bounce buffer for reading wrapped packets π (literally what it sounds like, she bounces)recv_lockβ guard for rx info modifications and cb pointer π‘οΈpkt_sizeβ size of the currently handled packet π¦drvdataβ driver private data π€« (private!! we don't ask)listβ lite entry for channels inqcom_smd_edgeπ
π SEE ALSO π
go read the actual kernel file bestie, it's all there: Kernel file ./drivers/rpmsg/qcom_smd.c β and while you're at it, these icons too π
struct qcom_smd_edge(9)struct qcom_smd_alloc_entry(9)__qcom_smd_send(9)qcom_smd_register_edge(9)qcom_smd_unregister_edge(9)
ok that's the whole page, nothing skipped, nothing invented, we ate and left no crumbs π₯
and that's a wrap on struct qcom_smd_channel(9) π this one came out of ./drivers/rpmsg, dated October 2026, and it's filed under struct qcom_smd_channel(9) β mwah, go read the source, ily, bye πβ¨π¦
π¦ 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