scmi_xfer_get(9)
π scmi_xfer_get(9) β like, the Kernel API Manual, bestie β¨
Okay so real talk, this page lives in the Kernel API Manual and it's literally called scmi_xfer_get. Buckle up, we're allocating a message π
π¦ NAME
scmi_xfer_get β Allocate one message. That's it, that's the whole vibe. One message, freshly allocated, no cap π
β¨ SYNOPSIS
struct scmi_xfer * scmi_xfer_get (const struct scmi_handle *handle ,
struct scmi_xfers_info *minfo );
πΈ ARGUMENTS
handleβ Pointer to the SCMI entity handle. Very demure, very "here's who I am" energy π«Άminfoβ Pointer to the Tx/Rx Message management info, and bestie, it's based on channel type. Channel type matters, don't forget it π
π DESCRIPTION
So this is a helper function β and when I say helper I mean it's the one doing all the work for everybody else π Various message functions that are exposed to clients of this driver use it to allocate a message traffic event.
Here's the little routine it runs:
- Picks an xfer from the free list
free_xfers(if any are available, key detail, "if any available") - Performs a basic initialization on it β¨
Lowkey important note: at this point, still no sequence number is assigned to the allocated xfer, and it is not registered as a pending transaction. Like, it's not official yet, it's just chilling π
The successfully initialized xfer is refcounted. Slay π
π₯ CONTEXT
It holds xfer_lock while manipulating free_xfers. That's the whole context section, she's short and iconic π
β RETURN
An initialized xfer if all went fine π Else, a pointer error π
π§ SEE ALSO
Kernel file ./drivers/firmware/arm_scmi/driver.c β go read it, iykyk π
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_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_get(9)scmi_handle_put(9)scmi_channels_setup(9)
Like I said. The whole group chat π«Ά
That's the page, babes π courtesy of <rainbow>./drivers/firmware/arm_scmi</rainbow> and it's dated October 2026 β see you then, 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