scmi_handle_get(9)
π scmi_handle_get β bestie, let's get that handle β¨
Okay so real talk, this is a kernel API manual page for scmi_handle_get. It's giving "I need my SCMI handle and I need it now" energy, and honestly? We love that for you. Let's get into it.
πΈ SYNOPSIS πΈ
struct scmi_handle * scmi_handle_get (struct device *dev );
Like, you call it with a device pointer and it hands you back a struct scmi_handle *. Simple slay. π«Ά
π ARGUMENTS π
devβ pointer to the device for which we want the SCMI handle. That's it, that's the whole vibe. You point at a device, you get a handle. π₯
β οΈ NOTE (read this bestie, fr fr) β οΈ
The function does not track individual clients of the framework, and it is expected to be maintained by the caller of the SCMI protocol library. Translating that from corporate: it's not keeping tabs on who's using it, so YOU gotta keep track, okay? π
scmi_handle_putmust be balanced with a successfulscmi_handle_get. This is non-negotiable. Like, if you get a handle and don't put it back, that's giving memory leak main character energy and we are NOT here for it. Every get needs its put. Periodt. π
π RETURN π
- Pointer to the handle if it's successful β slay, iconic, we love to see it β¨
NULLon error β it's giving "it's not me, it's you" and you gotta handle that gracefully π
π¦ SEE ALSO π¦
Okay so this list is long but honestly every single one of these is a baddie in their own right. Respect the whole squad. π
- Kernel file
./drivers/firmware/arm_scmi/driver.c struct scmi_xfers_info(9)struct scmi_protocol_instance(9)struct scmi_info(9)scmi_create_protocol_devices(9)scmi_xfer_token_set(9)scmi_xfer_token_clear(9)scmi_xfer_inflight_register_unlocked(9)scmi_xfer_inflight_register(9)scmi_xfer_raw_inflight_register(9)scmi_xfer_pending_set(9)scmi_xfer_get(9)scmi_xfer_raw_get(9)scmi_xfer_raw_channel_get(9)__scmi_xfer_put(9)scmi_xfer_raw_put(9)scmi_xfer_lookup_unlocked(9)scmi_bad_message_trace(9)scmi_msg_response_validate(9)scmi_xfer_state_update(9)scmi_xfer_command_acquire(9)scmi_rx_callback(9)xfer_put(9)scmi_wait_for_message_response(9)scmi_xfer_raw_wait_for_message_response(9)do_xfer(9)do_xfer_with_response(9)xfer_get_init(9)version_get(9)scmi_set_protocol_priv(9)scmi_get_protocol_priv(9)scmi_common_extended_name_get(9)scmi_common_get_max_msg_size(9)scmi_protocol_msg_check(9)struct scmi_iterator(9)scmi_revision_area_get(9)scmi_protocol_version_negotiate(9)scmi_protocol_version_initialize(9)scmi_alloc_init_protocol_instance(9)scmi_get_protocol_instance(9)scmi_protocol_acquire(9)scmi_protocol_release(9)scmi_devm_protocol_get(9)scmi_devm_protocol_acquire(9)scmi_devm_protocol_put(9)scmi_is_transport_atomic(9)scmi_handle_put(9)scmi_channels_setup(9)
Like I said. Whole squad. No cap. π
Anyway bestie, that's the whole manual. Go forth and handle responsibly. Don't forget the put. I'm literally begging you. π
Source: ./drivers/firmware/arm_scmi Β· Date: October 2026 Β· Title: scmi_handle_get(9) β mwah, love u, bye! πβ¨π
π¦ 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