STRUCT SCMI_MSG_HDR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct scmi_msg_hdr(9) β€” the Kernel API Manual, bestie ✨

okay so picture this: it's a page from the Kernel API Manual, section 9, and it's literally just about one little struct. and honestly? she's iconic. it's the header that every SCMI message (Tx and Rx, both directions, no cap) carries around with it πŸŽ€


🌸 NAME 🌸

struct scmi_msg_hdr β€” the Message(Tx/Rx) header. that's it, that's the whole vibe πŸ¦‹


✨ SYNOPSIS ✨

here's the whole glow-up, copied exactly, do not @ me:

struct scmi_msg_hdr {
    u8 id;
    u8 protocol_id;
    u8 type;
    u16 seq;
    u32 status;
    bool poll_completion;
 };

πŸ’– Members πŸ’–

okay bestie, let's go field by field, because every single one of these matters:

  • id β€” the identifier of the message being sent πŸ”₯
  • protocol_id β€” the identifier of the protocol used to send id message. yes, she needs to know which protocol is doing the sending 🧚
  • type β€” the SCMI type for this message ⭐
  • seq β€” the token to identify the message. and here's the cute part: when a message returns, the platform returns the whole message header unmodified, token included 🫢 like it literally hands it back exactly how it got it, no edits, no notes, nothing πŸ’…
  • status β€” status of the transfer once it's complete. she tells you how it went πŸ’€
  • poll_completion β€” indicates if the transfer needs to be polled for completion, or if interrupt mode is used. one or the other, bestie, pick your lane 🌸

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, i promise they're worth it:

Kernel file ./drivers/firmware/arm_scmi/protocols.h struct scmi_msg_resp_prot_version(9), struct scmi_msg(9), struct scmi_xfer(9), struct scmi_protocol_handle(9), struct scmi_iterator_state(9), struct scmi_iterator_ops(9), struct scmi_proto_helpers_ops(9), struct scmi_xfer_ops(9), struct scmi_protocol(9)


ngl the whole friend group is listed above and they all live over in ./drivers/firmware/arm_scmi β€” go say hi 🌈

and that's the page, periodt πŸ“ this cutie came from the source in ./drivers/firmware/arm_scmi, dated October 2026, and she answers to the name struct scmi_msg_hdr(9) πŸ’œ mwah, go read some kernel code πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from