mpt_add_chain(9)
β¨ mpt_add_chain(9) β¨
okay so this is a page straight outta the Kernel API Manual, and today's main character is mpt_add_chain β the little function that literally just places a 32 bit chain SGE at address pAddr. that's it. that's the whole vibe. π
πΈ NAME πΈ
mpt_add_chain β place a 32 bit chain SGE at address pAddr. no cap, that's the entire job description π
π¦ SYNOPSIS π¦
void mpt_add_chain (void *pAddr , u8 next , u16 length , dma_addr_t
dma_addr );
look at that signature bestie, it's giving "small function, big responsibilities" β¨
π ARGUMENTS π
pAddrβ the virtual address for the SGE. that's where the SGE goes π«Άnextβ thenextChainOffsetvalue (measured in u32's, iykyk)lengthβ how long the next SGL segment isdma_addrβ the physical address. yes, physical, not virtual, don't mix 'em up π
π SEE ALSO π
okay this is the part where it gets iconic β this function rolls deep. here's the whole crew, all of them, in order, no substitutions π₯
Kernel file ./drivers/message/fusion/mptbase.c 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_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)
like. eighty-something cross-references. she knows everyone. main character energy fr fr ππ
π§ quick vibe check bestie: the next offset is counted in u32's, not bytes β don't come for me, that's just what the page says π
k bye ilysm, this page came from the kernel file ./drivers/message/fusion and it's dated October 2026 β slay, go read some more kernel docs, periodt πβπ
π¦ 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