mpt_handshak...q_reply_wait(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 the MPT_ADAPTER structure πŸ’œ that's your adapter babe, your whole vibe
  • reqBytes β€” the size of the request, in bytes
  • req β€” pointer to the MPT request frame
  • replyBytes β€” the expected size of the reply, in bytes
  • u16reply β€” pointer to the area where the reply should be written 🫢 that's where the answer goes
  • maxwait β€” 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