mpi3mr_post_transport_req(9)
π mpi3mr_post_transport_req(9) π
okay so this is a page from the Kernel API Manual, bestie β we're talking kernel-level, no cap, and this lil function is the one that actually sends the thing π
β¨ NAME β¨
mpi3mr_post_transport_req β literally just "issue transport requests and wait" π«Ά
πΈ SYNOPSIS πΈ
int mpi3mr_post_transport_req (struct mpi3mr_ioc *mrioc , void *request
, u16 request_sz , void *reply , u16 reply_sz , int timeout , u16
*ioc_status );
like yes, that's a lot of arguments, but she's worth it, i promise π
π¦ ARGUMENTS π¦
mriocβ your adapter instance reference, the main character of this whole operation πrequestβ a properly populated MPI3 request β and yeah, "properly" is doing heavy lifting there, don't play with her πrequest_szβ size of the MPI3 request, in case you were wondering how big the vibe isreplyβ pointer to return MPI3 reply β this is where the firmware talks back πreply_szβ size of the MPI3 reply buffer, keep it correct fr frtimeoutβ timeout in seconds β° like, actual seconds, not vibesioc_statusβ pointer to return ioc status β the lil receipt of how it went β
π DESCRIPTION π
So this is a generic function for posting MPI3 requests from the SAS transport layer that uses the transport command infrastructure. Generic! Iconic! She does it all π
Here's the tea: this blocks for the completion of the request for timeout seconds. Yeah β blocks. Like it's sitting there waiting the whole time, patiently, like a bestie holding your bag π«Ά
β οΈ and if the request times out? she faults the controller with the proper reason code. not a drill, that's real. no silent failures here, she's dramatic but she's honest π
On successful completion of the request, this function returns the appropriate ioc status from the firmware back to the caller β so the firmware's answer makes it all the way back to you, unbothered, slay β¨
π RETURN π
0 on success, non-zero on failure. that's it, that's the rule π
β SEE ALSO β
the friend group, the whole group chat, every single one of them, i'm not leaving anyone out π
- Kernel file
./drivers/scsi/mpi3mr/mpi3mr_transport.cπ mpi3mr_report_manufacture(9)__mpi3mr_expander_find_by_handle(9)mpi3mr_is_expander_device(9)mpi3mr_get_sas_address(9)__mpi3mr_get_tgtdev_by_addr(9)mpi3mr_get_tgtdev_by_addr(9)mpi3mr_remove_device_by_sas_address(9)__mpi3mr_get_tgtdev_by_addr_and_rphy(9)mpi3mr_expander_find_by_sas_address(9)__mpi3mr_sas_node_find_by_sas_address(9)mpi3mr_parent_present(9)mpi3mr_convert_phy_link_rate(9)mpi3mr_delete_sas_phy(9)mpi3mr_add_sas_phy(9)mpi3mr_add_phy_to_an_existing_port(9)mpi3mr_delete_sas_port(9)mpi3mr_del_phy_from_an_existing_port(9)mpi3mr_sas_port_sanity_check(9)mpi3mr_set_identify(9)mpi3mr_add_host_phy(9)mpi3mr_add_expander_phy(9)mpi3mr_alloc_hba_port(9)mpi3mr_get_hba_port_by_id(9)mpi3mr_update_links(9)mpi3mr_sas_host_refresh(9)mpi3mr_sas_host_add(9)mpi3mr_sas_port_add(9)mpi3mr_sas_port_remove(9)struct host_port(9)mpi3mr_update_mr_sas_port(9)mpi3mr_refresh_sas_ports(9)mpi3mr_refresh_expanders(9)mpi3mr_expander_node_add(9)mpi3mr_expander_add(9)mpi3mr_expander_node_remove(9)mpi3mr_expander_remove(9)mpi3mr_get_sas_negotiated_logical_linkrate(9)mpi3mr_report_tgtdev_to_sas_transport(9)mpi3mr_remove_tgtdev_from_sas_transport(9)mpi3mr_get_port_id_by_sas_phy(9)mpi3mr_get_port_id_by_rphy(9)mpi3mr_get_expander_phy_error_log(9)mpi3mr_transport_get_linkerrors(9)mpi3mr_transport_get_enclosure_identifier(9)mpi3mr_transport_get_bay_identifier(9)mpi3mr_expander_phy_control(9)mpi3mr_transport_phy_reset(9)mpi3mr_transport_phy_enable(9)mpi3mr_transport_phy_speed(9)mpi3mr_map_smp_buffer(9)mpi3mr_unmap_smp_buffer(9)mpi3mr_transport_smp_handler(9)
okay that's the whole page, you ate that, go forth and post your transport requests responsibly π§
β signed, sealed, delivered from ./drivers/scsi/mpi3mr, dated October 2026, kissing you on the forehead, 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