mpt_handshak...q_reply_wait(9)
π mpt_handshake_req_reply_wait(9) π
okay so bestie, welcome to the Kernel API Manual, section 9 β the part where we talk about kernel functions β¨. Today's main character is mpt_handshake_req_reply_wait, and honestly? She does exactly what her name says. No cap.
πΈ NAME πΈ
mpt_handshake_req_reply_wait β send an MPT request to the IOC and receive a reply back, using the doorbell handshake method ποΈβ¨
π SYNOPSIS π
int mpt_handshake_req_reply_wait (MPT_ADAPTER *ioc , int reqBytes , u32
*req , int replyBytes , u16 *u16reply , int maxwait , int sleepFlag );
π¦ ARGUMENTS π¦
iocβ pointer to theMPT_ADAPTERstructure π that's your adapter babe, your whole vibereqBytesβ the size of the request, in bytesreqβ pointer to the MPT request framereplyBytesβ the expected size of the reply, in bytesu16replyβ pointer to the area where the reply should be written π«Ά that's where the answer goesmaxwaitβ max wait time for a reply, in seconds β³ (yes seconds, be patient)sleepFlagβ specifies whether the process can sleep π΄ lowkey important, don't skip it
β¨ NOTES β¨
okay so this is the part where I need you to actually listen π
It is the caller's responsibility to byte-swap fields in the request which are greater than 1 byte in size π₯. And it is also the caller's responsibility to byte-swap response fields which are greater than 1 byte in size. Both. Request and response. Not me having to say it twice but here we are π
fr fr, if you forget the byte-swapping, that's on you, not on this function π
Returns 0 for success, and non-zero for failure β
/ β. That's it, that's the whole return contract, iconic.
π SEE ALSO π
Kernel file ./drivers/message/fusion/mptbase.c π and then the whole group chat of related functions, all of them, every single one, no gatekeeping:
mpt_get_cb_idx(9), mpt_is_discovery_complete(9), mpt_remove_dead_ioc_func(9), mpt_fault_reset_work(9), mpt_interrupt(9), mptbase_reply(9), mpt_register(9), mpt_deregister(9), mpt_event_register(9), mpt_event_deregister(9), mpt_reset_register(9), mpt_reset_deregister(9), mpt_device_driver_register(9), mpt_device_driver_deregister(9), mpt_get_msg_frame(9), mpt_put_msg_frame(9), mpt_put_msg_frame_hi_pri(9), mpt_free_msg_frame(9), mpt_add_sge(9), mpt_add_sge_64bit(9), mpt_add_sge_64bit_1078(9), mpt_add_chain(9), mpt_add_chain_64bit(9), mpt_send_handshake_request(9), mpt_host_page_access_control(9), mpt_host_page_alloc(9), mpt_verify_adapter(9), mpt_get_product_name(9), mpt_mapresources(9), mpt_attach(9), mpt_detach(9), mpt_suspend(9), mpt_resume(9), mpt_do_ioc_recovery(9), mpt_detect_bound_ports(9), mpt_adapter_disable(9), mpt_adapter_dispose(9), MptDisplayIocCapabilities(9), MakeIocReady(9), mpt_GetIocState(9), GetIocFacts(9), GetPortFacts(9), SendIocInit(9), SendPortEnable(9), mpt_alloc_fw_memory(9), mpt_free_fw_memory(9), mpt_do_upload(9), mpt_downloadboot(9), KickStart(9), mpt_diag_reset(9), SendIocReset(9), initChainBuffers(9), PrimeIocFifos(9), WaitForDoorbellAck(9), WaitForDoorbellInt(9), WaitForDoorbellReply(9), GetLanConfigPages(9), mptbase_sas_persist_operation(9), GetIoUnitPage2(9), mpt_GetScsiPortSettings(9), mpt_readScsiDevicePageHeaders(9), mpt_inactive_raid_list_free(9), mpt_inactive_raid_volumes(9), mpt_raid_phys_disk_pg0(9), mpt_raid_phys_disk_get_num_paths(9), mpt_raid_phys_disk_pg1(9), mpt_findImVolumes(9), SendEventNotification(9), SendEventAck(9), mpt_config(9), mpt_ioc_reset(9), procmpt_create(9), procmpt_destroy(9), mpt_print_ioc_summary(9), mpt_set_taskmgmt_in_progress_flag(9), mpt_clear_taskmgmt_in_progress_flag(9), mpt_halt_firmware(9), mpt_SoftResetHandler(9), mpt_Soft_Hard_ResetHandler(9), mpt_HardResetHandler(9), ProcessEventNotification(9), mpt_fc_log_info(9), mpt_spi_log_info(9), mpt_sas_log_info(9), mpt_iocstatus_info_config(9), mpt_iocstatus_info(9), fusion_init(9), fusion_exit(9)
that's the whole page bestie, you ate that π β¨
source: ./drivers/message/fusion π Β· dated: October 2026 π Β· it's giving kernel API manual realness, 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