mpt_register(9)
π mpt_register(9) π
okay so first things first, bestie: this is a page from the Kernel API Manual, and the star of the show is mpt_register β the little glue function that says "hey, driver, tell me where to send your callbacks." π
β¨ NAME β¨
mpt_register β register your protocol-specific main callback handler, no cap.
β¨ SYNOPSIS β¨
u8 mpt_register (MPT_CALLBACK cbfunc , MPT_DRIVER_CLASS dclass , char
*func_name );
πΈ ARGUMENTS πΈ
cbfuncβ the callback function pointer. like, the actual address of the function you want called back. this is your main character. πdclassβ your protocol driver's class, which is aMPT_DRIVER_CLASSenum value. gotta tell the kernel who you are.func_nameβ the name of the function you're calling. you know, for the vibes (and the records π).
π¦ DESCRIPTION π¦
so here's the tea β β this routine gets called by a protocol-specific driver (think: SCSI host, LAN, or SCSI target) to register its reply callback routine. and it's not optional, bestie. every protocol-specific driver must do this before it can use any IOC resources at all β like, including just obtaining request frames. no registration, no resources. periodt. π
β NOTES β
okay so the SCSI protocol driver is out here calling this routine three whole times to register separate callbacks, and honestly? iconic. π once for "normal" SCSI IO, once for MptScsiTaskMgmt requests, and once for Scan/DV requests. three callbacks, three vibes.
it returns a u8 valued "handle" in the range (and S.O.D. order) {N,...,7,6,5,...,1} if it works out. π
β οΈ big warning bestie: if you get back MPT_MAX_PROTOCOL_DRIVERS β and yes, that includes zero! β the caller should consider that an error. do not pass go, do not collect $200. π
π₯ SEE ALSO π₯
the kernel file ./drivers/message/fusion/mptbase.c, plus literally the entire extended universe of related calls:
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_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)mpt_handshake_req_reply_wait(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)
and that's the whole page, bestie!! π«Ά this lil gem lives over in ./drivers/message/fusion, it's dated October 2026, and it answers to the name mpt_register(9). go forth and register those callbacks, you gorgeous kernel gremlin πβ¨
π¦ 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