scmi_xfer_state_update(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 a u8, 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