STRUCT QCOM_SMP2P(9)
β¨ struct qcom_smp2p(9) β¨
okay bestie, welcome to the Kernel API Manual β we're looking at struct qcom_smp2p, which is literally the device driver context. that's the whole vibe. it's giving "i hold all the state so you don't have to" π
π NAME π
struct qcom_smp2p β device driver context. that's it, that's the name, she's concise and she knows it β¨
πΈ SYNOPSIS πΈ
here's the whole glow-up, bestie β every single field, exactly as written, no edits no cap:
struct qcom_smp2p {
struct device *dev;
struct smp2p_smem_item *in;
struct smp2p_smem_item *out;
unsigned smem_items[SMP2P_OUTBOUND + 1];
unsigned valid_entries;
bool ssr_ack_enabled;
bool ssr_ack;
bool negotiation_done;
unsigned local_pid;
unsigned remote_pid;
struct regmap *ipc_regmap;
int ipc_offset;
int ipc_bit;
struct mbox_client mbox_client;
struct mbox_chan *mbox_chan;
struct list_head inbound;
struct list_head outbound;
};
π Members π
okay so now we go field by field, main character by main character π«Ά
devβ the device driver handle. she's the anchor, the home base, the it girl of the struct π β¨inβ pointer to the inbound smem item. incoming messages, we love to see it πoutβ pointer to the outbound smem item. outgoing, obviously, she's booked and busy π€π₯smem_itemsβ the ids of the two smem items. just the ids, two of them, iconic πvalid_entriesβ already scanned inbound entries. like, we've done the reading bestie, we're caught up ππssr_ack_enabledβSMP2P_FEATURE_SSR_ACKfeature is supported and was enabled. yes both things, supported and enabled, she's thorough βssr_ackβ current cached state of the local ack bit. cached! so we don't have to go ask again πnegotiation_doneβ whether negotiating finished. the will-they-won't-they is over, it's settled π¬local_pidβ processor id of the inbound edge. local, as in me, as in this side πββοΈremote_pidβ processor id of the outbound edge. the other side, the pen pal, the faraway friend π¦ipc_regmapβ regmap for the outbound ipc. the map of the outbound vibes πΊοΈipc_offsetβ offset within the regmap. how far in, like, positionally πipc_bitβ bit inregmapoffsetto kick to signal remote processor. you kick the bit, the remote processor gets the message, everybody slays π¦΅β‘mbox_clientβ mailbox client handle. her mailbox, her rules π¬mbox_chanβ apcs ipc mailbox channel handle. yes it's a whole specific channel, say it with your chest π’inboundβ list of inbound entries. the whole inbound squad, in list form π§outboundβ list of outbound entries. and the outbound squad too, matching set fr fr π―ββοΈ
π SEE ALSO π
go read these next, bestie, i'm obsessed with this little cluster of cross-references:
- Kernel file
./drivers/soc/qcom/smp2p.c struct smp2p_smem_item(9)struct smp2p_entry(9)qcom_smp2p_intr(9)
ok tiny PSA from me to you: this page is literally just a struct definition + member explanations. no dangerous flags, no deprecated anything, no undefined behaviour lurking in the shadows. you're safe to read this one in bed π
anyway that's the whole thing!! sourced from ./drivers/soc/qcom, dated October 2026, and once again we're signing off from struct qcom_smp2p(9). 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