STRUCT SCMI_SMC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct scmi_smc(9) β€” like, the whole Kernel API Manual page, but make it make sense 🫢

okay bestie, sit down, grab a strawberry πŸ“ β€” this is the struct scmi_smc page from the Kernel API Manual, and it's literally the glow-up of a struct: it's the thing that represents a SCMI smc transport ✨. no cap, that's the whole vibe. it's giving "tiny struct, main character energy" πŸ‘‘


✨ NAME ✨

struct scmi_smc β€” Structure representing a SCMI smc transport πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole fit, laid out exactly, don't touch a single character bestie:

struct scmi_smc {
    int irq;
    struct scmi_chan_info *cinfo;
    struct scmi_shared_mem __iomem *shmem;
    struct scmi_shmem_io_ops *io_ops;
    struct mutex shmem_lock;
  #define INFLIGHT_NONE   MSG_TOKEN_MAX;
    atomic_t inflight;
    unsigned long func_id;
    unsigned long param_page;
    unsigned long param_offset;
    unsigned long cap_id;
 };

like, obsessed with how tidy that is πŸŽ€


πŸ¦‹ Members πŸ¦‹

okay so now we go member by member, and every single one gets its moment ✨

  • irq β€” an optional IRQ for completion. optional! she can show up, she can stay home, no pressure πŸ’…
  • cinfo β€” SCMI channel info πŸ“‘
  • shmem β€” the Transmit/Receive shared memory area πŸ’–
  • io_ops β€” transport specific I/O operations 🧚
  • shmem_lock β€” the lock that protects access to the Tx/Rx shared memory area. used when you're NOT operating in atomic mode πŸ”’
  • inflight β€” an atomic flag that protects access to the Tx/Rx shared memory area. used when you are operating in atomic mode ⚑
  • func_id β€” the smc/hvc call function id πŸ“ž
  • param_page β€” the 4K page number of the shmem channel πŸ“„
  • param_offset β€” the offset within the 4K page of the shmem channel πŸ“
  • cap_id β€” the smc/hvc doorbell's capability id, to be used on Qualcomm virtual platforms πŸ‘‘
ngl, the shmem_lock vs inflight duality is highkey iconic β€” one for the non-atomic girlies, one for the atomic girlies, and they both protect the exact same Tx/Rx shared memory area. pick your lane, bestie πŸ’€

πŸ’œ SEE ALSO πŸ’œ

  • Kernel file ./drivers/firmware/arm_scmi/transports/smc.c 🫢

and that's the page!! fr fr, sourced straight from ./drivers/firmware/arm_scmi/tr... and dated October 2026, still out here being struct scmi_smc(9) and slaying πŸ’–πŸŽ€πŸŒˆ

πŸ“¦ where this page comes from