STRUCT SCMI_HANDLE(9)
π 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
- 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