scmi_xfer_state_update(9)
π scmi_xfer_state_update(9) β the Kernel API Manual, bestie edition β¨
okay so this is a page from the Kernel API Manual, and the whole entire vibe is: "we already checked the homework, now we're just writing the grade in the book." Let's get into it π«Ά
β¨ NAME β¨
scmi_xfer_state_update β literally just updating the xfer state, that's the whole job π«
π SYNOPSIS π
void scmi_xfer_state_update (struct scmi_xfer *xfer , u8 msg_type );
πΈ ARGUMENTS πΈ
xferβ a reference to the xfer you're updating. yes, that one. the one you're holding. πmsg_typeβ the type of message being processed. it's au8, it's little, it's doing its best. β¨
π¦ DESCRIPTION π¦
okay so important note before you do literally anything: this message is assumed to have already been successfully validated by scmi_msg_response_validate π like, that already happened, that's not your problem anymore. so here? we just update the state. that's it. no re-checking, no second-guessing, we're just vibing and writing the state down. periodt. π
π CONTEXT π
this assumes it's being called on an xfer that was exclusively acquired using the busy flag β exclusive, bestie, that's the whole point. don't be out here calling it on some shared xfer that isn't yours, that's not the vibe, that's a bug fr fr π
π SEE ALSO π
okay this list is long, so buckle up, we're going in π₯
kernel file ./drivers/firmware/arm_scmi/driver.c, plus 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_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. that's the whole friend group. iconic honestly π
and that's the page!! this came out of ./drivers/firmware/arm_scmi, dated October 2026, and it's page scmi_xfer_state_update(9) of the Kernel API Manual β go off, king π
π¦ 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