STRUCT SCMI_HANDLE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

hey bestie πŸ’– welcome to struct scmi_handle(9) from the Kernel API Manual. This is the handle returned to ARM SCMI clients for usage β€” that's literally the name-line tea. 🫢


🌸 SYNOPSIS 🌸

okay so the struct is exactly this, no edits, no cap:

struct scmi_handle {
    struct device *dev;
    struct scmi_base_info *version;
    int __must_check (*devm_protocol_acquire)(struct scmi_device *sdev, u8 proto);
    const void __must_check * (*devm_protocol_get)(struct scmi_device *sdev, u8 proto, struct scmi_protocol_handle **ph);
    void (*devm_protocol_put)(struct scmi_device *sdev, u8 proto);
    bool (*is_transport_atomic)(const struct scmi_handle *handle, unsigned int *atomic_threshold);
    const struct scmi_notify_ops *notify_ops;
};

πŸ’… Members πŸ’…

every member, in order, with zero skipped:

  • dev β€” pointer to the SCMI device. literally points at the device, that's the vibe πŸ’–
  • version β€” pointer to the structure containing SCMI version information. version lore, secured ✨
  • devm_protocol_acquire β€” devres managed method to get hold of a protocol, causing its initialization and related resource accounting. it grabs the protocol, runs init, and does the resource accounting too, ngl 🫢
  • devm_protocol_get β€” devres managed method to acquire a protocol and get specific operations and a dedicated protocol handler. icon behavior, honestly πŸ‘‘
  • devm_protocol_put β€” devres managed method to release a protocol. bye bestie πŸ‘‹
  • is_transport_atomic β€” method to check if the underlying transport for this instance handle is configured to support atomic transactions for commands. Some users of the SCMI stack in the upper layers could be interested to know if they can assume SCMI command transactions associated to this handle will never sleep and act accordingly. An optional atomic threshold value could be returned where configured. so yes, it's the atomic-transport vibe check πŸ’…
  • notify_ops β€” pointer to set of notifications related operations. notifications? ops? yes bestie, that's the field πŸ””

πŸ”₯ SEE ALSO πŸ”₯

go read these too, iykyk πŸ‘‘:

  • Kernel file ./include/linux/scmi_protocol.h
  • struct scmi_base_info(9)
  • struct scmi_clk_proto_ops(9)
  • struct scmi_perf_proto_ops(9)
  • struct scmi_power_proto_ops(9)
  • struct scmi_sensor_reading(9)
  • struct scmi_range_attrs(9)
  • struct scmi_sensor_axis_info(9)
  • struct scmi_sensor_intervals_info(9)
  • struct scmi_sensor_info(9)
  • struct scmi_sensor_proto_ops(9)
  • struct scmi_reset_proto_ops(9)
  • struct scmi_voltage_info(9)
  • struct scmi_voltage_proto_ops(9)
  • struct scmi_powercap_info(9)
  • struct scmi_powercap_proto_ops(9)
  • struct scmi_pinctrl_proto_ops(9)
  • struct scmi_notify_ops(9)
  • module_scmi_driver(9)
  • module_scmi_protocol(9)

okay that's the page πŸ’… source is ./include/linux, dated October 2026, and it's struct scmi_handle(9) from the Kernel API Manual. mwah πŸ’‹

πŸ“¦ where this page comes from